Compare commits

..

735 Commits

Author SHA1 Message Date
Evan Rusackas
343a627c21 Parallelization 2024-12-19 09:40:53 -07:00
alexandrusoare
f362c6f508 refactor(Modal): Upgrade Modal component to Antd5 (#31420)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2024-12-19 17:22:11 +01:00
Beto Dealmeida
7458c4bbd5 chore: rename apply_post_process (#31511) 2024-12-19 10:13:28 -05:00
Maxime Beauchemin
531f1b6aa4 chore(gha): bump ubuntu to latest fresh release (#31390) 2024-12-18 23:32:10 -08:00
Maxime Beauchemin
723ef591a5 fix: add various recent issues on master CI (#31561) 2024-12-18 21:03:01 -08:00
Maxime Beauchemin
e51b95ffa8 chore: enforce more ruff rules (#31447)
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2024-12-18 17:41:34 -08:00
Maxime Beauchemin
9da65d6bfd chore: deprecate pip-compile-multi in favor or uv (#31313) 2024-12-18 17:40:58 -08:00
Maxime Beauchemin
88cde7225e chore: deprecate fossa in favor of liccheck to validate python licenses (#31515) 2024-12-18 17:03:25 -08:00
Maxime Alay-Eddine
e788b858d0 feat(country-map): add map for France with all overseas territories (#31037)
Co-authored-by: Maxime ALAY-EDDINE <maxime@galeax.com>
2024-12-17 15:34:39 -07:00
Evan Rusackas
c0feb99f0e chore(code owners): Update CODEOWNERS file to remove a couple inactive contributors (#31501) 2024-12-17 15:26:12 -07:00
Samra Hanif
567380ffe1 docs: Update new user for Careem to user's list (#31496) 2024-12-17 11:26:35 -07:00
Maxime Beauchemin
a5e36c9aab fix: master docker builds fail because of multi-platform builds can't --load (#31493) 2024-12-17 09:41:13 -08:00
Kamil Gabryjelski
4c380b48e7 fix: Card component background color (#31483) 2024-12-17 14:54:46 +01:00
Maxime Beauchemin
3375e65486 feat(gha): various docker / docker-compose build improvements (#31386) 2024-12-16 17:50:15 -08:00
Michael Gerber
a1adb7f31c fix(sunburst): Use metric label from verbose map (#31480) 2024-12-16 10:44:33 -07:00
Kamil Gabryjelski
9b28a6eed6 fix: Tooltip covers the date selector in native filters (#31472) 2024-12-16 18:29:10 +01:00
Kamil Gabryjelski
8be69aa647 fix(explore): Styling issue in Search Metrics input field (#31473) 2024-12-16 18:28:38 +01:00
Evan Rusackas
48510d2ffb fix(filter options): full size list item targets (#31449) 2024-12-16 10:22:14 -07:00
Shane Zarechian
04077ce934 fix(api): typo api.py (#31458) 2024-12-15 13:37:57 -08:00
Maxime Beauchemin
092faa019b chore: remove numba and llvmlite deps as they are large and we don't use them (#31451) 2024-12-13 21:17:52 -08:00
Maxime Beauchemin
1f17b975d6 fix: docker refactor (#31385) 2024-12-13 16:17:44 -08:00
Michael Gerber
15ede02c25 chore(translations): German translation update (#30605) 2024-12-13 16:52:43 -07:00
Maxime Beauchemin
4bccf36375 chore: deprecate pylint in favor of ruff (#31262)
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2024-12-13 12:53:14 -08:00
Vitor Avila
21e794a66f fix(database import): Gracefully handle error to get catalog schemas (#31437) 2024-12-13 12:31:10 -03:00
Geido
e1f98e246f fix(Dashboard): Sync color configuration via dedicated endpoint (#31374) 2024-12-13 15:58:02 +02:00
Ville Brofeldt
bf56a327f4 fix(tags): clean up bulk create api and schema (#31427) 2024-12-12 17:54:10 -08:00
Elizabeth Thompson
cd200f07a5 fix: prevent multiple pvm errors on migration (#31332) 2024-12-12 16:26:36 -08:00
Maxime Beauchemin
4ff9aac1fa feat(sqllab): giving the query history pane a facelift (#31316) 2024-12-12 16:30:50 -07:00
Daniel Vaz Gaspar
988da2c477 docs: CVEs fixed on 4.1.0 v2 (#31422) 2024-12-12 18:48:54 +00:00
Maxime Beauchemin
f510f42b96 fix: pkg_resources is getting deprecated (#31411) 2024-12-12 09:20:52 -08:00
Vitor Avila
43314dc8db fix(Pivot Table): Fix column width to respect currency config (#31414) 2024-12-12 10:44:07 -03:00
Luiz Otavio
423a0fefa5 feat: Adds helper functions for migrations (#31303) 2024-12-11 10:50:56 -03:00
Enzo Martellucci
fd57fce977 refactor: Migrate AdhocFilterEditPopoverSqlTabContent to TypeScript (#31268)
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
2024-12-11 14:26:18 +02:00
Maxime Beauchemin
d8fbaa4cbe fix: don't include chromium on ephemeral envs (#31391) 2024-12-10 18:33:56 -08:00
Evan Rusackas
a6e05f4558 build(packages): npm build/publish improvements. Making packages publishable again. (#30196) 2024-12-10 16:54:41 -07:00
Joe Li
42f4490bbc fix: Revert "chore(deps-dev): bump esbuild from 0.20.0 to 0.24.0 in /super… (#31387) 2024-12-10 16:40:29 -07:00
dependabot[bot]
852e9ae173 chore(deps): bump nanoid from 3.3.7 to 3.3.8 in /docs (#31378)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-10 11:56:26 -07:00
Evan Rusackas
26ec6b78eb chore(embedded sdk): bump sdk version number (#31381) 2024-12-10 11:50:52 -07:00
Beto Dealmeida
d6a82f7852 feat: fine-grain chart data telemetry (#31273) 2024-12-10 13:09:39 -05:00
Evan Rusackas
232e2055aa chore(embedded sdk): bumping dependencies (#31380) 2024-12-10 11:01:03 -07:00
dependabot[bot]
955efdac1a chore(deps): bump nanoid from 5.0.7 to 5.0.9 in /superset-frontend/cypress-base (#31362)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-10 09:53:06 -07:00
Daniel Vaz Gaspar
654701af4c fix: ephemeral envs fail on noop (#31236) 2024-12-09 12:06:45 -08:00
Tatiana Cherne
73d21a87ae fix(histogram): axis margin padding consistent with other graphs (#31335)
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-12-09 12:03:22 -08:00
Daniel Grossberg
878c7f0267 fix(docs): add custom editUrl path for intro page (#31334)
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-12-09 11:53:54 -08:00
dependabot[bot]
cb78c778dd chore(deps): bump antd from 5.21.6 to 5.22.2 in /docs (#31209)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 12:09:38 -07:00
dependabot[bot]
310558508e chore(deps-dev): bump esbuild from 0.20.0 to 0.24.0 in /superset-frontend (#31219)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 12:04:13 -07:00
dependabot[bot]
3daca8d251 chore(deps): bump path-to-regexp and express in /superset-websocket/utils/client-ws-app (#31314)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 10:47:26 -07:00
dependabot[bot]
28b01c5464 chore(deps): bump winston from 3.15.0 to 3.17.0 in /superset-websocket (#31220)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 10:38:38 -07:00
dependabot[bot]
1fbdd21133 chore(deps-dev): bump @babel/eslint-parser from 7.23.10 to 7.25.9 in /superset-frontend (#31218)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 10:37:31 -07:00
dependabot[bot]
55a6c3a10a chore(deps-dev): bump @eslint/js from 9.14.0 to 9.16.0 in /superset-websocket (#31222)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 10:36:10 -07:00
Beto Dealmeida
fc45647440 fix(sqllab): duplicate error message (#31353) 2024-12-09 12:31:00 -05:00
Erkka Tahvanainen
3bfead66c4 fix(alerts&reports): tabs with userfriendly urls (#31350)
Co-authored-by: Erkka Tahvanainen <erkka.tahvanainen@confidently.fi>
2024-12-09 10:21:38 -07:00
Konstanty Karagiorgis
b54a97b5f0 fix: added missing pod labels for init job (#30956) 2024-12-09 09:14:41 -08:00
Yuri
931f69d6c7 fix(pinot): remove query aliases from SELECT and ORDER BY clauses in Pinot (#31341) 2024-12-09 09:07:03 -08:00
Daniel Vaz Gaspar
ae8c6865c9 docs: CVEs fixed on 4.1.0 (#31352) 2024-12-09 16:54:28 +00:00
alexandrusoare
0133bab038 fix(AllEntitiesTable): show Tags (#31301) 2024-12-09 18:06:32 +02:00
Oleg Ovcharuk
48c5ee4f8b fix: Use clickhouse sqlglot dialect for YDB (#31323) 2024-12-07 12:58:23 -08:00
Beto Dealmeida
9315a8838c fix: pass string to process_template (#31329) 2024-12-07 09:49:49 -05:00
nsivarajan
592564b623 fix: cache-warmup fails (#31173)
Co-authored-by: Sivarajan Narayanan <narayanan_sivarajan@apple.com>
Co-authored-by: Pat Heard <patrick.heard@cds-snc.ca>
2024-12-06 17:41:38 -08:00
Levis Mbote
79aff6827c refactor(Alert): Migrate Alert component to Ant Design V5 (#31168)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2024-12-06 21:26:04 +02:00
alexandrusoare
079e7327a2 chore(FilterBar): move the "Add/edit filters" button in the FilterBar to the settings menu (#31290)
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2024-12-06 20:52:55 +02:00
JUST.in DO IT
48864ce8c7 fix(sqllab): Remove update_saved_query_exec_info to reduce lag (#31294) 2024-12-06 10:09:02 -08:00
Damian Pendrak
2816a70af3 fix: annotations on horizontal bar chart (#31308) 2024-12-05 13:20:22 -08:00
Levis Mbote
6af22a9cdd refactor(Name_column): Make 'Name' column of Saved Query page into links (#31312) 2024-12-05 13:17:30 -08:00
dependabot[bot]
827fe06903 chore(deps): bump deck.gl from 9.0.34 to 9.0.36 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#31203)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-05 13:03:39 -07:00
Evan Rusackas
45815d8642 fix(filters): improving the add filter/divider UI. (#31279) 2024-12-05 09:13:24 -07:00
Oleg Ovcharuk
cf5c770adc feat: add YDB as a new database engine (#31141) 2024-12-05 09:14:19 -05:00
Joe Li
638f82b46d chore: relax greenlet requirements (#31275)
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-12-04 14:02:25 -08:00
dependabot[bot]
e0e1eea9ce chore(deps-dev): bump typescript from 5.6.3 to 5.7.2 in /docs (#31205)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 14:17:41 -07:00
dependabot[bot]
27c7240185 chore(deps): bump @algolia/client-search from 5.12.0 to 5.15.0 in /docs (#31207)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 11:44:34 -07:00
dependabot[bot]
5ca2a8f670 chore(deps): bump less from 4.2.0 to 4.2.1 in /docs (#31208)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 11:43:22 -07:00
dependabot[bot]
2d60a2d48c chore(deps-dev): bump @docusaurus/tsconfig from 3.5.2 to 3.6.3 in /docs (#31204)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 11:42:28 -07:00
dependabot[bot]
b70c8ee7a8 chore(deps): bump swagger-ui-react from 5.17.14 to 5.18.2 in /docs (#31206)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 11:22:32 -07:00
dependabot[bot]
a3fd7423b0 chore(deps-dev): bump @types/jest from 29.5.12 to 29.5.14 in /superset-websocket (#31224)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 23:45:20 -07:00
dependabot[bot]
f679a18e82 chore(deps): bump @types/react-table from 7.7.19 to 7.7.20 in /superset-frontend (#31228)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 23:45:05 -07:00
Vitor Avila
77f3764fea feat(Handlebars): formatNumber and group helpers (#31261) 2024-12-03 17:55:57 -03:00
JUST.in DO IT
1e0c04fc15 fix(trino): db session error in handle cursor (#31265) 2024-12-03 11:57:37 -08:00
dependabot[bot]
56b973f3cc chore(deps-dev): bump @docusaurus/module-type-aliases from 3.5.2 to 3.6.3 in /docs (#31210)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 10:19:29 -07:00
dependabot[bot]
3479574bd4 chore(deps): bump @ant-design/icons from 5.5.1 to 5.5.2 in /docs (#31213)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 10:18:43 -07:00
dependabot[bot]
aa55751b1d chore(deps): bump @scarf/scarf from 1.3.0 to 1.4.0 in /superset-frontend (#31230)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 10:17:49 -07:00
Sam Firke
6c2aade375 chore(bug report template): bump Superset versions to reflect 4.1.1 release (#31259) 2024-12-03 12:14:36 -05:00
dependabot[bot]
f51f19bcba chore(deps): bump re-resizable from 6.10.0 to 6.10.1 in /superset-frontend (#31231)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 10:13:14 -07:00
Kamil Gabryjelski
1d44662b1d refactor: Split SliceHeaderControls into smaller files (#31270) 2024-12-03 16:36:39 +01:00
Daniel Vaz Gaspar
25f4226dbb fix: add more clickhouse disallowed functions on config (#31198) 2024-12-03 10:48:06 +00:00
Maxime Beauchemin
dd1ba96adf feat: use uv in CI (#31260) 2024-12-02 18:16:56 -08:00
Maxime Beauchemin
d4888fa4af docs: adapt docs to suggest 'docker compose up --build' (#30864) 2024-12-02 18:03:13 -08:00
Maxime Beauchemin
b3559f644c chore: simplify Dockerfile package install calls with bash wrappers (#31034) 2024-12-02 17:57:01 -08:00
dependabot[bot]
fe80fb1090 chore(deps): bump codecov/codecov-action from 4 to 5 (#31214)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 17:50:12 -08:00
github-actions[bot]
43efa05113 chore(🦾): bump python flask-migrate subpackage(s) (#31250)
Co-authored-by: GitHub Action <action@github.com>
2024-12-02 17:42:35 -08:00
github-actions[bot]
e5e3f9e210 chore(🦾): bump python nh3 0.2.18 -> 0.2.19 (#31249)
Co-authored-by: GitHub Action <action@github.com>
2024-12-02 17:42:08 -08:00
github-actions[bot]
468dfed416 chore(🦾): bump python pyjwt 2.10.0 -> 2.10.1 (#31253)
Co-authored-by: GitHub Action <action@github.com>
2024-12-02 17:41:41 -08:00
Maxime Beauchemin
3564740255 chore: pin greenlet in base dependencies (#31254) 2024-12-02 16:41:15 -08:00
Joe Li
8020729ced fix: check for column before adding in migrations (#31185) 2024-12-02 13:47:55 -08:00
Maxime Beauchemin
deec63bb5b docs(contributing): how to nuke the docker-compose postgres (#31186) 2024-12-02 11:50:49 -08:00
JUST.in DO IT
339d491dfc feat(sqllab): Popup notification when download data can exceed row count (#31187)
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-12-02 11:15:25 -08:00
Vitor Avila
d66ac9f3f4 fix(Databricks): Escape catalog and schema names in pre-queries (#31199) 2024-12-02 14:00:00 -03:00
Kamil Gabryjelski
06fb330569 perf: Optimize DashboardPage and SyncDashboardState (#31244) 2024-12-02 16:10:02 +01:00
Kamil Gabryjelski
ce0e06a935 perf: Optimize native filters and cross filters (#31243) 2024-12-02 15:42:34 +01:00
Kamil Gabryjelski
5006f97f70 perf: Optimize dashboard grid components (#31240) 2024-12-02 15:05:29 +01:00
Kamil Gabryjelski
24d001e498 perf: Optimize Dashboard components (#31242) 2024-12-02 15:04:39 +01:00
Kamil Gabryjelski
eab888c63a perf: Optimize dashboard chart-related components (#31241) 2024-12-02 15:04:29 +01:00
alexandrusoare
3d3c09d299 chore(Tooltip): Upgrade Tooltip to Ant Design 5 (#31182)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2024-11-30 12:37:40 +02:00
Damian Pendrak
97dde8c485 fix: x axis title disappears when editing bar chart (#30821) 2024-11-29 16:09:03 +01:00
Vitor Avila
14682b9054 fix(embedded): Hide anchor links in embedded mode (#31194) 2024-11-29 12:06:44 -03:00
Michael S. Molina
93ba8e16c3 refactor: Creates the VizType enum (#31193) 2024-11-29 10:05:02 -03:00
Michael S. Molina
dbcb473040 fix: Time-series Line Chart Display unnecessary total (#31181) 2024-11-27 10:29:09 -08:00
scottduszy
f0811c8863 docs: update slack alert instructions to work with V2 slack API (#31165) 2024-11-27 10:19:18 -08:00
github-actions[bot]
0166db9663 chore(🦾): bump python sqlglot 23.6.3 -> 23.15.8 (#28461)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-26 15:48:38 -08:00
github-actions[bot]
c26f073134 chore(🦾): bump python pyparsing 3.1.2 -> 3.2.0 (#31171)
Co-authored-by: GitHub Action <action@github.com>
2024-11-26 15:48:13 -08:00
Beto Dealmeida
45668e31fc feat: make sure to quote formulas on Excel export (#31166) 2024-11-26 18:16:44 -05:00
Maxime Beauchemin
529aed5da1 chore(deps): cap async_timeout<5.0.0 (#31170) 2024-11-26 14:12:04 -08:00
Beto Dealmeida
09802acf0d refactor: remove more sqlparse (#31032) 2024-11-26 17:01:07 -05:00
github-actions[bot]
9224051b80 chore(🦾): bump python importlib-metadata 7.1.0 -> 8.5.0 (#31126)
Co-authored-by: GitHub Action <action@github.com>
2024-11-26 13:39:08 -08:00
Maxime Beauchemin
fd9d3301f6 chore: deprecate tox in favor of act (#29382) 2024-11-26 13:27:37 -08:00
Beto Dealmeida
68499a1199 feat: purge OAuth2 tokens when DB changes (#31164) 2024-11-26 15:57:01 -05:00
Geido
f077323e6f fix(Dashboard): Backward compatible shared_label_colors field (#31163) 2024-11-26 20:34:06 +02:00
Beto Dealmeida
7f2e752796 fix: check orderby (#31156) 2024-11-26 10:15:06 -05:00
Maxime Beauchemin
97683ec052 fix: helm chart deploy to open PRs to now-protected gh-pages branch (#31155) 2024-11-25 18:38:12 -08:00
github-actions[bot]
73164c61ad chore(🦾): bump python billiard 4.2.0 -> 4.2.1 (#31109)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:11:49 -08:00
github-actions[bot]
564c168420 chore(🦾): bump python flask-limiter 3.7.0 -> 3.8.0 (#31138)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:11:21 -08:00
github-actions[bot]
95f4fe0cb8 chore(🦾): bump python mako 1.3.5 -> 1.3.6 (#31140)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:10:58 -08:00
github-actions[bot]
bbc6d374ea chore(🦾): bump python celery subpackage(s) (#31127)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:10:23 -08:00
github-actions[bot]
316da5e5f5 chore(🦾): bump python humanize 4.9.0 -> 4.11.0 (#31128)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:10:05 -08:00
github-actions[bot]
e2b9b8e9fd chore(🦾): bump python simplejson 3.19.2 -> 3.19.3 (#31129)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:09:49 -08:00
github-actions[bot]
7154b8d40f chore(🦾): bump python numexpr 2.10.1 -> 2.10.2 (#31130)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:09:32 -08:00
github-actions[bot]
fcb3ff3a41 chore(🦾): bump python slack-sdk 3.27.2 -> 3.33.4 (#31132)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:09:12 -08:00
github-actions[bot]
342cfc41ec chore(🦾): bump python pyopenssl 24.1.0 -> 24.2.1 (#31133)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:08:54 -08:00
github-actions[bot]
aa7d3b0f96 chore(🦾): bump python dnspython 2.6.1 -> 2.7.0 (#31135)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:06:53 -08:00
github-actions[bot]
3e28bd2cfa chore(🦾): bump python zstandard 0.22.0 -> 0.23.0 (#31136)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:06:35 -08:00
github-actions[bot]
cc1eec69df chore(🦾): bump python limits 3.12.0 -> 3.13.0 (#31137)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:06:18 -08:00
github-actions[bot]
3fa0de4293 chore(🦾): bump python flask-jwt-extended 4.6.0 -> 4.7.1 (#31139)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 17:05:59 -08:00
github-actions[bot]
2ad8af71b5 chore(🦾): bump python gunicorn 22.0.0 -> 23.0.0 (#31125)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 16:52:11 -08:00
github-actions[bot]
b648cc1168 chore(🦾): bump python zipp 3.19.0 -> 3.21.0 (#31124)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 16:50:22 -08:00
github-actions[bot]
f24bf873bf chore(🦾): bump python flask-compress 1.15 -> 1.17 (#31123)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 16:50:06 -08:00
github-actions[bot]
e0a5033596 chore(🦾): bump python dill 0.3.8 -> 0.3.9 (#31108)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 16:49:31 -08:00
github-actions[bot]
ef14d58c64 chore(🦾): bump python email-validator 2.1.1 -> 2.2.0 (#31116)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 16:48:15 -08:00
Michael S. Molina
547a4adef5 fix: Remove unwanted commit on Trino's handle_cursor (#31154) 2024-11-25 17:42:31 -03:00
Evan Rusackas
5256a2f194 chore(asf): add gh-pages to protected branches (#31153) 2024-11-25 13:31:52 -07:00
github-actions[bot]
0560c2615d chore(🦾): bump python async-timeout 4.0.3 -> 5.0.1 (#31122)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 10:18:23 -08:00
Michael S. Molina
ff282492a1 fix: Revert "feat(trino): Add functionality to upload data (#29164)" (#31151) 2024-11-25 15:16:28 -03:00
github-actions[bot]
312dc1c749 chore(🦾): bump python prompt-toolkit 3.0.44 -> 3.0.48 (#31121)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 10:05:13 -08:00
github-actions[bot]
1e26c34758 chore(🦾): bump python sqlparse 0.5.0 -> 0.5.2 (#31119)
Co-authored-by: GitHub Action <action@github.com>
2024-11-25 10:04:43 -08:00
Maxime Beauchemin
decaba72c3 fix: try to re-enable gh-pages (#31152) 2024-11-25 09:58:30 -08:00
Maxime Beauchemin
7e8c77e636 fix: touch helm/ folder to trigger doc deploy in CI (#31148) 2024-11-25 09:08:34 -08:00
alexandrusoare
ba99980cf4 refactor(List): Upgrade List from antdesign4 to antdesign5 (#30963) 2024-11-25 16:44:17 +02:00
github-actions[bot]
c62f722f99 chore(🦾): bump python mysqlclient 2.2.4 -> 2.2.6 (#31113)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:36:20 -08:00
github-actions[bot]
3fd23508bc chore(🦾): bump python grpcio-status subpackage(s) (#31114)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:34:54 -08:00
github-actions[bot]
9ff9e0299b chore(🦾): bump python cycler 0.11.0 -> 0.12.1 (#31112)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:34:35 -08:00
github-actions[bot]
6488ced3d3 chore(🦾): bump python croniter 2.0.5 -> 5.0.1 (#31091)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:33:02 -08:00
github-actions[bot]
9a2be95159 chore(🦾): bump python google-auth 2.29.0 -> 2.36.0 (#31107)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:25:23 -08:00
github-actions[bot]
ef4e03c9fe chore(🦾): bump python psutil 6.0.0 -> 6.1.0 (#31106)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:25:05 -08:00
github-actions[bot]
ca2f0288e5 chore(🦾): bump python dnspython 2.6.1 -> 2.7.0 (#31105)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:24:46 -08:00
github-actions[bot]
ca63760a4b chore(🦾): bump python markdown 3.6 -> 3.7 (#31102)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:23:37 -08:00
github-actions[bot]
83924f7e10 chore(🦾): bump python pluggy 1.4.0 -> 1.5.0 (#31101)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:23:18 -08:00
github-actions[bot]
c4a56c3f6e chore(🦾): bump python sqloxide 0.1.43 -> 0.1.51 (#31100)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:22:51 -08:00
github-actions[bot]
cf134ab3aa chore(🦾): bump python wheel 0.43.0 -> 0.45.1 (#31099)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:22:28 -08:00
github-actions[bot]
043c585008 chore(🦾): bump python pyproject-api 1.6.1 -> 1.8.0 (#31098)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:22:08 -08:00
github-actions[bot]
0d346d4414 chore(🦾): bump python pytest-cov 5.0.0 -> 6.0.0 (#31096)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:21:50 -08:00
github-actions[bot]
9067371234 chore(🦾): bump python chardet 5.1.0 -> 5.2.0 (#31094)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:21:22 -08:00
github-actions[bot]
40fe05c5e2 chore(🦾): bump python jsonpath-ng 1.6.1 -> 1.7.0 (#31093)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:20:26 -08:00
github-actions[bot]
e3bdfb5def chore(🦾): bump python sshtunnel subpackage(s) (#31092)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 22:20:11 -08:00
github-actions[bot]
55f0713a2f chore(🦾): bump python mako 1.3.5 -> 1.3.6 (#31097)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-24 22:19:16 -08:00
github-actions[bot]
5aee59cc3a chore(🦾): bump python tomlkit 0.12.5 -> 0.13.2 (#31090)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:28:45 -08:00
github-actions[bot]
94d3774d9e chore(🦾): bump python isodate 0.6.1 -> 0.7.2 (#31087)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:28:28 -08:00
github-actions[bot]
b665254f39 chore(🦾): bump python db-dtypes 1.2.0 -> 1.3.1 (#31082)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:28:11 -08:00
github-actions[bot]
4dc8cce8e8 chore(🦾): bump python trino 0.328.0 -> 0.330.0 (#31081)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:27:52 -08:00
github-actions[bot]
d206a20ce7 chore(🦾): bump python certifi 2024.2.2 -> 2024.8.30 (#31089)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:27:18 -08:00
github-actions[bot]
6fcc282a4e chore(🦾): bump python pydata-google-auth 1.7.0 -> 1.9.0 (#31088)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:26:58 -08:00
github-actions[bot]
93c35a7ba5 chore(🦾): bump python pyproject-hooks 1.0.0 -> 1.2.0 (#31086)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:26:36 -08:00
github-actions[bot]
9dfa8d5f8f chore(🦾): bump python sqlalchemy-bigquery 1.11.0 -> 1.12.0 (#31085)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:26:14 -08:00
github-actions[bot]
87504056fe chore(🦾): bump python kiwisolver 1.4.5 -> 1.4.7 (#31084)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:25:47 -08:00
github-actions[bot]
429c18f9e8 chore(🦾): bump python coverage subpackage(s) (#31083)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:25:33 -08:00
github-actions[bot]
5bddc81f60 chore(🦾): bump python cfgv 3.3.1 -> 3.4.0 (#31077)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:25:12 -08:00
github-actions[bot]
9837b4a61e chore(🦾): bump python fonttools 4.51.0 -> 4.55.0 (#31075)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:24:49 -08:00
github-actions[bot]
454f143661 chore(🦾): bump python pyasn1-modules 0.4.0 -> 0.4.1 (#31076)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:03:01 -08:00
github-actions[bot]
7376dfc6e9 chore(🦾): bump python pyhive subpackage(s) (#31079)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 21:00:56 -08:00
github-actions[bot]
838d47d578 chore(🦾): bump python google-cloud-core 2.3.2 -> 2.4.1 (#31078)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 20:57:49 -08:00
github-actions[bot]
14e81d0a9a chore(🦾): bump python sqlalchemy-utils subpackage(s) (#31048)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-24 20:45:06 -08:00
github-actions[bot]
f68c2b2454 chore(🦾): bump python amqp 5.2.0 -> 5.3.1 (#31073)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 20:44:29 -08:00
github-actions[bot]
814c3dfecc chore(🦾): bump python cachetools 5.3.3 -> 5.5.0 (#31071)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 20:44:05 -08:00
github-actions[bot]
b8aade776b chore(🦾): bump python kombu 5.3.7 -> 5.4.2 (#31074)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 20:43:26 -08:00
github-actions[bot]
e092e6002d chore(🦾): bump python pyyaml 6.0.1 -> 6.0.2 (#31066)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 18:10:24 -08:00
github-actions[bot]
673754d16e chore(🦾): bump python tqdm 4.66.4 -> 4.67.1 (#31068)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 18:10:06 -08:00
github-actions[bot]
27deeb2f51 chore(🦾): bump python proto-plus 1.22.2 -> 1.25.0 (#31069)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 18:09:38 -08:00
github-actions[bot]
9a7a84c7a0 chore(🦾): bump python importlib-resources 6.4.0 -> 6.4.5 (#31067)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 18:09:13 -08:00
github-actions[bot]
a3d2588313 chore(🦾): bump python apispec subpackage(s) (#31062)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 17:56:17 -08:00
github-actions[bot]
5c87fee282 chore(🦾): bump python deprecated 1.2.14 -> 1.2.15 (#31056)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 17:55:07 -08:00
github-actions[bot]
b24323d500 chore(🦾): bump python pre-commit 3.7.1 -> 4.0.1 (#31050)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-24 17:34:36 -08:00
github-actions[bot]
824aca85d0 chore(🦾): bump python charset-normalizer 3.3.2 -> 3.4.0 (#31064)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 17:31:13 -08:00
github-actions[bot]
1e4098a29e chore(🦾): bump python ruff 0.4.5 -> 0.8.0 (#31001)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-24 17:30:48 -08:00
github-actions[bot]
3aa8f32ca9 chore(🦾): bump python googleapis-common-protos 1.63.0 -> 1.66.0 (#31049)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-24 17:15:24 -08:00
github-actions[bot]
bf42ea70ba chore(🦾): bump python cron-descriptor 1.4.3 -> 1.4.5 (#31046)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 16:31:38 -08:00
github-actions[bot]
d69da5f0f5 chore(🦾): bump python flask-wtf 1.2.1 -> 1.2.2 (#31052)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 16:23:35 -08:00
Rida KEJJI
078257dd1b docs: updated the install process in pypi.mdx (#31044)
Co-authored-by: Rida KEJJI <42012627+ShameGod@users.noreply.github.com>
2024-11-24 16:23:17 -08:00
github-actions[bot]
8c1c2570b3 chore(🦾): bump python nh3 0.2.17 -> 0.2.18 (#31054)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 16:22:15 -08:00
github-actions[bot]
a80803566d chore(🦾): bump python marshmallow 3.21.2 -> 3.23.1 (#31045)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 16:21:48 -08:00
github-actions[bot]
f551f5b7b6 chore(🦾): bump python idna 3.7 -> 3.10 (#31041)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 13:38:14 -08:00
github-actions[bot]
1978cde4f1 chore(🦾): bump python pyjwt 2.8.0 -> 2.10.0 (#31042)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 13:37:57 -08:00
github-actions[bot]
c5f6cc6382 chore(🦾): bump python et-xmlfile 1.1.0 -> 2.0.0 & remove pyhive[hive] from requirements/development.in (#31040)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-24 13:35:50 -08:00
Birk Skyum
e9e2c0bee8 chore(legacy-plugin-chart-map-box): replace viewport-mercator-project with @math.gl/web-mercator (#30651) 2024-11-24 20:00:26 +00:00
github-actions[bot]
33a9817388 chore(🦾): bump python pandas subpackage(s) (#31004)
Co-authored-by: GitHub Action <action@github.com>
2024-11-24 10:05:59 -08:00
Geido
91301bcd5b fix(Dashboard): Ensure shared label colors are updated (#31031) 2024-11-23 16:39:40 +02:00
Maxime Beauchemin
67ad7da5cc fix: ephemeral environments missing env var (#31035) 2024-11-22 17:39:34 -08:00
Maxime Beauchemin
e0deb704f9 feat: make ephemeral env use supersetbot + deprecate build_docker.py (#30870) 2024-11-22 14:19:08 -08:00
Kamil Gabryjelski
abf3790ea6 chore: Cleanup code related to MetadataBar, fix types (#31030) 2024-11-22 16:02:13 +01:00
Kamil Gabryjelski
f8adaf66c1 chore: Refactor dashboard header to func component (#31029) 2024-11-22 14:10:46 +01:00
Beto Dealmeida
832fed1db5 fix(dataset): use sqlglot for DML check (#31024) 2024-11-22 07:21:05 -05:00
github-actions[bot]
ccce9abf57 chore(🦾): bump python cattrs 23.2.3 -> 24.1.2 (#30998)
Co-authored-by: GitHub Action <action@github.com>
2024-11-21 15:15:15 -08:00
Seiya
7d60a88048 docs: Update doc about CSV upload (#30867)
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-11-21 16:15:08 -07:00
Linden
8905508d8f fix(imports): import query_context for imports with charts (#30887) 2024-11-21 16:14:45 -07:00
Giampaolo Capelli
0b647b2dcc docs: Embedded sdk (#30972) 2024-11-21 16:14:18 -07:00
David Hotham
f58b5295a9 chore: publish wheels (#30981) 2024-11-21 12:18:27 -08:00
JUST.in DO IT
9e5b568cc9 fix(explore): verified props is not updated (#31008) 2024-11-21 11:05:43 -08:00
Geido
90572be95a fix(Dashboard): Retain colors when color scheme not set (#30646) 2024-11-21 19:58:32 +02:00
github-actions[bot]
3c326598a8 chore(🦾): bump python flask-babel subpackage(s) (#31000)
Co-authored-by: GitHub Action <action@github.com>
2024-11-21 09:06:58 -08:00
github-actions[bot]
ae04959175 chore(🦾): bump python cffi 1.16.0 -> 1.17.1 (#31002)
Co-authored-by: GitHub Action <action@github.com>
2024-11-21 09:05:28 -08:00
github-actions[bot]
1e224398e1 chore(🦾): bump python numexpr 2.10.0 -> 2.10.1 (#31006)
Co-authored-by: GitHub Action <action@github.com>
2024-11-21 09:04:43 -08:00
Beto Dealmeida
fa7b66424c chore: add unit tests for is_mutating() (#31021) 2024-11-21 11:08:53 -05:00
lodu
d1feef51c7 chore(helm): bumping app version to 4.1.1 in helm chart (#30918) 2024-11-21 08:12:02 -03:00
Christoph Keller
1102d41842 fix(helm-chart): Fix broken PodDisruptionBudget due to introduction of extraLabels. (#30966) 2024-11-19 08:54:25 -08:00
Elizabeth Thompson
d22b7860a4 chore: add performance information to tooltip (#30948) 2024-11-18 16:09:48 -08:00
dependabot[bot]
4c072b8314 build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (#30970)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 17:00:40 -07:00
Evan Rusackas
4f899dd164 fix(release validation): scripts now support RSA and EDDSA keys. (#30967) 2024-11-18 16:44:59 -07:00
dependabot[bot]
9437d9cf5e build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /superset-frontend/cypress-base (#30969)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 16:15:26 -07:00
Levis Mbote
b84e5250f1 chore(Accessibility): Fix accessibility for 'Show x entries' dropdown in tables (#30818) 2024-11-18 19:25:42 +02:00
Geido
c6685a706d fix(Card): Use correct class names for Ant Design 5 Card component (#30964) 2024-11-18 17:48:59 +02:00
Geido
1b63b8f3c7 fix(Dashboard): Exclude edit param in async screenshot (#30962) 2024-11-18 16:34:23 +02:00
Ville Brofeldt
e528cb48c4 feat(trino,presto): add missing time grains (#30926) 2024-11-15 12:38:28 -08:00
Andreas Motl
824eaf84be chore(docs): Update list of supported databases to include CrateDB (#30946) 2024-11-15 12:36:27 -08:00
Joe Li
c648cb2de5 chore: update change log, UPDATING.md and bug-report.yml for 4.1 release (#30915) 2024-11-15 11:52:15 -07:00
Andreas Motl
1991d1f6e5 chore(deps): Migrate from crate[sqlalchemy] to sqlalchemy-cratedb (#29243) 2024-11-15 09:02:47 -08:00
Sukuna
df479940a6 fix: blocks UI elements on right side (#30886)
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-11-15 09:43:57 -07:00
Paolo Terzi
87c73175a7 docs: add Free2Move to INTHEWILD.md (#30930) 2024-11-15 09:39:59 -07:00
Ville Brofeldt
a3e89cbfab fix(helm): use submodule on helm release action (#30924) 2024-11-14 13:47:55 -08:00
Ville Brofeldt
f38f5ac3cf chore(ci): add tai and michael to helm owners (#30925) 2024-11-14 13:47:40 -08:00
Mehmet Salih Yavuz
58f9be9b85 fix(empty dashboards): Allow downloading a screenshot of an empty dashboard (#30767)
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
2024-11-13 16:16:33 +04:00
Mehmet Salih Yavuz
a7069e60e2 refactor(input): Migrate Input component to Ant Design 5 (#30730) 2024-11-13 15:07:45 +04:00
Mehmet Salih Yavuz
6e665c3e07 refactor(Avatar): Migrate Avatar to Ant Design 5 (#30740) 2024-11-13 14:13:43 +04:00
Maxime Beauchemin
4e8eba802a feat: add logging durations for screenshot async service (#30884) 2024-11-12 09:54:33 -08:00
Joe Li
ac3a10d8f1 fix: don't show metadata for embedded dashboards (#30875) 2024-11-12 09:54:19 -08:00
Michael S. Molina
c2885a166e fix: Exception handling for SQL Lab views (#30897) 2024-11-12 08:54:58 -08:00
Michael S. Molina
0e165c1a21 fix: Graph chart colors (#30851) 2024-11-11 14:11:17 -08:00
dependabot[bot]
629bbc5d4d build(deps): bump remark-gfm from 3.0.1 to 4.0.0 in /superset-frontend (#30806)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-11 13:48:35 -07:00
Evan Rusackas
4d50d4944f chore(AntD5): touchup on component imports/exports, theming ListViewCard (#29545)
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
2024-11-11 12:35:51 -07:00
yousoph
88934265c0 chore: update help text copy on dataset settings (#30775)
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2024-11-11 12:03:08 -07:00
dependabot[bot]
16ad5a8f5a build(deps): bump @algolia/client-search from 4.24.0 to 5.12.0 in /docs (#30792)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-11 11:18:26 -07:00
Sukuna
24b8a94c2c fix(docs): add missing bracket in openID config (#30885) 2024-11-09 13:28:51 -05:00
Maxime Beauchemin
a1f86baab2 docs: make it more clear that GLOBAL_ASYNC_QUERIES is experimental/beta (#30770) 2024-11-08 16:34:49 -08:00
Maxime Beauchemin
0af124eaae feat: add a script to check environment software versions (#29609) 2024-11-08 13:17:55 -08:00
Kamil Gabryjelski
57af97d1a2 perf: Prevent redundant calls to getRelevantDataMask (#30883) 2024-11-08 19:09:20 +01:00
Geido
f4c36a6d05 fix(Dashboard): Native & Cross-Filters Scoping Performance (#30881) 2024-11-08 19:57:13 +02:00
Evan Rusackas
683ed0d943 chore(GHA): Making the Linkinator STEP non-blocking, rather than the JOB. (#30847) 2024-11-07 21:55:34 -07:00
yousoph
88eb95c39a docs: Updating 4.1 Release Notes (#30865) 2024-11-07 18:03:11 -08:00
Jack
dd39138e6e fix(chart data): removing query from /chart/data payload when accessing as guest user (#30858) 2024-11-07 11:24:15 -06:00
alexandrusoare
5b2f005e80 chore(FilterBar): Filter bar accessibility (#30812) 2024-11-07 13:08:32 +02:00
Geido
de8282cea0 fix(package.json): Pin luxon version to unblock master (#30859) 2024-11-06 20:47:07 +02:00
Kamil Gabryjelski
710c6f9412 chore: Chart context menu permissions cleanup (#30854) 2024-11-06 15:23:22 +01:00
Antonio Rivero
8c7a3bf85a fix(time_comparison): Allow deleting dates when using custom shift (#30848) 2024-11-06 13:26:11 +01:00
Evan Rusackas
3be6cef597 chore(scripts): purge node_modules folder on npm prune (#30255) 2024-11-05 14:36:38 -07:00
Evan Rusackas
d217a78857 chore(actions): Bump Linkinator in superset-docs-verify.yml (#30846) 2024-11-05 14:27:44 -07:00
dependabot[bot]
63b97ab76d build(deps): bump @docsearch/react from 3.6.2 to 3.6.3 in /docs (#30797)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 11:41:48 -07:00
dependabot[bot]
6b9122bb3b build(deps): bump @mdx-js/react from 3.0.1 to 3.1.0 in /docs (#30796)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 10:43:44 -07:00
dependabot[bot]
5a59dcf06e build(deps-dev): bump @types/react from 18.3.10 to 18.3.12 in /docs (#30793)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 10:40:47 -07:00
dependabot[bot]
fb6ad3240f build(deps-dev): bump typescript from 5.6.2 to 5.6.3 in /docs (#30795)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 09:48:04 -07:00
dependabot[bot]
2eadc1f086 build(deps): bump @saucelabs/theme-github-codeblock from 0.2.3 to 0.3.0 in /docs (#30799)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 09:46:58 -07:00
Sanjay Nayak
d1bc986d93 docs: Update INTHEWILD.md with 2070Health Org (#30824) 2024-11-04 16:38:40 -08:00
Evan Rusackas
0b263697ca chore: Revert "build(deps): bump JustinBeckwith/linkinator-action from 1.10.4 to 1.11.0" (#30838) 2024-11-04 17:08:55 -07:00
dependabot[bot]
f0b86f877f build(deps-dev): bump webpack from 5.95.0 to 5.96.1 in /docs (#30832)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 12:45:43 -08:00
Ahmed Habeeb
a91daab1f7 docs: Update INTHEWILD.md (#30822) 2024-11-04 10:29:32 -08:00
dependabot[bot]
54cc69a382 build(deps-dev): bump eslint from 9.11.0 to 9.14.0 in /superset-websocket (#30835)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 11:07:01 -07:00
dependabot[bot]
41464931a4 build(deps): bump uuid from 10.0.0 to 11.0.2 in /superset-websocket (#30782)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:31:40 -07:00
dependabot[bot]
e01c8792ec build(deps): bump winston from 3.13.0 to 3.15.0 in /superset-websocket (#30784)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:16:27 -07:00
dependabot[bot]
4b33353165 build(deps): bump deck.gl from 9.0.28 to 9.0.34 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#30786)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:15:53 -07:00
dependabot[bot]
8b815a3aac build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.37.2 in /superset-frontend (#30803)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:15:00 -07:00
dependabot[bot]
2a96a9c734 build(deps-dev): bump typescript-eslint from 8.8.0 to 8.12.2 in /superset-websocket (#30781)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:11:54 -07:00
dependabot[bot]
b73ee7f2e0 build(deps-dev): bump prettier-plugin-packagejson from 2.5.2 to 2.5.3 in /superset-frontend (#30809)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:01:23 -07:00
dependabot[bot]
f85175e16d build(deps): bump webpack from 5.80.0 to 5.96.1 in /superset-frontend/cypress-base (#30817)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:00:57 -07:00
João Ferrão
305b6df6e3 feat(oauth2): add support for trino (#30081) 2024-11-04 11:54:47 -05:00
dependabot[bot]
64f8140731 build(deps): bump antd from 5.20.5 to 5.21.6 in /docs (#30794)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-11-04 09:53:14 -07:00
Geido
5820d31b5c fix(TimezoneSelector): Failing unit tests due to timezone change (#30828) 2024-11-04 16:08:44 +02:00
Steven Liu
29e3f4bcc4 feat: allow exporting all tabs to a single PDF in report (#30694) 2024-11-03 17:39:09 -08:00
Ville Brofeldt
b02d18a39e fix(plugin-chart-echarts): sort tooltip correctly (#30819) 2024-11-01 15:24:51 -07:00
Elizabeth Thompson
d466383df2 fix: warning emits an error (#28524) 2024-11-01 15:08:42 -07:00
yousoph
3ec3f0a610 fix(explore): Update tooltip copy for rendering html in tables and pivot tables (#30682)
Co-authored-by: Joe Li <joe@preset.io>
2024-11-01 10:54:50 -07:00
dependabot[bot]
ab95bff7b6 build(deps): bump @rjsf/validator-ajv8 from 5.19.4 to 5.22.3 in /superset-frontend (#30811)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 10:38:59 -07:00
dependabot[bot]
b3edbe45cf build(deps): bump ace-builds from 1.35.4 to 1.36.3 in /superset-frontend (#30804)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 10:38:20 -07:00
dependabot[bot]
ccc2f66e92 build(deps-dev): bump eslint-plugin-testing-library from 6.2.2 to 6.4.0 in /superset-frontend (#30810)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 10:37:46 -07:00
dependabot[bot]
5d42dfb1e6 build(deps-dev): bump eslint-import-resolver-typescript from 3.6.1 to 3.6.3 in /superset-frontend (#30805)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 10:37:19 -07:00
dependabot[bot]
fa9d2cefcc build(deps): bump JustinBeckwith/linkinator-action from 1.10.4 to 1.11.0 (#30802)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 10:27:44 -07:00
Daniel Vaz Gaspar
f19c4280c0 chore: bump werkzeug to address vulnerability (#30729) 2024-11-01 14:22:34 -03:00
Beto Dealmeida
402c29c2bc fix: catalog migration w/o connection (#30773) 2024-11-01 08:11:01 -03:00
Geido
3e29777526 fix(Dashboard): Sync/Async Dashboard Screenshot Generation and Default Cache (#30755)
Co-authored-by: Michael S. Molina <michael.s.molina@gmail.com>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-11-01 11:39:43 +02:00
Daniel Lee
2518190b2d style(databases-upload-form): update Upload Form cosmetics (#30758) 2024-10-31 11:20:16 -06:00
Enzo Martellucci
31aad28a31 refactor: Migrate SliceAdder to typescript (#30697) 2024-10-31 16:57:49 +02:00
Richard Parsons
58edc79820 fix(mssql db_engine_spec): adds uniqueidentifier to column_type_mappings (#30618) 2024-10-30 15:58:28 -07:00
goto-loop
a729f04695 fix(chart): apply number format in Box Plot tooltip only where necessary (#27142) 2024-10-30 14:59:06 -06:00
Jack
849d426e06 feat(oauth): adding necessary changes to support bigquery oauth (#30674) 2024-10-30 14:56:22 -05:00
alexandrusoare
bc5da631c8 refactor(Switch): Upgrade Switch to Ant Design 5 (#30731) 2024-10-30 20:18:49 +02:00
Evan Rusackas
9bb69ab311 docs: Adding link to StarRocks official docs (#30757) 2024-10-30 11:25:09 -06:00
Mark Stephan
dc9dd5fabf docs: Update INTHEWILD.md (#30747) 2024-10-30 14:16:57 -03:00
SaiSkandaTNI
4511e1c28d docs: add Sarathi to users list (#30753) 2024-10-30 11:15:43 -06:00
Vitor Avila
e79778ac6d feat(dataset API): Add parameter to optionally render Jinja macros in API response (#30721) 2024-10-30 12:42:27 -03:00
Geido
d5a98e0189 chore(Dashboard): Simplify scoping logic for cross/native filters (#30719) 2024-10-30 14:19:26 +02:00
Maxime Beauchemin
73768f6313 fix(explore): column data type tooltip format (#30588) 2024-10-29 18:47:20 -07:00
Yuvraj Rimal
eb14c762af docs: Update INTHEWILD.md with Medic (#30749) 2024-10-29 19:29:33 -06:00
Hung
a74ef412fb fix(country-map): Rename incorrect Vietnam province name for Country Map (#30608) 2024-10-29 19:05:45 -06:00
wugeer
60cd2550a7 feat: cancel impala query on stop (#30412) 2024-10-29 16:44:22 -07:00
Đỗ Trọng Hải
576ad85eb4 chore(fe): replace deprecate aliased Jest matchers with corresponding substituents (#30355)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-10-29 12:27:20 -06:00
dependabot[bot]
f2a9f31135 build(deps): bump cookie from 0.6.0 to 0.7.0 in /superset-websocket (#30536)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 12:25:16 -06:00
dependabot[bot]
98c0fdc7e8 build(deps-dev): bump webpack from 5.94.0 to 5.95.0 in /docs (#30480)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 12:24:42 -06:00
dependabot[bot]
bdb79a0630 build(deps): bump cookie, cookie-parser and express in /superset-websocket/utils/client-ws-app (#30571)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 12:24:13 -06:00
wugeer
fbd7c0ce01 docs: rename Twitter to X in the INTHEWILD.md (#30738) 2024-10-29 10:12:23 -07:00
Sam Firke
b9ac800bfb docs(templating): Replace "true" with "1 = 1" and explain its purpose (#30743) 2024-10-29 13:00:46 -04:00
Phil Dumbreck
eecb537808 ci: Add Python 3.11 images to Docker Hub (#30733) 2024-10-29 09:16:23 -07:00
Vitor Avila
09d3f60d85 fix(Jinja): Extra cache keys for calculated columns and metrics using Jinja (#30735) 2024-10-29 10:14:27 -03:00
Max Forasteiro
c03bf80864 feat(helm-chart): Add extraLabels to all resources (#30710) 2024-10-27 13:36:06 -07:00
dependabot[bot]
299cea0601 build(deps-dev): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /superset-frontend (#30709)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-25 15:03:49 -06:00
Geido
a12ccf2c1d fix(Jinja): Extra cache keys for Jinja columns (#30715) 2024-10-25 19:11:28 +03:00
Denodo Research Labs
1c56857f0c feat(db_engine_specs): added support for Denodo Virtual DataPort (#29927) 2024-10-24 16:24:28 -07:00
Michael Gerber
3d443e0126 feat(number-format): Add duration formatter with colon notation (#30593) 2024-10-24 10:43:04 -07:00
Enzo Martellucci
ec2d3307fd refactor: Migrate UndoRedoKeyListeners to typescript (#30654) 2024-10-24 18:53:16 +02:00
Enzo Martellucci
e4d8f7af61 refactor: Migration publishedStatus to typescript (#30653) 2024-10-24 18:31:15 +02:00
Geido
19f840cde7 fix(Dashboard): DatePicker to not autoclose modal (#30702) 2024-10-24 19:26:42 +03:00
Michael S. Molina
c9ff09a418 fix: Nested transaction is inactive when embedding dashboard (#30699) 2024-10-24 13:08:55 -03:00
Daniel Vaz Gaspar
ee3befb9fc fix: bump FAB to 4.5.2 (#30688) 2024-10-24 12:34:59 +01:00
Vitor Avila
16981d6316 fix(dashboard): Include urlParams in the screenshot generation (#30675) 2024-10-23 16:30:34 -03:00
dependabot[bot]
34131c2948 build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /docs (#30683)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 14:26:13 -03:00
JUST.in DO IT
87deb19bcb fix(chart): Table and page entries misaligned (#30680) 2024-10-23 09:36:25 -07:00
Emad Rad
6fef6ac3a2 fix: Link Checking (#30659) 2024-10-22 16:51:52 -07:00
Enzo Martellucci
4433ef47fe refactor: Migrate HeaderActionsDropdown to typescript (#30568) 2024-10-22 16:55:07 +03:00
Elizabeth Thompson
4d5f70c694 chore: add link to Superset when report error (#30576) 2024-10-21 15:40:20 -07:00
Emad Rad
f8fd2ec4ad docs: frontend long build time (#30655) 2024-10-21 14:28:54 -04:00
Kamil Gabryjelski
4a5d978abb refactor: Split FastVizSwitcher into multiple files for readability (#30662) 2024-10-21 20:05:39 +02:00
Kamil Gabryjelski
e0ebeacd4d fix: Domain 'undefined' error in Storybook (#30661) 2024-10-21 19:55:04 +03:00
Geido
d9a1db044a refactor(Dashboard): Native filters form update endpoint (#30609) 2024-10-21 14:11:22 +03:00
Kamil Gabryjelski
47c5334502 chore: Enable suppressing default chart context menu (#30613) 2024-10-18 15:12:54 +02:00
K Kovács
950a21a020 docs: Clarification on which command to use on which Ubuntu version. (#30523) 2024-10-17 14:39:34 -04:00
Michael S. Molina
bad48d0722 fix: Module is not defined in Partition chart (#30626) 2024-10-16 15:14:11 -03:00
Michael S. Molina
c8edd1fb25 fix: First item hovered on stacked bar (#30628) 2024-10-16 13:07:12 -03:00
Sam Firke
53a121d9e1 fix(docs): address two linkinator failures (#30617) 2024-10-15 19:32:24 -04:00
Sam Firke
74b63a4ba4 fix(docs): leading whitespace line is causing page title and header to be malformed (#30616) 2024-10-15 19:31:56 -04:00
Geido
362948324c fix(Filters): Apply native & cross filters on common columns (#30438) 2024-10-15 16:13:05 -07:00
Beto Dealmeida
4cac7feb67 feat: use dialect when tokenizing (#30614) 2024-10-15 14:32:02 -04:00
Yerkebulan
d6b2e86155 fix: Set correct amount of steps to avoid confusing logs while loading examples (#30606) 2024-10-15 14:55:12 -03:00
Ville Brofeldt
7132d5a86a chore(number-formatter): upgrade pretty-ms to 9.1.0 (#30599) 2024-10-15 10:37:28 -07:00
dependabot[bot]
55f18a34a9 build(deps): bump cookie, @applitools/eyes-storybook and express in /superset-frontend (#30572)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-15 10:50:02 -06:00
ObservabilityTeam
2c3ba95768 fix(filters): Adds a fix for saving time range adhoc_filters (#30581)
Co-authored-by: Muhammad Musfir <muhammad.musfir@de-cix.net>
2024-10-15 11:44:31 -03:00
anamitraadhikari
6ede3271ff fix(SQL Lab): hang when result set size is too big (#30522)
Co-authored-by: aadhikari <aadhikari@apple.com>
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2024-10-14 18:03:28 -07:00
Mateusz Kopeć
0e9c0f621a feat(formatting): Add memory units adaptive formatter to format bytes (#30559) 2024-10-11 16:02:03 -07:00
Beto Dealmeida
47c1e09c75 fix: sqlparse fallback for formatting queries (#30578) 2024-10-11 15:45:40 -04:00
Đỗ Trọng Hải
9a2b1a5cf7 chore(fe): uplift FE packages to latest version (#30357)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-10-11 12:46:01 -06:00
Vitor Avila
9c12b1c7da fix(Jinja metric macro): Support Drill By and Excel/CSV download without a dataset ID (#30443) 2024-10-10 21:03:19 -03:00
Beto Dealmeida
0db59b45b8 fix: adhoc metrics (#30202) 2024-10-10 16:46:17 -04:00
Joe Li
ef0ede7c13 fix: update html rendering to true from false (#30565) 2024-10-10 14:19:26 -03:00
Geido
62b94d5abf fix(dev-server): Revert "chore(fe): bump webpack-related packages to v5" (#30569) 2024-10-10 12:59:26 +03:00
Geido
318eff7327 fix(Jinja): Extra cache keys to consider vars with set (#30549) 2024-10-09 23:26:32 +03:00
Felix
211564a6da fix(dashboard-export): Fixes datasetId is not replaced with datasetUuid in Dashboard export in 4.1.x (#30425) 2024-10-09 11:36:46 -07:00
Michael S. Molina
7a8e8f890f fix: Incorrect type in config.py (#30564) 2024-10-09 14:29:11 -03:00
Michael S. Molina
7b47e43fd0 fix: Horizon Chart are not working any more (#30563) 2024-10-09 14:22:17 -03:00
Michael S. Molina
fc857d987b fix: Unable to parse escaped tables (#30560) 2024-10-09 13:25:44 -03:00
Maxime Beauchemin
a849c29288 chore: enable lint PT009 'use regular assert over self.assert.*' (#30521) 2024-10-07 13:17:27 -07:00
Enzo Martellucci
1f013055d2 refactor: Migration of Chart to TypeScript (#28370)
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
2024-10-07 20:47:28 +03:00
Đỗ Trọng Hải
2e887598ba chore(fe): bump webpack-related packages to v5 (#30528)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-10-07 14:30:04 -03:00
dkrat7
aa94488065 chore(translations): Slovenian translation update (#30526) 2024-10-07 14:22:39 -03:00
Ville Brofeldt
163b71e019 fix(migration): replace unquote with double percentages (#30532) 2024-10-06 20:05:20 -07:00
Beto Dealmeida
a098809294 feat(SQL Lab): better SQL parsing error messages (#30501) 2024-10-04 19:17:56 -04:00
Jack
95325c4673 fix(imports): Error when importing charts / dashboards with missing DB credentials (#30503) 2024-10-04 15:43:29 -05:00
Đỗ Trọng Hải
68c9a8177c fix(frontend/generator): fix failed Viz plugin build due to missing JSDOM config and dep (#30069)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-10-04 11:04:30 -06:00
Geido
f314685a8e fix(Explore): Apply RLS at column values (#30490)
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2024-10-04 18:12:28 +03:00
Beto Dealmeida
0b34197815 fix: don't reformat generated queries (#30350) 2024-10-04 11:09:37 -04:00
JUST.in DO IT
b627011463 fix(explore): don't discard controls on deprecated (#30447) 2024-10-03 17:12:23 -07:00
Đỗ Trọng Hải
2aa9348759 feat(be/cfg): replace deprecated imp.load_source with importlib.util (#30390) 2024-10-03 15:58:32 -06:00
Ville Brofeldt
6217cb636f fix(examples): fix examples uri for sqlite (#30277) 2024-10-03 15:48:48 -06:00
Đỗ Trọng Hải
2a458a4802 fix(fe/src/dashboard): optional chaining for possibly nullable parent attribute in LayoutItem type (#30442)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-10-03 15:48:18 -06:00
Đỗ Trọng Hải
989744aba2 fix(plugin/echarts): correct enum values for LABEL_POSITION map (#30509)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-10-03 15:47:59 -06:00
JUST.in DO IT
4dfee727e8 fix(sqllab): Remove redundant scrolling (#30500) 2024-10-03 13:17:23 -07:00
Gonçalo Teixeira
b2fd56094f fix(radar-chart): metric options not available & add min option (#30349) 2024-10-03 09:41:46 -07:00
Michael S. Molina
03146b21be fix: Open control with Simple tab selected when there is no column selected (#30502) 2024-10-03 08:45:39 -03:00
Beto Dealmeida
e0172a24b8 fix(embedded): sankey charts (#30491) 2024-10-02 13:45:35 -04:00
Joe Li
bd42e336c7 chore: add native filters to Covid Vaccines dashboard (#30495) 2024-10-02 10:32:04 -07:00
dependabot[bot]
84d3e3d25f build(deps-dev): bump typescript from 5.5.4 to 5.6.2 in /superset-websocket (#30463)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-02 10:41:13 -06:00
dependabot[bot]
a194393efc build(deps): bump express from 4.20.0 to 4.21.0 in /superset-websocket/utils/client-ws-app (#30472)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-02 10:40:57 -06:00
Maxime Beauchemin
bc8e9513bf docs: fix broken links in CI (#30496) 2024-10-02 09:15:58 -06:00
dependabot[bot]
f4094829c2 build(deps-dev): bump typescript from 5.5.4 to 5.6.2 in /docs (#30476)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 16:32:55 -07:00
dependabot[bot]
657377b0ab build(deps): bump @rjsf/core from 5.19.4 to 5.21.1 in /superset-frontend (#30461)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 14:30:54 -06:00
dependabot[bot]
8019c8b665 build(deps-dev): bump typescript-eslint from 8.6.0 to 8.8.0 in /superset-websocket (#30465)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 14:29:53 -06:00
dependabot[bot]
4c73b040c8 build(deps-dev): bump @types/node from 22.0.2 to 22.7.4 in /superset-websocket (#30466)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 14:29:39 -06:00
dependabot[bot]
d3a208eb8a build(deps): bump @types/prop-types from 15.7.5 to 15.7.13 in /superset-frontend (#30467)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 14:29:23 -06:00
dependabot[bot]
7d0cb39f2a build(deps): bump @types/react-loadable from 5.5.6 to 5.5.11 in /superset-frontend (#30469)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 14:29:08 -06:00
dependabot[bot]
553932dc72 build(deps): bump debug from 4.3.6 to 4.3.7 in /superset-websocket/utils/client-ws-app (#30471)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 14:28:31 -06:00
Đỗ Trọng Hải
da7a74e604 refactor(frontend): migrate 6 Enzyme-based tests to RTL, part 2 (#30281)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-10-01 14:27:47 -06:00
dependabot[bot]
15f3ea8d05 build(deps-dev): bump esbuild-loader from 4.1.0 to 4.2.2 in /superset-frontend (#30487)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 13:01:43 -07:00
dependabot[bot]
62350f2e5f build(deps-dev): bump eslint-plugin-file-progress from 1.4.0 to 1.5.0 in /superset-frontend (#30460)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:54:14 -07:00
dependabot[bot]
e5ddb3bbd6 build(deps-dev): bump @cypress/react from 5.12.5 to 8.0.2 in /superset-frontend (#30459)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:53:49 -07:00
dependabot[bot]
f425c9d315 build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.6.0 to 8.8.0 in /superset-websocket (#30464)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:53:05 -07:00
dependabot[bot]
a8500abd8f build(deps): bump re-resizable from 6.9.11 to 6.10.0 in /superset-frontend (#30477)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:52:01 -07:00
dependabot[bot]
ee9ece8992 build(deps-dev): bump webpack-manifest-plugin from 4.1.1 to 5.0.0 in /superset-frontend (#30473)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:51:29 -07:00
dependabot[bot]
7468904968 build(deps-dev): bump @types/react from 18.3.5 to 18.3.10 in /docs (#30481)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:49:20 -07:00
dependabot[bot]
8a68a96f77 build(deps): bump @docsearch/react from 3.6.1 to 3.6.2 in /docs (#30483)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:47:51 -07:00
dependabot[bot]
fa34e0fae3 build(deps): bump handlebars from 4.7.7 to 4.7.8 in /superset-frontend (#30484)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:45:35 -07:00
dependabot[bot]
54679c5f49 build(deps-dev): bump @types/yargs from 17.0.32 to 17.0.33 in /superset-frontend (#30485)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:45:10 -07:00
Ville Brofeldt
d1d9011f4d docs(dashboard): add docs for named and index colors (#30445) 2024-10-01 10:50:41 -07:00
Geido
9f476b2ce2 fix(Package.json): Bump dayjs version (#30493) 2024-10-01 19:45:29 +03:00
Diego Lima
70ef40eb33 fix(language): pt_BR translation (#30406) 2024-10-01 10:09:31 -06:00
Elizabeth Thompson
2e5016713a chore: log warnings for database tables api (#30410) 2024-09-30 13:52:17 -07:00
Maxime Beauchemin
9a5e8a4b70 chore: document upper bound for python lib 'holidays' >= 0.26 (#28747) 2024-09-30 13:23:14 -07:00
Maxime Beauchemin
daa4b1dc65 fix: battling cypress' dashboard feature (#30441) 2024-09-30 10:50:16 -07:00
Geido
c7aeb2160e chore(Dashboard): Unblock Global Styles (#30440) 2024-09-30 18:39:15 +03:00
Michael S. Molina
4834390e6a fix: Histogram chart not able to use decimal datatype column (#30416) 2024-09-30 09:04:55 -03:00
Ross Mabbett
bdd50c7553 feat(dashboard): update tab drag and drop reordering with positional placement and indicators for UI (#29395) 2024-09-30 12:15:39 +03:00
Maxime Beauchemin
999dca76c1 fix: cypress on master doesn't work because of --parallel flag (#30430) 2024-09-29 20:32:04 -07:00
Maxime Beauchemin
63e17ca546 fix: CI remove cypress command --headed (#30429) 2024-09-30 00:28:39 +02:00
Maxime Beauchemin
a3bfbd0186 chore: alter scripts/cypress_run to run one file per command + retry (#30397)
Co-authored-by: Joe Li <joe@preset.io>
2024-09-28 17:59:04 -06:00
Beto Dealmeida
cc9fd88c0d chore: improve DML check (#30417) 2024-09-27 15:26:36 -04:00
Elizabeth Thompson
96b0bcfd78 chore: add logging for dashboards/get warnings (#30365) 2024-09-27 11:08:04 -07:00
Geido
4ac0bb1bed chore(View): Remove unnecessary theme view and defer basic styles (#30128) 2024-09-27 18:12:58 +02:00
Đỗ Trọng Hải
92680b3fe4 fix(plugin/country/map): rectify naming for some Vietnamese provinces (#29444)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-27 10:00:06 -06:00
Michael S. Molina
4f5f8fd216 chore: Merge description and reproduction steps in the issue template (#30407) 2024-09-27 08:26:45 -03:00
Michael S. Molina
36f7a3f524 fix: Incorrect hovered items in tooltips (#30405) 2024-09-26 16:08:59 -03:00
Birk Skyum
0fdcd8b27e chore(legacy-plugin-chart-map-box): bump supercluster to v8 (#30305) 2024-09-25 21:18:14 -06:00
dependabot[bot]
20b1eabb9b build(deps): update @emotion/react requirement from ^11.4.1 to ^11.13.3 in /superset-frontend/packages/superset-ui-demo (#30086)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-09-25 19:49:00 -06:00
dependabot[bot]
b7ac697dce build(deps): bump @emotion/react from 11.4.1 to 11.11.4 in /superset-frontend (#27827)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-25 19:47:50 -06:00
Michael S. Molina
abf2943e4d fix: Allows X-Axis Sort By for custom SQL (#30393) 2024-09-25 19:08:28 -03:00
Elizabeth Thompson
43721f1206 chore: split cypress files for less memory (#30354) 2024-09-25 13:50:53 -07:00
Elizabeth Thompson
0e8fa54f81 fix: parse pandas pivot null values (#29898) 2024-09-25 13:50:04 -07:00
Michael S. Molina
ad2998598f fix: Pre-query normalization with custom SQL (#30389) 2024-09-25 15:30:53 -03:00
Sam Firke
69d5f766a8 feat(auth): when user is not logged in, failure to access a dashboard should redirect to login screen (#30380) 2024-09-25 14:26:26 -04:00
Antonio Rivero
18c2376b50 feat(datasets): Allow swap dataset after deletion (#30364) 2024-09-25 18:12:45 +02:00
Enzo Martellucci
39f1b714a5 refactor: Migration of AnnotationLayerControl to TypeScript (#28346)
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2024-09-25 17:45:11 +02:00
dependabot[bot]
0baac62099 build(deps-dev): bump sinon from 18.0.0 to 18.0.1 in /superset-frontend (#30251)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-25 09:07:07 -06:00
Geido
046c096d86 fix(ECharts): Revert ECharts version bump (#30388) 2024-09-25 15:32:55 +02:00
Geido
de3af85ee1 feat(Digest): Add RLS at digest generation for Charts and Dashboards (#30336)
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2024-09-24 15:39:11 +02:00
Tim Dörnemann
cc1bb69671 docs: Corrected Dremio connection string (#30315)
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-09-23 14:02:31 -06:00
Sam Firke
30ca30370d chore(docs): fix an agreement error in caching docs (#30352) 2024-09-23 15:09:47 -04:00
Beto Dealmeida
710406aa76 feat: allow configuring an engine context manager (#30266) 2024-09-23 12:36:18 -04:00
axuew
ee3a56714e docs: add HANA database logo in README.md (#30346) 2024-09-23 10:21:15 -06:00
dependabot[bot]
a095b08758 build(deps): update dompurify requirement from ^3.1.0 to ^3.1.2 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#28290)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-09-23 10:18:41 -06:00
dependabot[bot]
bfdab40aaf build(deps-dev): bump @storybook/react-webpack5 from 8.1.11 to 8.2.9 in /superset-frontend/packages/superset-ui-demo (#30089)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-09-23 10:18:30 -06:00
Đỗ Trọng Hải
55d9d57112 build(websocket): upgrade ESLint to v9 (#30359)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-22 11:14:42 -07:00
dependabot[bot]
f3e4347a8b build(deps): bump deck.gl from 9.0.24 to 9.0.28 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#30084)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-20 13:42:26 -06:00
Evan Rusackas
d4351668ba fix(CI): increase node JS heap size (#30340) 2024-09-20 11:49:59 -06:00
Sam Firke
ac66ae813f fix(db_engine_specs): add a few missing time grains to Postgres spec (#30325) 2024-09-20 13:34:10 -04:00
Kamil Gabryjelski
038ef32454 fix(explore): Missing markarea component broke annotations in echarts (#30348) 2024-09-20 16:42:47 +02:00
dependabot[bot]
994de1f812 build(deps): bump dompurify from 3.1.0 to 3.1.3 in /superset-frontend (#30300)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-19 17:25:48 -06:00
dependabot[bot]
36f3cd1f70 build(deps): bump path-to-regexp from 1.8.0 to 1.9.0 in /superset-frontend/cypress-base (#30247)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-19 17:10:45 -06:00
Michael S. Molina
ef9e5e523d fix: KeyError 'sql' when opening a Trino virtual dataset (#30339) 2024-09-19 17:41:08 -03:00
George A. A. Bonespírito
9b87ca9209 docs: sql-templating (#30337) 2024-09-19 15:09:01 -03:00
varfigstar
186e75f9b2 docs: Update cache.mdx, add needed space (#30333) 2024-09-19 15:05:21 -03:00
Antonio Rivero
6c2bd2a968 fix(table): Use extras in queries (#30335) 2024-09-19 16:45:39 +02:00
LeeSangHoon
68594d97cb chore(helm): correct a typo (#30123) 2024-09-19 09:45:58 +01:00
Elizabeth Thompson
a90aa055f5 chore: bump cypress to v 11 (#30262) 2024-09-18 17:50:02 -07:00
Ville Brofeldt
78099b0d1f fix(migration): 87d38ad83218 failing on upgrade (#30275) 2024-09-18 17:43:22 -07:00
Martyn Gigg
1441ad8546 chore(UPDATING.md): Add item to UPDATING describing translations build flag (#30313) 2024-09-18 15:02:25 -07:00
dependabot[bot]
0dcfe74bc6 build(deps): bump express from 4.19.2 to 4.20.0 in /docs (#30227)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 15:26:18 -06:00
lindner-tj
e54353c4da docs: HTML embedding of charts/dashboards without authentication (#30032)
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2024-09-18 15:32:21 -04:00
Sam Firke
08145d88b9 style(explore): clarify ambiguously named "sort by" field (#30254) 2024-09-18 15:18:42 -04:00
Ville Brofeldt
a3952051e1 feat(jinja): add option to format time filters using strftime (#30323) 2024-09-18 10:47:38 -07:00
Kasia
930078b6f5 chore(explore): Medium font weight for section headers (#30321) 2024-09-18 19:39:06 +02:00
JUST.in DO IT
cd8b56706b fix: unable to disallow csv upload on header menu (#30271) 2024-09-17 14:27:47 -07:00
JUST.in DO IT
2f0c9947ce fix(dashboard): Invalid owner's name displayed after updates (#30272) 2024-09-17 14:27:30 -07:00
JUST.in DO IT
c33d49ecab fix(dashboard): invalid button style in undo/redo button (#30273) 2024-09-17 10:16:56 -07:00
Maxime Beauchemin
f315a4f02c chore: move SLACK_ENABLE_AVATARS from config to feature flag (#30274) 2024-09-16 16:07:11 -07:00
Martyn Gigg
46b1d869b1 fix: Move copying translation files before npm run build in Docker (#30099) 2024-09-16 13:43:11 -07:00
Đỗ Trọng Hải
2166cbdd80 fix(install/docker): use zstd-baked image for building superset-frontend in containerized env (#30279)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-16 10:01:49 -07:00
Ville Brofeldt
63f4f4f60c chore: remove redundant code (#30261) 2024-09-16 09:42:43 -07:00
JUST.in DO IT
f553344aa1 chore(sqllab): Add shortcuts for switching tabs (#30173) 2024-09-16 09:10:45 -07:00
Geido
0679454b48 fix(Screenshot): Dashboard screenshot cache key to include state (#30265) 2024-09-16 16:09:01 +02:00
Gnought
3ad0fd48ef chore(deps): bump dremio deps (#25910) 2024-09-15 23:46:08 -06:00
Nyanda Freddy
d1bdbd8189 docs: Update kubernetes.mdx (#30268) 2024-09-15 11:15:12 -06:00
Maxime Beauchemin
bcbd679a75 chore(docker): move mysql os-level deps (GPL) to dev image only (#29771) 2024-09-15 10:24:14 -06:00
Đỗ Trọng Hải
e9094659d3 refactor(frontend): migrate 6 tests from Enzyme to RTL (#30151)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
2024-09-13 15:02:03 -06:00
Beto Dealmeida
bdf29cb7c2 chore: organize SQL parsing files (#30258) 2024-09-13 16:24:19 -04:00
Đỗ Trọng Hải
8cd18cac8c chore(build): remove extraneous prettier step in superset-frontend CI (#30253)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-13 08:56:59 -07:00
Evan Rusackas
3877355555 build(ci): make linkinator advisory (#30257) 2024-09-13 09:09:00 -06:00
Geido
dbab2fb955 fix(CrossFilters): Do not reload unrelated filters in global scope (#30252)
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
2024-09-13 15:20:51 +02:00
Ross Mabbett
c5594f2979 feat(explore): Add time shift color control to ECharts (#29897) 2024-09-12 12:42:00 -04:00
JUST.in DO IT
ff3b86b5ff feat(sqllab): Add timeout on fetching query results (#29959) 2024-09-12 09:41:28 -07:00
Geido
23467bd7e4 fix(Fave): Charts and Dashboards fave/unfave do not commit transactions (#30215) 2024-09-12 18:06:30 +02:00
Đỗ Trọng Hải
8c0b873ae2 build(deps, deps-dev): upgrade major versions for dependencies of @superset/embedded-sdk (#30242)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-12 08:40:18 -06:00
dependabot[bot]
2e107398ae build(deps): bump send and express in /superset-frontend (#30228)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-11 21:57:27 -06:00
dependabot[bot]
c4c0845b3b build(deps): bump serve-static and express in /superset-frontend (#30229)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-11 19:37:44 -06:00
Sam Firke
f8a77537a7 fix(uploads): respect db engine spec's supports_multivalues_insert value for file uploads & enable multi-insert for MSSQL (#30222)
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2024-09-11 20:17:48 -04:00
JUST.in DO IT
be0a0ced25 fix: filters panel broken due to tabs scroll (#30180) 2024-09-11 16:30:34 -07:00
Evan Rusackas
88b698c092 fix(deps): release new embedded sdk (#30234) 2024-09-11 16:42:18 -06:00
Ross Mabbett
0f44362348 refactor(explore): Migrate MetricsControl test suite to RTL (#30232) 2024-09-11 16:52:28 -04:00
Yuriy Shakhov
750888f6d3 fix(docs): change flask-oidc url (#30237) 2024-09-11 16:47:57 -04:00
Sam Firke
4385b44e86 chore(docs): note that release-tagged docker images no longer ship with metadata db drivers as of 4.1.0 (#30243) 2024-09-11 14:13:01 -04:00
Geido
1b34ad65fa fix(Celery): Pass guest_token as user context is not available in Celery (#30224) 2024-09-11 17:35:32 +02:00
dependabot[bot]
dca970946d build(deps): bump serve-static and express in /superset-websocket/utils/client-ws-app (#30226)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 23:24:35 -06:00
dependabot[bot]
e2a6d370f0 build(deps): bump send and express in /superset-websocket/utils/client-ws-app (#30225)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 23:24:07 -06:00
David Markey
a31a4eebdd feat(embedded): add hook to allow superset admins to validate guest token parameters (#30132)
Co-authored-by: David Markey <markey@rapidraitngs.com>
2024-09-10 22:49:56 -06:00
Evan Rusackas
7bb6a14944 feat: Displaying details to Dataset/Database deletion modals (#30016) 2024-09-10 15:27:25 -06:00
dependabot[bot]
5a0e88771b build(deps): update @babel/runtime requirement from ^7.1.2 to ^7.25.6 in /superset-frontend/packages/superset-ui-core (#30091)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-09-10 15:18:28 -06:00
Josh Soref
d0c9cde0ba chore(frontend): Spelling (#25452)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-09-10 15:05:35 -06:00
Đỗ Trọng Hải
dd4f223a39 fix(sdk): use latest @supserset-ui/switchboard version to avoid pulling empty dependency (#30217)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-10 11:40:30 -06:00
Vitor Avila
d191e67e51 fix(Dashboard download): Download dashboard screenshot/PDF using SupersetClient (#30212) 2024-09-10 19:27:19 +02:00
Beto Dealmeida
cddf1530da chore: remove duplicate _process_sql_expression (#30213) 2024-09-10 12:15:03 -04:00
Geido
52a03f18a1 fix(Embedded): Dashboard screenshot should use GuestUser (#30200) 2024-09-10 15:11:09 +02:00
Maxime Beauchemin
6baeb659a7 fix: set default mysql isolation level to 'READ COMMITTED' (#30174)
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2024-09-09 17:00:54 -07:00
dependabot[bot]
fed117fbf7 build(deps-dev): update @babel/types requirement from ^7.25.2 to ^7.25.6 in /superset-frontend/plugins/plugin-chart-pivot-table (#30103)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-09-09 14:55:28 -06:00
Evan Rusackas
ff5cc09eac chore(docs): Removing dead link from INTHEWILD.md (#30199) 2024-09-09 13:51:05 -07:00
dependabot[bot]
100b31cb71 build(deps-dev): bump @types/react from 18.3.3 to 18.3.5 in /docs (#30101)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 12:56:38 -06:00
dependabot[bot]
0080374a77 build(deps-dev): bump webpack from 5.93.0 to 5.94.0 in /docs (#30036)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 12:46:52 -06:00
dependabot[bot]
d685497a10 build(deps): bump antd from 5.20.0 to 5.20.5 in /docs (#30179)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 12:03:55 -06:00
Beto Dealmeida
1f890718a2 feat: is_mutating method (#30177) 2024-09-09 13:56:18 -04:00
dependabot[bot]
05197db71b build(deps): bump @types/node from 20.12.7 to 22.5.4 in /superset-frontend (#30166)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 10:26:46 -06:00
Kamil Gabryjelski
3aafd29768 fix: Disable cross filtering on charts with no dimensions (#30176) 2024-09-09 12:43:14 +02:00
Ross Masters
0744abe87b fix: Chart cache-warmup task fails on Superset 4.0 (#28706) 2024-09-06 17:56:14 -07:00
dependabot[bot]
d7547fc4ef build(deps-dev): bump typescript from 4.9.5 to 5.5.4 in /superset-websocket (#30097)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-06 11:58:53 -07:00
Ville Brofeldt
601e55656c feat(jinja): add advanced temporal filter functionality (#30142) 2024-09-06 11:15:40 -07:00
dependabot[bot]
c6ccd2ee6a build(deps): bump core-js from 3.37.1 to 3.38.1 in /superset-frontend/packages/superset-ui-demo (#30088)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-06 11:45:23 -06:00
Đỗ Trọng Hải
aa50eb3b03 build(dev-deps, deps): upgrade major versions for FE deps (#29963)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-09-06 11:44:22 -06:00
JUST.in DO IT
4d1db9e32c fix(sqllab): Skip AceEditor in inactive tabs (#30171) 2024-09-06 13:58:59 -03:00
Patrick Schmidt
6294e339e2 feat(db_engine): Implement user impersonation support for StarRocks (#28110) 2024-09-06 09:13:38 -07:00
Ville Brofeldt
d3f5c795ff chore(docs): bump docusaurus from 3.4.0 to 3.5.2 (#30167) 2024-09-06 08:21:12 -07:00
dependabot[bot]
043b5d4b9a build(deps): bump ws and @types/ws in /superset-websocket (#30094)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 13:42:57 -06:00
dependabot[bot]
1fe5db2ec3 build(deps-dev): bump @docusaurus/module-type-aliases from 3.4.0 to 3.5.2 in /docs (#30105)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:40:08 -06:00
dependabot[bot]
63eb7e5519 build(deps): bump react-ultimate-pagination and @types/react-ultimate-pagination in /superset-frontend (#30111)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:39:42 -06:00
dependabot[bot]
1317af8d85 build(deps): bump prism-react-renderer from 2.3.1 to 2.4.0 in /docs (#30106)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:32:01 -06:00
dependabot[bot]
b178675276 build(deps-dev): bump @docusaurus/tsconfig from 3.4.0 to 3.5.2 in /docs (#30107)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:31:29 -06:00
dependabot[bot]
a1143228b2 build(deps): bump react-svg-pan-zoom from 3.12.1 to 3.13.1 in /docs (#30108)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:29:56 -06:00
dependabot[bot]
02c47b8eb5 build(deps-dev): bump ts-jest from 29.1.5 to 29.2.5 in /superset-websocket (#30095)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:23:06 -06:00
dependabot[bot]
75f19312ec build(deps): bump uuid and @types/uuid in /superset-websocket (#30096)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:22:30 -06:00
dependabot[bot]
4bf441149d build(deps): bump cryptography from 42.0.7 to 42.0.8 (#30143)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-09-05 12:21:41 -06:00
dependabot[bot]
5374a4c9c4 build(deps-dev): bump prettier-plugin-packagejson from 2.4.10 to 2.5.2 in /superset-frontend (#30118)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 12:20:25 -06:00
JUST.in DO IT
e02b18c63c fix(native filter): undefined layout type on filterInScope (#30164) 2024-09-05 10:51:55 -07:00
Michael S. Molina
de3de541e7 fix: FacePile is requesting avatars when SLACK_ENABLE_AVATARS is false (#30156) 2024-09-05 08:50:50 -03:00
JUST.in DO IT
2097b716f4 fix(sqllab): race condition when updating cursor position (#30154) 2024-09-04 13:11:11 -07:00
Grig Alex
acea58ebe7 fix(docs): typo in docker-compose.mdx (#30147)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-09-04 13:39:46 -06:00
Jordan Bassingthwaite
3f2e2371ef docs: Fixing missing 'c' in installation guide documentation (#30127)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-09-04 13:39:16 -06:00
Ville Brofeldt
272ed98db5 chore(docs): replace http with https (#30155) 2024-09-04 13:34:59 -06:00
Ville Brofeldt
d406c80942 chore(tests): skip extremely flaky gaq test (#30072) 2024-09-04 12:27:32 -07:00
Ville Brofeldt
1338c25896 chore(docs): update xendit link (#30153) 2024-09-04 11:33:53 -07:00
Michael S. Molina
5e42d7aed0 fix: Adds the Deprecated label to Time-series Percent Change chart (#30148) 2024-09-04 13:40:47 -03:00
Maxime Beauchemin
34e240ef0e docs: document how docker-compose-image-tag requires -dev suffixed images (#30144)
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2024-09-04 09:31:16 -07:00
Maxime Beauchemin
cc39afef46 chore: accelerate docker compose by skipping frontend build (#30021) 2024-09-04 08:52:16 -07:00
Michael S. Molina
9cb9e5beee fix: New tooltip inappropriately combines series on mixed chart (#30137) 2024-09-04 08:38:43 -03:00
JUST.in DO IT
880d634dc8 fix(sqllab): race condition when updating same cursor position (#30141) 2024-09-04 08:18:42 -03:00
Beto Dealmeida
ff449ad8ab feat: OAuth2 database field (#30126) 2024-09-03 20:57:55 -04:00
Antonio Rivero
6009023fad fix(catalog): Table Schema View with no catalog (#30139) 2024-09-04 02:41:47 +02:00
Beto Dealmeida
09dfe2f2ab feat: Oauth2 in DatabaseSelector (#30082) 2024-09-03 20:11:37 -04:00
Beto Dealmeida
0415ed34ce feat: allow create/update OAuth2 DB (#30071) 2024-09-03 19:22:38 -04:00
Joe Li
c929f5ed7a fix: pass if table is already removed on upgrade (#30017) 2024-09-03 15:58:39 -07:00
Michael S. Molina
5c5b4d0f5f fix: JSON loading logs (#30138) 2024-09-03 18:52:30 -03:00
Michael S. Molina
af066a4630 fix: DeckGL legend layout (#30140) 2024-09-03 18:50:21 -03:00
dependabot[bot]
2b27e9eda1 build(deps): bump aws-actions/amazon-ecs-deploy-task-definition from 1 to 2 (#30090)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 13:05:26 -06:00
dependabot[bot]
db06a4e241 build(deps-dev): bump webpack from 5.76.0 to 5.94.0 in /superset-embedded-sdk (#30037)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 12:14:27 -06:00
dependabot[bot]
02adf44768 build(deps-dev): bump webpack from 5.93.0 to 5.94.0 in /superset-frontend (#30038)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 12:12:59 -06:00
dependabot[bot]
78a53bfa06 build(deps-dev): bump eslint-plugin-react-prefer-function-component from 0.0.7 to 3.3.0 in /superset-frontend (#30102)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 12:11:38 -06:00
dependabot[bot]
d3760f3000 build(deps): bump d3-time-format and @types/d3-time-format in /superset-frontend (#30117)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 12:08:41 -06:00
dependabot[bot]
dd6c0ad001 build(deps-dev): bump eslint-plugin-no-only-tests from 2.4.0 to 3.3.0 in /superset-frontend (#30116)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 12:06:41 -06:00
Evan Rusackas
9c3eb8f51f fix(accessibility): logo outline on tab navigation, but not on click (#30077) 2024-09-03 12:04:22 -06:00
Michael S. Molina
72a520fba4 fix: Retrieving Slack channels when Slack is disabled (#30074) 2024-09-03 11:32:22 -03:00
Ross Mabbett
9596e458c6 refactor(databases): Create constants.ts, move interface to types.ts (#30027) 2024-09-03 10:13:37 +02:00
Michael S. Molina
548d543efe fix: When hovering Drill By the dashboard is scrolled to the top (#30073) 2024-08-30 15:27:43 -03:00
nsivarajan
103cd3d6f3 feat(GAQ): Add Redis Sentinel Support for Global Async Queries (#29912)
Co-authored-by: Sivarajan Narayanan <narayanan_sivarajan@apple.com>
2024-08-30 10:42:29 -07:00
Michael S. Molina
cd6b8b2f6d fix: Delete modal button with lowercase text (#30060) 2024-08-30 13:33:22 -03:00
Fabian Halkivaha
1f2f66bcb0 feat(docker): add GUNICORN_LOGLEVEL env var (#24308) 2024-08-30 07:42:48 -07:00
Evan Rusackas
4fe3000275 chore(docs): docker instructions use docker compose instead of the deprecated docker-compose (#30030) 2024-08-29 16:42:53 -06:00
hao-zhuventures
e2c4435cab fix: use StrEnum type for GuestTokenResourceType to fix token parsing (#30042) 2024-08-29 13:06:30 -07:00
Ville Brofeldt
606ddc3181 chore(docs): clean up a few md errors (#30057) 2024-08-29 11:54:21 -07:00
Evan Rusackas
07985e2f5a fix: Revert "fix(list/chart views): Chart Properties modal now has transitions" (#30041) 2024-08-28 12:30:58 -06:00
Kamil Gabryjelski
75c500c9a5 fix: Handle zstd encoding in webpack proxy config (#30034) 2024-08-28 17:17:12 +02:00
dmitriyVasilievich1986
e886cc40fe fix: duplicate truncateXAxis option in BarChart (#29916) 2024-08-28 17:02:39 +02:00
Jonathan Schneider
c428108713 fix(plugins): display correct tooltip (fixes #3342) (#30023) 2024-08-27 13:48:00 -06:00
Antonio Rivero
d80f23ed94 fix(migrations): Fix the time comparison migration (#30029) 2024-08-27 20:55:52 +02:00
Michael S. Molina
07a90ad4fe fix: Partition calls from Jinja context (#30019) 2024-08-27 14:25:06 -03:00
Michael S. Molina
2afb66d68d fix: Dashboard list row height does not match other lists (#30025) 2024-08-27 14:02:17 -03:00
Ville Brofeldt
fcf0450294 fix(user-dao): return user model instances (#30020) 2024-08-26 16:50:15 -07:00
abdilra7eem
4e346180e0 chore(translations): Arabic translations (#29586) 2024-08-26 16:01:51 -07:00
Evan Rusackas
029799e2e8 chore(deps): bump core-js (#30011) 2024-08-26 16:54:41 -06:00
Jose Vines
764d4fa1ad fix(translations): Fixed APPLY translation in Spanish (#30013) 2024-08-26 12:31:23 -06:00
Evan Rusackas
5bebcf61fe chore(deps): bump cross-env (#30007) 2024-08-23 15:30:19 -07:00
dependabot[bot]
e8db5dfd67 build(deps): bump micromatch from 4.0.4 to 4.0.8 in /superset-frontend/cypress-base (#30008)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-23 15:21:26 -06:00
dependabot[bot]
cf4a21d095 build(deps): bump micromatch from 4.0.5 to 4.0.8 in /docs (#30009)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-23 15:21:07 -06:00
dependabot[bot]
c8436eb9c0 build(deps): bump remark-gfm from 3.0.1 to 4.0.0 in /superset-frontend/packages/superset-ui-core (#27832)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-08-23 14:41:03 -06:00
dependabot[bot]
0a626bd8ae build(deps): bump d3-time from 1.1.0 to 3.1.0 in /superset-frontend/packages/superset-ui-core (#28292)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-08-23 14:38:46 -06:00
Jack
2fda221b7c feat(alert/reports): adding logic to handle downstream reports when tab is deleted from dashboard (#29333) 2024-08-23 15:26:26 -05:00
Elizabeth Thompson
9249facaf5 fix: Reports are not sent when selecting to send as PNG, CSV or text (#30001) 2024-08-23 10:56:15 -06:00
Jack
7db34b994e fix(screenshots): dashboard screenshots do not capture filter state (#29989) 2024-08-23 19:23:44 +03:00
Daniel
cb23d6f1a8 fix: Removed fixed width constraint from Save button (#29686) 2024-08-23 09:22:18 -07:00
Michael S. Molina
d497dcad41 fix: Security manager incorrect calls (#29884) 2024-08-23 11:39:45 -03:00
Antonio Rivero
bc6d2dba37 feat(time_comparison): Support all date formats when computing custom and inherit offsets (#30002) 2024-08-23 15:32:25 +02:00
squalou
ce72a0ac27 fix: set columns numeric datatypes when exporting to excel (#27229)
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2024-08-23 01:39:47 -06:00
Usiel Riedl
9d5268ab6d feat(sqllab): Adds refresh button to table metadata in SQL Lab (#29974) 2024-08-22 17:07:59 -07:00
Ville Brofeldt
17eecb1981 fix(trino): handle missing db in migration (#29997) 2024-08-22 15:52:56 -07:00
Kaiwalya Koparkar
5906890b78 feat: Adding Elestio as deployment option (#25775) 2024-08-22 15:14:17 -06:00
Beto Dealmeida
4b59e42d3f chore: improve mask/unmask encrypted_extra (#29943) 2024-08-22 16:45:32 -04:00
Evan Rusackas
bf94370d38 chore(init): adding link to secret key instructions (#29990) 2024-08-22 11:49:37 -06:00
Michael S. Molina
eb2d69a5e6 fix: Duplicated example dataset (#29993) 2024-08-22 14:46:26 -03:00
dependabot[bot]
5e847c7afa build(deps): bump ws and @applitools/eyes-cypress in /superset-frontend/cypress-base (#29947)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-22 11:07:57 -06:00
Daniel Vaz Gaspar
4d821f44ae fix: trino thread app missing full context (#29981) 2024-08-22 18:01:06 +01:00
JUST.in DO IT
c049771a7f chore(chart-controls): migrate enzyme to RTL (#26257) 2024-08-22 20:59:21 +09:00
JUST.in DO IT
1a1548da3b chore(shared components): Migrate enzyme to RTL (#26258) 2024-08-22 08:34:51 +09:00
Evan Rusackas
8e2f81816f build(node): Bumping to Node 20 (#29988) 2024-08-21 16:48:21 -06:00
JUST.in DO IT
1ca5947a7d fix(sqllab): flaky json explore modal due to shallow equality checks for extra data (#29978) 2024-08-22 07:28:08 +09:00
Hugh A. Miles II
7650c47e72 fix: Gamma users shouldn't be able to create roles (#29687) 2024-08-20 20:14:20 -04:00
Josh Soref
1818054166 chore(tests): Spelling (#25454)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: John Bodley <4567245+john-bodley@users.noreply.github.com>
2024-08-20 14:47:29 -06:00
Maxime Beauchemin
175ba78d32 docs: improve pre-commit docs and discoverability when CI fails (#29970) 2024-08-20 12:38:50 -07:00
Seboeb
cf083bf827 fix(i18n): translation fix in server side generated time grains (#29951) 2024-08-19 20:17:23 -06:00
Đỗ Trọng Hải
907fc8a713 build(deps-dev): bump eslint-plugin-cypress from 2.11.2 to 3.4.0 in /superset-frontend + corresponding refactor (#29964)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-08-19 20:17:05 -06:00
Evan Rusackas
5ec3093deb chore(antd): straightening out button import paths (#29969) 2024-08-19 20:15:34 -06:00
Elizabeth Thompson
7e88649730 fix: thumbnail url json response was malformed (#29938) 2024-08-19 11:08:39 -07:00
Joe Li
955db48c59 chore: Update to Dockerfile to get creating releases to work (#29937) 2024-08-19 10:26:57 -06:00
Evan Rusackas
5bd6e92cb8 chore(deps): bump micromatch (#29948) 2024-08-19 10:26:28 -06:00
Michael S. Molina
bac61fc24e chore: Allow auto pruning of the query table (#29936) 2024-08-19 08:05:18 -03:00
JUST.in DO IT
6e1ef193dd fix(sqllab): Add abort call on query refresh timeout (#29956) 2024-08-17 06:59:57 +09:00
Natsu
a225f329c5 feat(docs): fix bug google chrome < 114 not found (#29941) 2024-08-16 13:57:28 -04:00
Joe Li
2cc07e6112 fix: try to prevent deadlocks when running upgrade (#29625) 2024-08-16 10:16:05 -07:00
Michael S. Molina
e8f5d7680f fix: upgrade_catalog_perms and downgrade_catalog_perms implementation (#29860) 2024-08-16 08:39:36 -04:00
Vitor Avila
47715c39d0 fix(embedded): Remove CSRF requirement for dashboard download API (#29953) 2024-08-15 19:54:50 -03:00
Joe Li
56f75922b9 chore: add additional code owners to migrations (#29952)
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-08-15 14:32:45 -07:00
Elizabeth Thompson
88d07ce603 fix: only show dataset name in list (#29944) 2024-08-15 09:24:51 -07:00
dependabot[bot]
edd94b66e5 build(deps): bump axios from 1.6.8 to 1.7.4 in /docs (#29945)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 23:33:44 -06:00
dependabot[bot]
e38f2f990c build(deps-dev): bump axios from 1.7.3 to 1.7.4 in /superset-frontend (#29949)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 23:33:02 -06:00
dependabot[bot]
5c9a882226 build(deps-dev): bump axios from 1.6.0 to 1.7.4 in /superset-embedded-sdk (#29946)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 23:32:46 -06:00
Dmitry Stamplevsky
fe5242a876 fix: Fix delete_fake_db (#29935) 2024-08-14 15:30:07 -04:00
Ayush Tripathi
f5d614d80d fix: Rename database from 'couchbasedb' to 'couchbase' in documentation and db_engine_specs (#29911) 2024-08-13 07:47:43 -07:00
Beto Dealmeida
39209c2b40 fix: handle empty catalog when DB supports them (#29840) 2024-08-13 10:08:43 -04:00
Joe Li
9f5eb899e8 fix: add imports back to celery file (#29921) 2024-08-12 16:21:33 -06:00
Eugene Apollonsky
050c6daff3 fix(cli): add impersonate_user to db import (#29522)
Co-authored-by: Eugene Apollonsky <eapollonskii@intertrust.com>
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2024-08-12 14:05:20 -07:00
Kamil Gabryjelski
c016ca5ad9 feat: Enable injecting custom html into head (#29917) 2024-08-12 16:13:03 +02:00
Michael S. Molina
57a4199f52 chore: Logs the duration of migrations execution (#29893) 2024-08-09 15:25:30 -04:00
Michael S. Molina
222c46f639 chore: Changes the migrations owners (#29904) 2024-08-09 15:22:54 -04:00
Michael S. Molina
fb7f50868d fix: Error when downgrading add_catalog_perm_to_tables migration (#29906) 2024-08-09 14:11:55 -04:00
Geido
b323bf0fb6 fix(Embedded): Deleting Embedded Dashboards does not commit the transaction (#29894) 2024-08-09 17:29:57 +03:00
Elizabeth Thompson
38d64e8dd2 fix: add mutator to get_columns_description (#29885) 2024-08-08 17:25:33 -07:00
Geido
fb6efb9e9a fix(PivotTable): Pass string only to safeHtmlSpan (#29895) 2024-08-08 20:01:18 +03:00
Maxime Beauchemin
e77f755765 chore: remove useless GitHub action (#29868) 2024-08-07 16:25:12 -07:00
Maxime Beauchemin
56e59b47fe chore: remove useless GitHub action required check (#29869) 2024-08-07 15:29:38 -07:00
Evan Rusackas
9b95accf6b feat(build): webpack visualizer (#29875) 2024-08-07 10:21:22 -06:00
Kamil Gabryjelski
c220245414 perf: Implement Echarts treeshaking (#29874) 2024-08-07 06:53:52 +02:00
Evan Rusackas
db1d77cba2 chore(deps): bumping underscore via npm override (#29859) 2024-08-06 16:53:46 -06:00
Elizabeth Thompson
0c3aa7d8fe fix: load slack channels earlier (#29846) 2024-08-06 15:40:30 -07:00
Ville Brofeldt
226b755798 chore(docs): reorder fs users (#29876) 2024-08-06 11:59:36 -07:00
Maxime Beauchemin
c7dc4dc7fc fix: mypy issue on py3.9 + prevent similar issues (#29864) 2024-08-06 13:36:23 -04:00
Evan Rusackas
fede4f9f1b chore(deps): bumping jquery (#29841) 2024-08-06 13:18:32 -04:00
Amit Miran
e16ba28a8c docs: add unit to companies list (#29870) 2024-08-06 10:47:27 -06:00
Evan Rusackas
052b38bdf3 fix(capitalization): Capitalizing a button. (#29867) 2024-08-06 10:29:00 -06:00
Beto Dealmeida
61c0970968 fix: create permissions on DB import (#29802) 2024-08-06 12:09:21 -04:00
Đỗ Trọng Hải
1c3ef01209 chore(build): uplift several outdated frontend packages (#29652)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-08-06 09:02:01 -06:00
Maxime Beauchemin
9fed576cb4 fix: update celery config imports (#29862) 2024-08-05 15:46:53 -07:00
Maxime Beauchemin
e011c91921 chore: pre-matrixify pre-commit check (#29866) 2024-08-05 16:42:19 -06:00
Evan Rusackas
7eb3ca408f chore(cleanup): Removing bootstrap (experimental) (#29844) 2024-08-05 16:02:20 -06:00
Joe Li
422aa6b657 chore: Add the 4.1 release notes (#29262) 2024-08-05 14:37:12 -07:00
Maxime Beauchemin
c27db070db fix: mypy fails related to simplejson.dumps (#29861) 2024-08-05 13:17:58 -07:00
danielli-ziprecruiter
4a06e830ca chore: describe timezone issue with alerts and reports scheduler in UPDATING.md (#29863) 2024-08-05 13:08:25 -06:00
Mathis Van Eetvelde
aa26ca5c27 fix(docs): update timescale.png (#24411)
Signed-off-by: Mathis Van Eetvelde <mathis.vaneetvelde@protonmail.com>
2024-08-05 13:07:21 -06:00
Kamil Gabryjelski
5b5f448af0 perf: Lazy load rehype-raw and react-markdown (#29855) 2024-08-05 17:19:06 +02:00
Kamil Gabryjelski
f1136b57dd perf: Remove antd-with-locales import (#29788) 2024-08-05 17:17:59 +02:00
Geido
d877d46557 refactor(Slider): Upgrade Slider to Antd 5 (#29786) 2024-08-05 16:42:15 +03:00
Kamil Gabryjelski
9c058fee7a perf: Lazy load moment-timezone (#29791) 2024-08-05 15:03:55 +02:00
Kamil Gabryjelski
e2eb9fe35e fix: Add missing icons (#29851) 2024-08-05 09:07:36 +02:00
Ross Mabbett
6bc8567802 refactor(ChartCreation): Migrate tests to RTL (#29674) 2024-08-02 21:42:26 -04:00
Ross Mabbett
819597faf6 refactor(controls): Migrate AdhocMetricOption.test to RTL (#29843) 2024-08-02 19:54:06 -04:00
Ross Mabbett
27c08d0e0e refactor(controls): Migrate MetricDefinitionValue.test to RTL (#29845) 2024-08-02 19:53:52 -04:00
dependabot[bot]
ecb9ff0f8a build(deps-dev): update @babel/types requirement from ^7.24.5 to ^7.25.2 in /superset-frontend/plugins/plugin-chart-pivot-table (#29808)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-08-02 16:38:42 -07:00
Harshit
5a3b1ee3fd fix: machine auth for GAQ enabled deployments (#29591) 2024-08-02 15:48:08 -07:00
Evan Rusackas
c87a4fd642 chore(deps): npm audit fix results (#29838) 2024-08-02 15:51:25 -06:00
Elizabeth Thompson
57e8cd2ba2 fix: pass slack recipients correctly (#29721) 2024-08-02 10:42:40 -07:00
dependabot[bot]
40520c54d4 build(deps): bump react-bootstrap-slider from 2.1.5 to 3.0.0 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#28294)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-08-01 14:49:11 -06:00
dependabot[bot]
5ff259e870 build(deps): bump react-diff-viewer-continued from 3.2.5 to 3.4.0 in /superset-frontend (#29756)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:43:24 -06:00
dependabot[bot]
d1ea4abb12 build(deps-dev): bump eslint-plugin-file-progress from 1.2.0 to 1.4.0 in /superset-frontend (#29759)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:43:09 -06:00
dependabot[bot]
74e811706b build(deps): bump @fontsource/inter from 5.0.19 to 5.0.20 in /superset-frontend (#29812)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:42:43 -06:00
dependabot[bot]
26e1779f20 build(deps): bump chrono-node from 2.7.5 to 2.7.6 in /superset-frontend (#29813)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:42:28 -06:00
dependabot[bot]
eaaa44c6c1 build(deps): bump mustache from 2.3.2 to 4.2.0 in /superset-frontend (#29815)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:42:16 -06:00
dependabot[bot]
91faa3593a build(deps-dev): bump @types/react-syntax-highlighter from 15.5.11 to 15.5.13 in /superset-frontend (#29816)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:41:51 -06:00
dependabot[bot]
ebbef827ff build(deps-dev): bump style-loader from 3.3.4 to 4.0.0 in /superset-frontend (#29820)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:41:29 -06:00
dependabot[bot]
5339f3dffa build(deps): bump memoize-one from 5.1.1 to 5.2.1 in /superset-frontend (#29821)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 13:41:14 -06:00
dependabot[bot]
516f3663c0 build(deps-dev): bump @types/jest from 27.0.2 to 29.5.12 in /superset-websocket (#29809)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 12:08:19 -06:00
dependabot[bot]
4d9fd1b045 build(deps-dev): bump @types/node from 22.0.0 to 22.0.2 in /superset-websocket (#29811)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 12:08:04 -06:00
danielli-ziprecruiter
e623d745f5 fix: set default timezone to UTC for cron timezone conversions (#29798) 2024-08-01 11:49:47 -06:00
dependabot[bot]
1d2dee8a4e build(deps): bump rimraf from 3.0.2 to 6.0.1 in /superset-frontend (#29758)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 11:10:22 -06:00
Đỗ Trọng Hải
71786dba64 fix(ci): remove unused "type: ignore" comment to unblock precommit check in CI (#29830)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-08-01 09:52:40 -06:00
Kamil Gabryjelski
5936e8dbca perf: Antd icons tree shaking (#29787)
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-08-01 16:11:27 +02:00
Kamil Gabryjelski
d143b24232 perf: Lazy load React Ace (#29796) 2024-08-01 15:14:58 +02:00
Michael S. Molina
249f5ec31a fix: Downgrade of revision 678eefb4ab44 throws error (#29799) 2024-08-01 08:10:08 -03:00
Elizabeth Thompson
2cbd945692 fix: bump packages to unblock ci (#29805) 2024-07-31 17:44:42 -07:00
Evan Rusackas
66eb9593d1 fix(list/chart views): Chart Properties modal now has transitions (#28796)
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com>
2024-07-31 17:57:53 -06:00
Maxime Beauchemin
59e366ce90 fix(ci): release process for labeling PRs (#29688) 2024-07-31 16:57:36 -07:00
Evan Rusackas
5d06b01fd6 chore: deleting vestigial EMAIL_NOTIFICATIONS (#29792) 2024-07-31 17:54:47 -06:00
Maxime Beauchemin
c5829419e3 feat: get html (links/styling/img/...) to work in pivot table (#29724) 2024-07-31 16:43:56 -07:00
Maxime Beauchemin
c094ac3584 style: remove uppercase from labels, buttons, tabs to align with design system (#29673) 2024-07-31 13:50:09 -07:00
dependabot[bot]
2b4a8e9083 build(deps): bump @types/lodash from 4.17.0 to 4.17.7 in /superset-frontend (#29755)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-31 13:30:03 -06:00
dependabot[bot]
20adae8b21 build(deps-dev): bump webpack from 5.89.0 to 5.93.0 in /superset-frontend (#29765)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-31 13:29:50 -06:00
Evan Rusackas
da46ad4013 feat: adding AntdThemeProvider to storybook config (#29795) 2024-07-31 13:14:26 -06:00
Evan Rusackas
0d62bb2261 fix(translations): Translate embedded errors (#29782) 2024-07-31 11:19:03 -06:00
Geido
4c52ecc4d8 fix(Dashboard): Copying a Dashboard does not commit the transaction (#29776) 2024-07-31 19:40:23 +03:00
Evan Rusackas
06c9f3368a chore(deps): bump dayjs to unblock CI. (#29794) 2024-07-31 18:41:50 +03:00
Sam Firke
714caeafb6 chore(docs): remove mention of MariaDB in dev environment setup (#29790)
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-07-31 09:02:40 -06:00
dependabot[bot]
2231348356 build(deps-dev): bump @types/node from 20.13.0 to 22.0.0 in /superset-websocket (#29738)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-07-30 17:10:32 -06:00
Evan Rusackas
2bce20f790 fix: Fixing incomplete string escaping. (#29772) 2024-07-30 16:36:26 -06:00
Jack
d21d7591c0 feat(alerts): enable tab selection for dashboard alerts/reports (#29096) 2024-07-30 16:25:19 -06:00
Maxime Beauchemin
6bf8596d68 fix: remove --no-optional from docker-compose build (#29779) 2024-07-30 12:46:14 -07:00
Beto Dealmeida
525e837c5b fix: catalog upgrade/downgrade (#29780) 2024-07-30 15:15:40 -04:00
Đỗ Trọng Hải
8891f04f11 fix(frontend/docker, ci): fix borked Docker build due to Lerna v8 uplift (#29725)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-30 12:07:55 -06:00
Geido
134ca38b8d fix(Database): Refresh catalogs on db update returns database error (#29681) 2024-07-30 17:40:28 +03:00
Evan Rusackas
c3702be9d4 docs: Check markdown files for bad links using linkinator (#28424) 2024-07-29 16:19:42 -06:00
dependabot[bot]
68ef13e37f build(deps): bump @ant-design/icons from 5.3.7 to 5.4.0 in /docs (#29748)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-07-29 16:03:21 -06:00
dependabot[bot]
cff9865c47 build(deps-dev): bump webpack from 5.92.1 to 5.93.0 in /docs (#29747)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
2024-07-29 16:03:11 -06:00
Sam Firke
c22dfa1abb docs(contributing): fix broken link to translations sub-section (#29768) 2024-07-29 16:56:47 -04:00
dependabot[bot]
f0fa96fc46 chore(deps): bump abortcontroller-polyfill from 1.2.1 to 1.7.5 in /superset-frontend (#29427)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 14:03:49 -06:00
dependabot[bot]
00bab74d17 chore(deps): bump d3-hierarchy from 1.1.9 to 3.1.2 in /superset-frontend (#28820)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 13:32:56 -06:00
dependabot[bot]
ee54363163 build(deps-dev): update @types/lodash requirement from ^4.17.6 to ^4.17.7 in /superset-frontend/plugins/plugin-chart-handlebars (#29740)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-07-29 13:32:39 -06:00
dependabot[bot]
320ba9eac2 build(deps): update underscore requirement from ^1.13.6 to ^1.13.7 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#29743)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-07-29 13:32:31 -06:00
dependabot[bot]
fd8f8719f8 build(deps-dev): bump history from 4.10.1 to 5.3.0 in /superset-frontend (#29763)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 11:57:58 -07:00
dependabot[bot]
bcc14b5274 build(deps-dev): bump ts-loader from 7.0.5 to 9.5.1 in /superset-frontend (#29760)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 11:54:01 -07:00
dependabot[bot]
a9229899f6 build(deps-dev): update @babel/types requirement from ^7.24.0 to ^7.24.5 in /superset-frontend/plugins/plugin-chart-pivot-table (#28297)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: GitHub-Actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-29 12:53:44 -06:00
dependabot[bot]
06ac7bf16c build(deps): bump fast-xml-parser from 4.2.7 to 4.4.1 in /superset-frontend (#29767)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 11:53:13 -07:00
dependabot[bot]
385cf8af8c build(deps): bump debug from 4.3.5 to 4.3.6 in /superset-websocket/utils/client-ws-app (#29739)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:19:09 -06:00
dependabot[bot]
40f9a40aa1 build(deps-dev): bump prettier from 3.2.5 to 3.3.3 in /superset-websocket (#29742)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:18:52 -06:00
dependabot[bot]
adc2ba405b build(deps): bump deck.gl from 9.0.21 to 9.0.24 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#29744)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:18:32 -06:00
dependabot[bot]
d4f0ac4a63 build(deps): bump @types/lodash from 4.17.4 to 4.17.7 in /superset-websocket (#29746)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:18:15 -06:00
dependabot[bot]
1ec8eb8f57 build(deps-dev): bump typescript from 5.5.2 to 5.5.4 in /docs (#29750)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:17:08 -06:00
dependabot[bot]
363999d197 build(deps): bump @docsearch/react from 3.6.0 to 3.6.1 in /docs (#29751)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:16:54 -06:00
dependabot[bot]
e21f945802 build(deps-dev): bump mini-css-extract-plugin from 2.7.6 to 2.9.0 in /superset-frontend (#29753)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:16:39 -06:00
dependabot[bot]
396cf9b822 build(deps-dev): bump @svgr/webpack from 8.0.1 to 8.1.0 in /superset-frontend (#29754)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:16:21 -06:00
dependabot[bot]
705ffda574 build(deps): bump ace-builds from 1.4.14 to 1.35.4 in /superset-frontend (#29762)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 12:15:15 -06:00
Đỗ Trọng Hải
f51bf67554 chore(build): pin Storybook-related packages to 8.1.11 as further v8+ version requires React 18 (#29731)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-29 10:13:47 -07:00
JUST.in DO IT
3c971455e7 fix(explore): missing column autocomplete in custom SQL (#29672) 2024-07-26 11:33:37 -07:00
dependabot[bot]
5ed19319dd build(deps-dev): bump thread-loader from 3.0.4 to 4.0.2 in /superset-frontend (#26557)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-26 10:45:59 -07:00
Ross Mabbett
dac69e2092 feat(explorer): Add configs and formatting to discrete comparison columns (#29553) 2024-07-25 18:43:56 -04:00
Evan Rusackas
72caec10fe feat(country map): Adding Hungary (and other touchups) (#29627) 2024-07-25 15:23:53 -06:00
Markus Eriksson
922128f6e0 fix: Add user filtering to changed_by. Fixes #27986 (#29287)
Co-authored-by: Markus Eriksson <markus.eriksson@sinch.com>
2024-07-25 15:23:00 -06:00
Geido
3de2b7c989 refactor(ProgressBar): Upgrade ProgressBar to Antd 5 (#29666) 2024-07-23 18:59:41 +03:00
Kamil Gabryjelski
cd713a239e fix: Use default custom time range time without timezone (#29669) 2024-07-23 16:23:40 +02:00
Kamil Gabryjelski
453e6deb97 fix: Dashboard editable title weird behavior when adding spaces (#29667) 2024-07-23 14:55:17 +02:00
nsivarajan
27dde2a811 feat(alert/report): Added optional CC and BCC fields for email notifi… (#29088)
Co-authored-by: Sivarajan Narayanan <sivarajannarayanan@Sivarajans-MacBook-Pro.local>
Co-authored-by: Sivarajan Narayanan <narayanan_sivarajan@apple.com>
2024-07-22 19:33:47 +02:00
Jaswanth-Sriram-Veturi
2a9a1d3194 docs: update creating-your-first-dashboard.mdx (#29631) 2024-07-22 10:24:32 -04:00
Michael S. Molina
be833dce4f fix: Layout of native filters modal with lengthy columns (#29648) 2024-07-22 09:02:16 -03:00
Michael S. Molina
92537f1fd5 fix: Loading of native filter column (#29647) 2024-07-22 09:01:49 -03:00
Beto Dealmeida
ae0edbfdce chore: add catalog_access to OBJECT_SPEC_PERMISSIONS (#29650) 2024-07-19 19:40:05 -04:00
Michael S. Molina
9487d6c9d6 fix: Required native filter message wrongfully appearing (#29643) 2024-07-19 14:21:54 -03:00
JUST.in DO IT
5539f87912 fix(sqllab): prev shema/table options remained on fail (#29638) 2024-07-19 10:21:16 -07:00
Michael S. Molina
85b66946ed refactor: Remove dead code from the Word Cloud plugin (#29594) 2024-07-19 10:37:40 -03:00
1576 changed files with 78097 additions and 71913 deletions

View File

@@ -53,6 +53,9 @@ github:
merge: false
rebase: false
ghp_branch: gh-pages
ghp_path: /
protected_branches:
master:
required_status_checks:
@@ -69,9 +72,11 @@ github:
- cypress-matrix (3, chrome)
- cypress-matrix (4, chrome)
- cypress-matrix (5, chrome)
- dependency-review
- frontend-build
- pre-commit
- python-lint
- pre-commit (current)
- pre-commit (next)
- pre-commit (previous)
- test-mysql
- test-postgres (current)
- test-postgres (next)
@@ -87,3 +92,10 @@ github:
required_approving_review_count: 1
required_signatures: false
gh-pages:
required_pull_request_reviews:
dismiss_stale_reviews: false
require_code_owner_reviews: true
required_approving_review_count: 1
required_signatures: false

View File

@@ -42,6 +42,8 @@ docs/
install/
superset-frontend/cypress-base/
superset-frontend/coverage/
superset-frontend/.temp_cache/
superset/static/assets/
superset-websocket/dist/
venv
.venv

1
.gitattributes vendored
View File

@@ -1,2 +1,3 @@
docker/**/*.sh text eol=lf
*.svg binary
*.ipynb binary

14
.github/CODEOWNERS vendored
View File

@@ -2,7 +2,7 @@
# https://github.com/apache/superset/issues/13351
/superset/migrations/ @apache/superset-committers
/superset/migrations/ @mistercrunch @michael-s-molina @betodealmeida @eschutho
# Notify some committers of changes in the components
@@ -12,21 +12,21 @@
# Notify Helm Chart maintainers about changes in it
/helm/superset/ @craig-rueda @dpgaspar @villebro
/helm/superset/ @craig-rueda @dpgaspar @villebro @nytai @michael-s-molina
# Notify E2E test maintainers of changes
/superset-frontend/cypress-base/ @jinghua-qa @geido @eschutho @rusackas @betodealmeida
/superset-frontend/cypress-base/ @sadpandajoe @geido @eschutho @rusackas @betodealmeida
# Notify PMC members of changes to GitHub Actions
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @john-bodley @kgabryje @dpgaspar
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @kgabryje @dpgaspar
# Notify PMC members of changes to required Github Actions
# Notify PMC members of changes to required GitHub Actions
/.asf.yaml @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @john-bodley @kgabryje @dpgaspar
/.asf.yaml @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @kgabryje @dpgaspar
# Maps are a finnicky contribution process we care about
# Maps are a finicky contribution process we care about
**/*.geojson @villebro @rusackas
/superset-frontend/plugins/legacy-plugin-chart-country-map/ @villebro @rusackas

View File

@@ -15,14 +15,9 @@ body:
id: bug-description
attributes:
label: Bug description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: repro-steps
attributes:
label: How to reproduce the bug
description: A clear description of what the bug is, including reproduction steps and expected behavior.
placeholder: |
The bug is that...
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
@@ -46,8 +41,8 @@ body:
label: Superset version
options:
- master / latest-dev
- "4.1.1"
- "4.0.2"
- "3.1.3"
validations:
required: true
- type: dropdown

View File

@@ -43,11 +43,14 @@ runs:
run: |
if [ "${{ inputs.install-superset }}" = "true" ]; then
sudo apt-get update && sudo apt-get -y install libldap2-dev libsasl2-dev
pip install --upgrade pip setuptools wheel
pip install --upgrade pip setuptools wheel uv
if [ "${{ inputs.requirements-type }}" = "dev" ]; then
pip install -r requirements/development.txt
uv pip install --system -r requirements/development.txt
elif [ "${{ inputs.requirements-type }}" = "base" ]; then
pip install -r requirements/base.txt
uv pip install --system -r requirements/base.txt
fi
uv pip install --system -e .
fi
shell: bash

69
.github/actions/setup-docker/action.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: "Setup Docker Environment"
description: "Reusable steps for setting up QEMU, Docker Buildx, DockerHub login, Supersetbot, and optionally Docker Compose"
inputs:
build:
description: "Used for building?"
required: false
default: "false"
dockerhub-user:
description: "DockerHub username"
required: false
dockerhub-token:
description: "DockerHub token"
required: false
install-docker-compose:
description: "Flag to install Docker Compose"
required: false
default: "true"
login-to-dockerhub:
description: "Whether you want to log into dockerhub"
required: false
default: "true"
outputs: {}
runs:
using: "composite"
steps:
- name: Set up QEMU
if: ${{ inputs.build == 'true' }}
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
if: ${{ inputs.build == 'true' }}
uses: docker/setup-buildx-action@v3
- name: Try to login to DockerHub
if: ${{ inputs.login-to-dockerhub == 'true' }}
continue-on-error: true
uses: docker/login-action@v3
with:
username: ${{ inputs.dockerhub-user }}
password: ${{ inputs.dockerhub-token }}
- name: Install Docker Compose
if: ${{ inputs.install-docker-compose == 'true' }}
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
# Download and save the Docker GPG key in the correct format
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Ensure the key file is readable
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the Docker repository using the correct key
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package lists and install Docker Compose plugin
sudo apt update
sudo apt install -y docker-compose-plugin
- name: Docker Version Info
shell: bash
run: docker info

View File

@@ -8,8 +8,9 @@ updates:
- package-ecosystem: "npm"
ignore:
# not until node >= 18.12.0
- dependency-name: "css-minimizer-webpack-plugin"
# not until React >= 18.0.0
- dependency-name: "storybook"
- dependency-name: "@storybook*"
directory: "/superset-frontend/"
schedule:
interval: "monthly"
@@ -21,8 +22,7 @@ updates:
# - package-ecosystem: "pip"
# NOTE: as dependabot isn't compatible with our python
# dependency setup (pip-compile-multi), we'll be using
# NOTE: as dependabot isn't compatible with our usage of `uv pip compile` we're using
# `supersetbot` instead
- package-ecosystem: "npm"

View File

@@ -165,7 +165,7 @@ cypress-run-all() {
# UNCOMMENT the next few commands to monitor memory usage
# monitor_memory & # Start memory monitoring in the background
# memoryMonitorPid=$!
python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID --retries 5 $USE_DASHBOARD_FLAG
python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID --group $PARALLEL_ID --retries 5 $USE_DASHBOARD_FLAG
# kill $memoryMonitorPid
# After job is done, print out Flask log for debugging

View File

@@ -14,10 +14,16 @@ on:
required: true
description: Max number of PRs to open (0 for no limit)
default: 5
extra-flags:
required: false
default: --only-base
description: Additional flags to pass to the bump-python command
#schedule:
# - cron: '0 0 * * *' # Runs daily at midnight UTC
jobs:
bump-python-package:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
actions: write
contents: write
@@ -39,8 +45,8 @@ jobs:
with:
python-version: "3.10"
- name: Install pip-compile-multi
run: pip install pip-compile-multi
- name: Install uv
run: pip install uv
- name: supersetbot bump-python -p "${{ github.event.inputs.package }}"
env:
@@ -59,10 +65,13 @@ jobs:
GROUP_OPT="-g ${{ github.event.inputs.group }}"
fi
EXTRA_FLAGS="${{ github.event.inputs.extra-flags }}"
supersetbot bump-python \
--verbose \
--use-current-repo \
--include-subpackages \
--limit ${{ github.event.inputs.limit }} \
$PACKAGE_OPT \
$GROUP_OPT
$GROUP_OPT \
$EXTRA_FLAGS

View File

@@ -9,7 +9,7 @@ on:
jobs:
cancel-duplicate-runs:
name: Cancel duplicate workflow runs
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
actions: write
contents: read

44
.github/workflows/check-python-deps.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: Check python dependencies
on:
push:
branches:
- "master"
- "[0-9].[0-9]*"
pull_request:
types: [synchronize, opened, reopened, ready_for_review]
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
jobs:
check-python-deps:
runs-on: ubuntu-22.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive
depth: 1
- name: Setup Python
if: steps.check.outputs.python
uses: ./.github/actions/setup-backend/
- name: Run uv
if: steps.check.outputs.python
run: ./scripts/uv-pip-compile.sh
- name: Check for uncommitted changes
run: |
if [[ -n "$(git diff)" ]]; then
echo "ERROR: The pinned dependencies are not up-to-date."
echo "Please run './scripts/uv-pip-compile.sh' and commit the changes."
exit 1
else
echo "Pinned dependencies are up-to-date."
fi

View File

@@ -19,7 +19,7 @@ concurrency:
jobs:
check_db_migration_conflict:
name: Check DB migration conflict
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write

View File

@@ -17,7 +17,7 @@ concurrency:
jobs:
analyze:
name: Analyze
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
actions: read
contents: read

View File

@@ -5,14 +5,26 @@
# Source repository: https://github.com/actions/dependency-review-action
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
name: "Dependency Review"
on: [pull_request]
on:
push:
branches:
- "master"
- "[0-9].[0-9]*"
pull_request:
types: [synchronize, opened, reopened, ready_for_review]
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
dependency-review:
runs-on: ubuntu-22.04
if: github.event_name == 'pull_request'
runs-on: ubuntu-24.04
steps:
- name: "Checkout Repository"
uses: actions/checkout@v4
@@ -32,4 +44,25 @@ jobs:
# license: https://applitools.com/legal/open-source-terms-of-use/
# pkg:npm/node-forge@1.3.1
# selecting BSD-3-Clause licensing terms for node-forge to ensure compatibility with Apache
allow-dependencies-licenses: pkg:npm/store2@2.14.2, pkg:npm/applitools/core, pkg:npm/applitools/core-base, pkg:npm/applitools/css-tree, pkg:npm/applitools/ec-client, pkg:npm/applitools/eg-socks5-proxy-server, pkg:npm/applitools/eyes, pkg:npm/applitools/eyes-cypress, pkg:npm/applitools/nml-client, pkg:npm/applitools/tunnel-client, pkg:npm/applitools/utils, pkg:npm/node-forge@1.3.1, pkg:npm/rgbcolor
allow-dependencies-licenses: pkg:npm/store2@2.14.2, pkg:npm/applitools/core, pkg:npm/applitools/core-base, pkg:npm/applitools/css-tree, pkg:npm/applitools/ec-client, pkg:npm/applitools/eg-socks5-proxy-server, pkg:npm/applitools/eyes, pkg:npm/applitools/eyes-cypress, pkg:npm/applitools/nml-client, pkg:npm/applitools/tunnel-client, pkg:npm/applitools/utils, pkg:npm/node-forge@1.3.1, pkg:npm/rgbcolor, pkg:npm/jszip@3.10.1
python-dependency-liccheck:
runs-on: ubuntu-22.04
steps:
- name: "Checkout Repository"
uses: actions/checkout@v4
- name: Setup Python
uses: ./.github/actions/setup-backend/
with:
requirements-type: base
- name: "Set up liccheck"
run: |
uv pip install --system liccheck
- name: "Run liccheck"
run: |
# run the checks
liccheck -R output.txt
# Print the report
cat output.txt

View File

@@ -15,20 +15,20 @@ concurrency:
jobs:
setup_matrix:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
outputs:
matrix_config: ${{ steps.set_matrix.outputs.matrix_config }}
steps:
- id: set_matrix
run: |
MATRIX_CONFIG=$(if [ "${{ github.event_name }}" == "pull_request" ]; then echo '["dev"]'; else echo '["dev", "lean", "py310", "websocket", "dockerize", "py311"]'; fi)
MATRIX_CONFIG=$(if [ "${{ github.event_name }}" == "pull_request" ]; then echo '["dev", "lean"]'; else echo '["dev", "lean", "py310", "websocket", "dockerize", "py311"]'; fi)
echo "matrix_config=${MATRIX_CONFIG}" >> $GITHUB_OUTPUT
echo $GITHUB_OUTPUT
docker-build:
name: docker-build
needs: setup_matrix
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
build_preset: ${{fromJson(needs.setup_matrix.outputs.matrix_config)}}
@@ -50,21 +50,13 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
- name: Setup Docker Environment
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
uses: docker/setup-buildx-action@v3
- name: Try to login to DockerHub
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
continue-on-error: true
uses: docker/login-action@v3
uses: ./.github/actions/setup-docker
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
build: "true"
- name: Setup supersetbot
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
@@ -84,7 +76,30 @@ jobs:
fi
supersetbot docker \
--push \
--preset ${{ matrix.build_preset }} \
--context "$EVENT" \
--context-ref "$RELEASE" $FORCE_LATEST \
--extra-flags "--build-arg INCLUDE_CHROMIUM=false" \
$PLATFORM_ARG
- name: Docker pull
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
run: docker pull apache/superset:GHA-${GITHUB_RUN_ID}
- name: Print docker stats
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
run: |
IMAGE_ID=$(docker images --filter "label=sha=${{ github.sha }}" --format "{{.ID}}" | head -n 1)
echo "SHA: ${{ github.sha }}"
echo "IMAGE: $IMAGE_ID"
docker images $IMAGE_ID
docker history $IMAGE_ID
- name: docker-compose sanity check
if: (steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker) && (matrix.build_preset == 'dev' || matrix.build_preset == 'lean')
shell: bash
run: |
export SUPERSET_BUILD_TARGET=${{ matrix.build_preset }}
docker compose build superset-init --build-arg DEV_MODE=false --build-arg INCLUDE_CHROMIUM=false
docker compose up superset-init --exit-code-from superset-init

View File

@@ -8,7 +8,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -23,7 +23,7 @@ jobs:
build:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
working-directory: superset-embedded-sdk
@@ -31,7 +31,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "18"
node-version: "20"
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run ci:release

View File

@@ -13,7 +13,7 @@ concurrency:
jobs:
embedded-sdk-test:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
working-directory: superset-embedded-sdk
@@ -21,7 +21,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "18"
node-version: "20"
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm test

View File

@@ -6,7 +6,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -22,7 +22,7 @@ jobs:
needs: config
if: needs.config.outputs.has-secrets
name: Cleanup ephemeral envs
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
pull-requests: write
steps:

View File

@@ -1,37 +1,35 @@
name: Ephemeral env workflow
# Example manual trigger: gh workflow run ephemeral-env.yml --ref fix_ephemerals --field comment_body="/testenv up" --field issue_number=666
on:
issue_comment:
types: [created]
workflow_dispatch:
inputs:
comment_body:
description: 'Comment body to simulate /testenv command'
required: true
default: '/testenv up'
issue_number:
description: 'Issue or PR number'
required: true
jobs:
config:
runs-on: "ubuntu-22.04"
if: github.event.issue.pull_request
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.AWS_ACCESS_KEY_ID != '' && secrets.AWS_SECRET_ACCESS_KEY != '') || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
ephemeral-env-comment:
concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.number || github.run_id }}-comment
group: ${{ github.workflow }}-${{ github.event.inputs.issue_number || github.event.issue.number || github.run_id }}-comment
cancel-in-progress: true
needs: config
if: needs.config.outputs.has-secrets
name: Evaluate ephemeral env comment trigger (/testenv)
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
pull-requests: write
outputs:
slash-command: ${{ steps.eval-body.outputs.result }}
feature-flags: ${{ steps.eval-feature-flags.outputs.result }}
env:
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
steps:
- name: Debug
@@ -40,22 +38,26 @@ jobs:
- name: Eval comment body for /testenv slash command
uses: actions/github-script@v7
env:
COMMENT_BODY: ${{ github.event.inputs.comment_body || github.event.comment.body }}
id: eval-body
with:
result-encoding: string
script: |
const pattern = /^\/testenv (up|down)/
const result = pattern.exec(context.payload.comment.body)
return result === null ? 'noop' : result[1]
const pattern = /^\/testenv (up|down)/;
const result = pattern.exec(process.env.COMMENT_BODY || '');
return result === null ? 'noop' : result[1];
- name: Eval comment body for feature flags
- name: Looking for feature flags
uses: actions/github-script@v7
env:
COMMENT_BODY: ${{ github.event.inputs.comment_body || github.event.comment.body }}
id: eval-feature-flags
with:
script: |
const pattern = /FEATURE_(\w+)=(\w+)/g;
let results = [];
[...context.payload.comment.body.matchAll(pattern)].forEach(match => {
[...process.env.COMMENT_BODY.matchAll(pattern)].forEach(match => {
const config = {
name: `SUPERSET_FEATURE_${match[1]}`,
value: match[2],
@@ -67,28 +69,53 @@ jobs:
- name: Limit to committers
if: >
steps.eval-body.outputs.result != 'noop' &&
github.event_name == 'issue_comment' &&
github.event.comment.author_association != 'MEMBER' &&
github.event.comment.author_association != 'OWNER'
uses: actions/github-script@v7
with:
github-token: ${{github.token}}
github-token: ${{ github.token }}
script: |
const errMsg = '@${{ github.event.comment.user.login }} Ephemeral environment creation is currently limited to committers.'
const errMsg = '@${{ github.event.comment.user.login }} Ephemeral environment creation is currently limited to committers.';
github.rest.issues.createComment({
issue_number: ${{ github.event.issue.number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: errMsg
})
core.setFailed(errMsg)
});
core.setFailed(errMsg);
- name: Reply with confirmation comment
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issueNumber = ${{ github.event.inputs.issue_number || github.event.issue.number }};
const user = '${{ github.event.comment.user.login || github.actor }}';
const action = '${{ steps.eval-body.outputs.result }}';
const runId = context.runId;
const workflowUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
const body = `@${user} Processing your ephemeral environment request [here](${workflowUrl}).`;
if (action !== 'noop') {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issueNumber,
body,
});
}
else {
core.setFailed('No ephemeral environment action detected.');
}
ephemeral-docker-build:
concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.number || github.run_id }}-build
group: ${{ github.workflow }}-${{ github.event.inputs.issue_number || github.event.issue.number || github.run_id }}-build
cancel-in-progress: true
needs: ephemeral-env-comment
if: needs.ephemeral-env-comment.outputs.slash-command == 'up'
name: ephemeral-docker-build
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Get Info from comment
uses: actions/github-script@v7
@@ -98,9 +125,9 @@ jobs:
const request = {
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: ${{ github.event.issue.number }},
}
core.info(`Getting PR #${request.pull_number} from ${request.owner}/${request.repo}`)
pull_number: ${{ github.event.inputs.issue_number || github.event.issue.number }},
};
core.info(`Getting PR #${request.pull_number} from ${request.owner}/${request.repo}`);
const pr = await github.rest.pulls.get(request);
return pr.data;
@@ -115,18 +142,28 @@ jobs:
ref: ${{ steps.get-sha.outputs.sha }}
persist-credentials: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Environment
uses: ./.github/actions/setup-docker
with:
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
build: "true"
install-docker-compose: "false"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Setup supersetbot
uses: ./.github/actions/setup-supersetbot/
- name: Build ephemeral env image
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
./scripts/build_docker.py \
"ci" \
"pull_request" \
--build_context_ref ${{ github.event.issue.number }}
supersetbot docker \
--push \
--load \
--preset ci \
--platform linux/amd64 \
--context-ref "$RELEASE" \
--extra-flags "--build-arg INCLUDE_CHROMIUM=false"
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
@@ -146,14 +183,14 @@ jobs:
ECR_REPOSITORY: superset-ci
IMAGE_TAG: apache/superset:${{ steps.get-sha.outputs.sha }}-ci
run: |
docker tag $IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:pr-${{ github.event.issue.number }}-ci
docker tag $IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-ci
docker push -a $ECR_REGISTRY/$ECR_REPOSITORY
ephemeral-env-up:
needs: [ephemeral-env-comment, ephemeral-docker-build]
if: needs.ephemeral-env-comment.outputs.slash-command == 'up'
name: Spin up an ephemeral environment
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write
@@ -181,22 +218,22 @@ jobs:
aws ecr describe-images \
--registry-id $(echo "${{ steps.login-ecr.outputs.registry }}" | grep -Eo "^[0-9]+") \
--repository-name superset-ci \
--image-ids imageTag=pr-${{ github.event.issue.number }}-ci
--image-ids imageTag=pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-ci
- name: Fail on missing container image
if: steps.check-image.outcome == 'failure'
uses: actions/github-script@v7
with:
github-token: ${{github.token}}
github-token: ${{ github.token }}
script: |
const errMsg = '@${{ github.event.comment.user.login }} Container image not yet published for this PR. Please try again when build is complete.'
const errMsg = '@${{ github.event.comment.user.login }} Container image not yet published for this PR. Please try again when build is complete.';
github.rest.issues.createComment({
issue_number: ${{ github.event.issue.number }},
issue_number: ${{ github.event.inputs.issue_number || github.event.issue.number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: errMsg
})
core.setFailed(errMsg)
});
core.setFailed(errMsg);
- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
@@ -204,7 +241,7 @@ jobs:
with:
task-definition: .github/workflows/ecs-task-definition.json
container-name: superset-ci
image: ${{ steps.login-ecr.outputs.registry }}/superset-ci:pr-${{ github.event.issue.number }}-ci
image: ${{ steps.login-ecr.outputs.registry }}/superset-ci:pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-ci
- name: Update env vars in the Amazon ECS task definition
run: |
@@ -213,30 +250,29 @@ jobs:
- name: Describe ECS service
id: describe-services
run: |
echo "active=$(aws ecs describe-services --cluster superset-ci --services pr-${{ github.event.issue.number }}-service | jq '.services[] | select(.status == "ACTIVE") | any')" >> $GITHUB_OUTPUT
echo "active=$(aws ecs describe-services --cluster superset-ci --services pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-service | jq '.services[] | select(.status == "ACTIVE") | any')" >> $GITHUB_OUTPUT
- name: Create ECS service
if: steps.describe-services.outputs.active != 'true'
id: create-service
if: steps.describe-services.outputs.active != 'true'
env:
ECR_SUBNETS: subnet-0e15a5034b4121710,subnet-0e8efef4a72224974
ECR_SECURITY_GROUP: sg-092ff3a6ae0574d91
run: |
aws ecs create-service \
--cluster superset-ci \
--service-name pr-${{ github.event.issue.number }}-service \
--service-name pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-service \
--task-definition superset-ci \
--launch-type FARGATE \
--desired-count 1 \
--platform-version LATEST \
--network-configuration "awsvpcConfiguration={subnets=[$ECR_SUBNETS],securityGroups=[$ECR_SECURITY_GROUP],assignPublicIp=ENABLED}" \
--tags key=pr,value=${{ github.event.issue.number }} key=github_user,value=${{ github.actor }}
--tags key=pr,value=${{ github.event.inputs.issue_number || github.event.issue.number }} key=github_user,value=${{ github.actor }}
- name: Deploy Amazon ECS task definition
id: deploy-task
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
uses: aws-actions/amazon-ecs-deploy-task-definition@v2
with:
task-definition: ${{ steps.task-def.outputs.task-definition }}
service: pr-${{ github.event.issue.number }}-service
service: pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-service
cluster: superset-ci
wait-for-service-stability: true
wait-for-minutes: 10
@@ -244,18 +280,15 @@ jobs:
- name: List tasks
id: list-tasks
run: |
echo "task=$(aws ecs list-tasks --cluster superset-ci --service-name pr-${{ github.event.issue.number }}-service | jq '.taskArns | first')" >> $GITHUB_OUTPUT
echo "task=$(aws ecs list-tasks --cluster superset-ci --service-name pr-${{ github.event.inputs.issue_number || github.event.issue.number }}-service | jq '.taskArns | first')" >> $GITHUB_OUTPUT
- name: Get network interface
id: get-eni
run: |
echo "eni=$(aws ecs describe-tasks --cluster superset-ci --tasks ${{ steps.list-tasks.outputs.task }} | jq '.tasks | .[0] | .attachments | .[0] | .details | map(select(.name=="networkInterfaceId")) | .[0] | .value')" >> $GITHUB_OUTPUT
echo "eni=$(aws ecs describe-tasks --cluster superset-ci --tasks ${{ steps.list-tasks.outputs.task }} | jq '.tasks | .[0] | .attachments | .[0] | .details | map(select(.name==\"networkInterfaceId\")) | .[0] | .value')" >> $GITHUB_OUTPUT
- name: Get public IP
id: get-ip
run: |
echo "ip=$(aws ec2 describe-network-interfaces --network-interface-ids ${{ steps.get-eni.outputs.eni }} | jq -r '.NetworkInterfaces | first | .Association.PublicIp')" >> $GITHUB_OUTPUT
- name: Comment (success)
if: ${{ success() }}
uses: actions/github-script@v7
@@ -263,12 +296,11 @@ jobs:
github-token: ${{github.token}}
script: |
github.rest.issues.createComment({
issue_number: ${{ github.event.issue.number }},
issue_number: ${{ github.event.inputs.issue_number || github.event.issue.number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: '@${{ github.event.comment.user.login }} Ephemeral environment spinning up at http://${{ steps.get-ip.outputs.ip }}:8080. Credentials are `admin`/`admin`. Please allow several minutes for bootstrapping and startup.'
body: '@${{ github.event.inputs.user_login || github.event.comment.user.login }} Ephemeral environment spinning up at http://${{ steps.get-ip.outputs.ip }}:8080. Credentials are `admin`/`admin`. Please allow several minutes for bootstrapping and startup.'
})
- name: Comment (failure)
if: ${{ failure() }}
uses: actions/github-script@v7
@@ -276,8 +308,8 @@ jobs:
github-token: ${{github.token}}
script: |
github.rest.issues.createComment({
issue_number: ${{ github.event.issue.number }},
issue_number: ${{ github.event.inputs.issue_number || github.event.issue.number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: '@${{ github.event.comment.user.login }} Ephemeral environment creation failed. Please check the Actions logs for details.'
body: '@${{ github.event.inputs.user_login || github.event.comment.user.login }} Ephemeral environment creation failed. Please check the Actions logs for details.'
})

View File

@@ -8,7 +8,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -24,7 +24,7 @@ jobs:
needs: config
if: needs.config.outputs.has-secrets
name: Generate Report
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -11,7 +11,7 @@ on:
jobs:
validate-all-ghas:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout Repository
uses: actions/checkout@v4
@@ -19,7 +19,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20'
- name: Install Dependencies
run: npm install -g @action-validator/core @action-validator/cli --save-dev

View File

@@ -9,7 +9,7 @@ on:
jobs:
superbot-orglabel:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write

View File

@@ -7,7 +7,7 @@ jobs:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/labeler@v5
with:

View File

@@ -6,7 +6,7 @@ on:
jobs:
latest-release:
name: Add/update tag to new release
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: write

View File

@@ -12,7 +12,7 @@ concurrency:
jobs:
license_check:
name: License Check
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -11,7 +11,7 @@ concurrency:
jobs:
check-hold-label:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Check for 'hold' label
uses: actions/github-script@v7

View File

@@ -10,7 +10,7 @@ on:
jobs:
lint-check:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write

View File

@@ -15,7 +15,10 @@ concurrency:
jobs:
pre-commit:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["current", "next", "previous"]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
@@ -24,6 +27,8 @@ jobs:
submodules: recursive
- name: Setup Python
uses: ./.github/actions/setup-backend/
with:
python-version: ${{ matrix.python-version }}
- name: Enable brew and helm-docs
# Add brew to the path - see https://github.com/actions/runner-images/issues/6283
run: |
@@ -35,8 +40,11 @@ jobs:
brew install norwoodj/tap/helm-docs
- name: pre-commit
run: |
if ! pre-commit run --all-files; then
git status
git diff
set +e # Don't exit immediately on failure
pre-commit run --all-files
if [ $? -ne 0 ] || ! git diff --quiet --exit-code; then
echo "❌ Pre-commit check failed."
echo "🚒 To prevent/address this CI issue, please install/use pre-commit locally."
echo "📖 More details here: https://superset.apache.org/docs/contributing/development#git-hooks"
exit 1
fi

View File

@@ -21,7 +21,7 @@ jobs:
prefer_typescript:
if: github.ref == 'ref/heads/master' && github.event_name == 'pull_request'
name: Prefer TypeScript
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write

View File

@@ -8,7 +8,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -25,11 +25,11 @@ jobs:
if: needs.config.outputs.has-secrets
name: Bump version and publish package(s)
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
node-version: [18]
node-version: [20]
steps:
- uses: actions/checkout@v4

View File

@@ -6,7 +6,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -21,12 +21,12 @@ jobs:
cypress-applitools:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
browser: ["chrome"]
node: [18]
node: [20]
env:
SUPERSET_ENV: development
SUPERSET_CONFIG: tests.integration_tests.superset_test_config

View File

@@ -12,7 +12,7 @@ env:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -27,10 +27,10 @@ jobs:
cron:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
node: [18]
node: [20]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -15,7 +15,7 @@ concurrency:
jobs:
test-load-examples:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config

View File

@@ -12,7 +12,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -28,7 +28,7 @@ jobs:
needs: config
if: needs.config.outputs.has-secrets
name: Build & Deploy
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -4,6 +4,7 @@ on:
pull_request:
paths:
- "docs/**"
- ".github/workflows/superset-docs-verify.yml"
types: [synchronize, opened, reopened, ready_for_review]
# cancel previous workflow jobs for PRs
@@ -13,18 +14,44 @@ concurrency:
jobs:
linkinator:
# See docs here: https://github.com/marketplace/actions/linkinator
name: Link Checking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: JustinBeckwith/linkinator-action@v1.10.4
# Do not bump this linkinator-action version without opening
# an ASF Infra ticket to allow the new verison first!
- uses: JustinBeckwith/linkinator-action@v1.11.0
continue-on-error: true # This will make the job advisory (non-blocking, no red X)
with:
paths: "**/*.md, **/*.mdx"
linksToSkip: '^https://github.com/apache/(superset|incubator-superset)/(pull|issue)/\d+, http://localhost:8088/, docker/.env-non-dev, http://127.0.0.1:3000/, http://localhost:9001/, https://charts.bitnami.com/bitnami, https://www.li.me/, https://www.fanatics.com/, https://tails.com/gb/, https://www.techaudit.info/, https://avetilearning.com/, https://www.udemy.com/, https://trustmedis.com/, http://theiconic.com.au/, https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html, https://img.shields.io/librariesio/release/npm/%40superset-ui%2Fembedded-sdk?style=flat, https://img.shields.io/librariesio/release/npm/%40superset-ui%2Fplugin-chart-pivot-table?style=flat, https://vkusvill.ru/'
# verbosity: 'ERROR'
linksToSkip: >-
^https://github.com/apache/(superset|incubator-superset)/(pull|issue)/\d+,
http://localhost:8088/,
docker/.env-non-dev,
http://127.0.0.1:3000/,
http://localhost:9001/,
https://charts.bitnami.com/bitnami,
https://www.li.me/,
https://www.fanatics.com/,
https://tails.com/gb/,
https://www.techaudit.info/,
https://avetilearning.com/,
https://www.udemy.com/,
https://trustmedis.com/,
http://theiconic.com.au/,
https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html,
^https://img\.shields\.io/.*,
https://vkusvill.ru/
https://www.linkedin.com/in/mark-thomas-b16751158/
https://theiconic.com.au/
https://wattbewerb.de/
https://timbr.ai/
https://opensource.org/license/apache-2-0
https://www.plaidcloud.com/
build-deploy:
name: Build & Deploy
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
defaults:
run:
working-directory: docs

View File

@@ -28,6 +28,7 @@ concurrency:
jobs:
cypress-matrix:
# Somehow one test flakes on 24.04 for unknown reasons, this is the only GHA left on 22.04
runs-on: ubuntu-22.04
permissions:
contents: read
@@ -48,7 +49,8 @@ jobs:
PYTHONPATH: ${{ github.workspace }}
REDIS_PORT: 16379
GITHUB_TOKEN: ${{ github.token }}
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard || (github.ref == 'refs/heads/master' && 'true') || 'false' }}
# use the dashboard feature when running manually OR merging to master
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard == 'true'|| (github.ref == 'refs/heads/master' && 'true') || 'false' }}
services:
postgres:
image: postgres:15-alpine
@@ -107,7 +109,7 @@ jobs:
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: actions/setup-node@v4
with:
node-version: "18"
node-version: "20"
- name: Install npm dependencies
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
@@ -131,6 +133,7 @@ jobs:
PARALLEL_ID: ${{ matrix.parallel_id }}
PARALLELISM: 6
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
NODE_OPTIONS: "--max-old-space-size=4096"
with:
run: cypress-run-all ${{ env.USE_DASHBOARD }}
- name: Upload Artifacts

View File

@@ -15,7 +15,7 @@ concurrency:
jobs:
frontend-build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
@@ -33,7 +33,7 @@ jobs:
if: steps.check.outputs.frontend
uses: actions/setup-node@v4
with:
node-version: "18"
node-version: "20"
- name: Install dependencies
if: steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
@@ -49,11 +49,6 @@ jobs:
working-directory: ./superset-frontend
run: |
npm run type
- name: prettier
if: steps.check.outputs.frontend
working-directory: ./superset-frontend
run: |
npm run prettier-check
- name: Build plugins packages
if: steps.check.outputs.frontend
working-directory: ./superset-frontend
@@ -78,7 +73,7 @@ jobs:
working-directory: ./superset-frontend/packages/generator-superset
run: npm run test
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: javascript
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -1,4 +1,4 @@
name: Lint and Test Charts
name: "Helm: lint and test charts"
on:
pull_request:
@@ -13,7 +13,7 @@ concurrency:
jobs:
lint-test:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -1,4 +1,8 @@
name: Release Charts
# This workflow automates the release process for Helm charts.
# The workflow creates a new branch for the release and opens a pull request against the 'gh-pages' branch,
# allowing the changes to be reviewed and merged manually.
name: "Helm: release charts"
on:
push:
@@ -7,18 +11,28 @@ on:
- "[0-9].[0-9]*"
paths:
- "helm/**"
workflow_dispatch:
inputs:
ref:
description: "The branch, tag, or commit SHA to check out"
required: false
default: "master"
jobs:
release:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
contents: write
pull-requests: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
ref: ${{ inputs.ref || github.ref_name }}
persist-credentials: true
submodules: recursive
fetch-depth: 0
@@ -35,11 +49,77 @@ jobs:
- name: Add bitnami repo dependency
run: helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Fetch/list all tags
run: |
# Debugging tags
git fetch --tags --force
git tag -d superset-helm-chart-0.13.4 || true
echo "DEBUG TAGS"
git show-ref --tags
- name: Create unique pages branch name
id: vars
run: echo "branch_name=helm-publish-${GITHUB_SHA:0:7}" >> $GITHUB_ENV
- name: Force recreate branch from gh-pages
run: |
# Ensure a clean working directory
git reset --hard
git clean -fdx
git checkout -b local_gha_temp
git submodule update
# Fetch the latest gh-pages branch
git fetch origin gh-pages
# Check out and reset the target branch based on gh-pages
git checkout -B ${{ env.branch_name }} origin/gh-pages
# Remove submodules from the branch
git submodule deinit -f --all
# Force push to the remote branch
git push origin ${{ env.branch_name }} --force
# Return to the original branch
git checkout local_gha_temp
- name: Fetch/list all tags
run: |
git submodule update
cat .github/actions/chart-releaser-action/action.yml
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.6.0
uses: ./.github/actions/chart-releaser-action
with:
version: v1.6.0
charts_dir: helm
mark_as_latest: false
pages_branch: ${{ env.branch_name }}
env:
CR_TOKEN: "${{ github.token }}"
CR_RELEASE_NAME_TEMPLATE: "superset-helm-chart-{{ .Version }}"
- name: Open Pull Request
uses: actions/github-script@v7
with:
script: |
const branchName = '${{ env.branch_name }}';
const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');
if (!branchName) {
throw new Error("Branch name is not defined.");
}
const pr = await github.rest.pulls.create({
owner,
repo,
title: `Helm chart release for ${branchName}`,
head: branchName,
base: "gh-pages", // Adjust if the target branch is different
body: `This PR releases Helm charts to the gh-pages branch.`,
});
core.info(`Pull request created: ${pr.data.html_url}`);
env:
BRANCH_NAME: ${{ env.branch_name }}

View File

@@ -15,7 +15,7 @@ concurrency:
jobs:
test-mysql:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -68,13 +68,13 @@ jobs:
run: |
./scripts/python_tests.sh
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: python,mysql
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
test-postgres:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["current", "next", "previous"]
@@ -129,14 +129,14 @@ jobs:
run: |
./scripts/python_tests.sh
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: python,postgres
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
test-sqlite:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -181,7 +181,7 @@ jobs:
run: |
./scripts/python_tests.sh
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: python,sqlite
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -1,53 +0,0 @@
# Python Misc unit tests
name: Python Misc
on:
push:
branches:
- "master"
- "[0-9].[0-9]*"
pull_request:
types: [synchronize, opened, reopened, ready_for_review]
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
jobs:
python-lint:
runs-on: ubuntu-22.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive
- name: Check for file changes
id: check
uses: ./.github/actions/change-detector/
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outputs.python
babel-extract:
runs-on: ubuntu-22.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive
- name: Check for file changes
id: check
uses: ./.github/actions/change-detector/
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Python
if: steps.check.outputs.python
uses: ./.github/actions/setup-backend/
- name: Test babel extraction
if: steps.check.outputs.python
run: scripts/translations/babel_update.sh

View File

@@ -16,7 +16,7 @@ concurrency:
jobs:
test-postgres-presto:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -77,14 +77,14 @@ jobs:
run: |
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: python,presto
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
test-postgres-hive:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -142,9 +142,10 @@ jobs:
- name: Python unit tests (PostgreSQL)
if: steps.check.outputs.python
run: |
pip install -e .[hive]
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: python,hive
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -16,7 +16,7 @@ concurrency:
jobs:
unit-tests:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["current", "next"]
@@ -46,7 +46,7 @@ jobs:
run: |
pytest --durations-min=0.5 --cov-report= --cov=superset ./tests/common ./tests/unit_tests --cache-clear
- name: Upload code coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
flags: python,unit
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -15,7 +15,7 @@ concurrency:
jobs:
frontend-check-translations:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
@@ -46,7 +46,7 @@ jobs:
npm run build-translation
babel-extract:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -18,7 +18,7 @@ concurrency:
jobs:
app-checks:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -15,7 +15,7 @@ on:
jobs:
supersetbot:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: >
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@supersetbot'))

View File

@@ -23,7 +23,7 @@ on:
- 'false'
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -39,35 +39,34 @@ jobs:
needs: config
if: needs.config.outputs.has-secrets
name: docker-release
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
build_preset: ["dev", "lean", "py310", "websocket", "dockerize", "py311"]
fail-fast: false
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
tags: true
fetch-depth: 0
- name: Setup Docker Environment
uses: ./.github/actions/setup-docker
with:
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
install-docker-compose: "false"
build: "true"
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup supersetbot
uses: ./.github/actions/setup-supersetbot/
- name: Try to login to DockerHub
continue-on-error: true
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Execute custom Node.js script
env:
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
@@ -88,22 +87,45 @@ jobs:
fi
supersetbot docker \
--push \
--preset ${{ matrix.build_preset }} \
--context "$EVENT" \
--context-ref "$RELEASE" $FORCE_LATEST \
--platform "linux/arm64" \
--platform "linux/amd64"
# Going back on original branch to allow "post" GHA operations
# Returning to master to support closing setup-supersetbot
git checkout master
update-prs-with-release-info:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup supersetbot
uses: ./.github/actions/setup-supersetbot/
- name: Label the PRs with the right release-related labels
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
export GITHUB_ACTOR=""
git fetch --all --tags
git checkout master
RELEASE="${{ github.event.release.tag_name }}"
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
# in the case of a manually-triggered run, read release from input

View File

@@ -8,7 +8,7 @@ on:
jobs:
config:
runs-on: "ubuntu-22.04"
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
@@ -23,7 +23,7 @@ jobs:
process-and-upload:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
name: Generate Reports
steps:
- name: Checkout Repository
@@ -32,7 +32,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20'
- name: Install Dependencies
run: npm install

View File

@@ -6,7 +6,7 @@ on:
jobs:
welcome:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
pull-requests: write

2
.gitignore vendored
View File

@@ -104,7 +104,6 @@ ghostdriver.log
testCSV.csv
.terser-plugin-cache/
apache-superset-*.tar.gz*
apache_superset-*.tar.gz*
release.json
# Translation-related files
@@ -122,3 +121,4 @@ docker/*local*
# Jest test report
test-report.html
superset/static/stats/statistics.html

View File

@@ -16,11 +16,11 @@
#
repos:
- repo: https://github.com/MarcoGorelli/auto-walrus
rev: v0.2.2
rev: 0.3.4
hooks:
- id: auto-walrus
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.3.0
rev: v1.13.0
hooks:
- id: mypy
args: [--check-untyped-defs]
@@ -38,26 +38,26 @@ repos:
types-paramiko,
types-Markdown,
]
- repo: https://github.com/peterdemin/pip-compile-multi
rev: v2.6.2
hooks:
- id: pip-compile-multi-verify
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v5.0.0
hooks:
- id: check-docstring-first
- id: check-added-large-files
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*|^superset-frontend/CHANGELOG\.md$
- id: check-yaml
exclude: ^helm/superset/templates/
- id: debug-statements
- id: end-of-file-fixer
exclude: .*/lerna\.json$
- id: trailing-whitespace
exclude: ^.*\.(snap)
args: ["--markdown-linebreak-ext=md"]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.1.0 # Use the sha or tag you want to point at
rev: v4.0.0-alpha.8 # Use the sha or tag you want to point at
hooks:
- id: prettier
additional_dependencies:
- prettier@3.3.3
args: ["--ignore-path=./superset-frontend/.prettierignore"]
files: "superset-frontend"
# blacklist unsafe functions like make_url (see #19526)
@@ -67,27 +67,13 @@ repos:
- id: blacklist
args: ["--blacklisted-names=make_url", "--ignore=tests/"]
- repo: https://github.com/norwoodj/helm-docs
rev: v1.11.0
rev: v1.14.2
hooks:
- id: helm-docs
files: helm
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.0
rev: v0.8.0
hooks:
- id: ruff
args: [ --fix ]
- id: ruff-format
- repo: local
hooks:
- id: pylint
name: pylint
entry: pylint
language: system
types: [python]
exclude: ^(tests/|superset/migrations/|scripts/|RELEASING/|docker/)
args:
[
"-rn", # Only display messages
"-sn", # Don't display the score
"--rcfile=.pylintrc",
]

380
.pylintrc
View File

@@ -1,380 +0,0 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
[MASTER]
# Specify a configuration file.
#rcfile=
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=
# Add files or directories to the blacklist. They should be base names, not
# paths.
ignore=CVS,migrations
# Add files or directories matching the regex patterns to the blacklist. The
# regex matches against base names, not paths.
ignore-patterns=
# Pickle collected data for later comparisons.
persistent=yes
# List of plugins (as comma separated values of python modules names) to load,
# usually to register additional checkers.
load-plugins=superset.extensions.pylint
# Use multiple processes to speed up Pylint.
jobs=2
# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code
extension-pkg-whitelist=pyarrow
[MESSAGES CONTROL]
# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
confidence=
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=
useless-suppression,
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once).You can also use "--disable=all" to
# disable everything first and then reenable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
disable=
cyclic-import, # re-enable once this no longer raises false positives
missing-docstring,
duplicate-code,
line-too-long,
unspecified-encoding,
too-many-instance-attributes # re-enable once this no longer raises false positives
[REPORTS]
# Set the output format. Available formats are text, parseable, colorized, msvs
# (visual studio) and html. You can also give a reporter class, eg
# mypackage.mymodule.MyReporterClass.
output-format=text
# Tells whether to display a full report or only the messages
reports=yes
# Python expression which should return a note less than 10 (10 is the highest
# note). You have access to the variables errors warning, statement which
# respectively contain the number of errors / warnings messages and the total
# number of statements analyzed. This is used by the global evaluation report
# (RP0004).
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details
#msg-template=
[BASIC]
# Good variable names which should always be accepted, separated by a comma
good-names=_,df,ex,f,i,id,j,k,l,o,pk,Run,ts,v,x,y
# Bad variable names which should always be refused, separated by a comma
bad-names=bar,baz,db,fd,foo,sesh,session,tata,toto,tutu
# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=
# Include a hint for the correct naming format with invalid-name
include-naming-hint=no
# List of decorators that produce properties, such as abc.abstractproperty. Add
# to this list to register other decorators that produce valid properties.
property-classes=
abc.abstractproperty,
sqlalchemy.ext.hybrid.hybrid_property
# Regular expression matching correct argument names
argument-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression matching correct method names
method-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression matching correct variable names
variable-rgx=[a-z_][a-z0-9_]{1,30}$
# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
# Regular expression matching correct constant names
const-rgx=(([A-Za-z_][A-Za-z0-9_]*)|(__.*__))$
# Regular expression matching correct class names
class-rgx=[A-Z_][a-zA-Z0-9]+$
# Regular expression matching correct class attribute names
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
# Regular expression matching correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
# Regular expression matching correct attribute names
attr-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression matching correct function names
function-rgx=[a-z_][a-z0-9_]{2,30}$
# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=^_
# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=10
[ELIF]
# Maximum number of nested blocks for function / method body
max-nested-blocks=5
[FORMAT]
# Maximum number of characters on a single line.
max-line-length=100
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
# Maximum number of lines in a module
max-module-lines=1000
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=
[LOGGING]
# Logging modules to check that the string format arguments are in logging
# function parameter format
logging-modules=logging
[MISCELLANEOUS]
# List of note tags to take in consideration, separated by a comma.
notes=FIXME,XXX
[SIMILARITIES]
# Minimum lines number of a similarity.
min-similarity-lines=5
# Ignore comments when computing similarities.
ignore-comments=yes
# Ignore docstrings when computing similarities.
ignore-docstrings=yes
# Ignore imports when computing similarities.
ignore-imports=no
[SPELLING]
# Spelling dictionary name. Available dictionaries: none. To make it working
# install python-enchant package.
spelling-dict=
# List of comma separated words that should not be checked.
spelling-ignore-words=
# A path to a file that contains private dictionary; one word per line.
spelling-private-dict-file=
# Tells whether to store unknown words to indicated private dictionary in
# --spelling-private-dict-file option instead of raising a message.
spelling-store-unknown-words=no
[TYPECHECK]
# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
ignore-mixin-members=yes
# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis. It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=numpy,pandas,alembic.op,sqlalchemy,alembic.context,flask_appbuilder.security.sqla.PermissionView.role,flask_appbuilder.Model.metadata,flask_appbuilder.Base.metadata
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=contextlib.closing,optparse.Values,thread._local,_thread._local
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=
# List of decorators that produce context managers, such as
# contextlib.contextmanager. Add to this list to register other decorators that
# produce valid context managers.
contextmanager-decorators=contextlib.contextmanager
[VARIABLES]
# Tells whether we should check for unused import in __init__ files.
init-import=no
# A regular expression matching the name of dummy variables (i.e. expectedly
# not used).
dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
additional-builtins=
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,_cb
# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=six.moves,future.builtins
[CLASSES]
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,__new__,setUp
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=mcs
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,_fields,_replace,_source,_make
[DESIGN]
# Maximum number of arguments for function / method
max-args=5
# Argument names that match this expression will be ignored. Default to name
# with leading underscore
ignored-argument-names=_.*
# Maximum number of locals for function / method body
max-locals=15
# Maximum number of return / yield for function / method body
max-returns=10
# Maximum number of branch for function / method body
max-branches=15
# Maximum number of statements in function / method body
max-statements=50
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of attributes for a class (see R0902).
max-attributes=8
# Minimum number of public methods for a class (see R0903).
min-public-methods=2
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
# Maximum number of boolean expressions in a if statement
max-bool-expr=5
[IMPORTS]
# Deprecated modules which should not be used, separated by a comma
deprecated-modules=optparse
# Create a graph of every (i.e. internal and external) dependencies in the
# given file (report RP0402 must not be disabled)
import-graph=
# Create a graph of external dependencies in the given file (report RP0402 must
# not be disabled)
ext-import-graph=
# Create a graph of internal dependencies in the given file (report RP0402 must
# not be disabled)
int-import-graph=
# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=
# Force import order to recognize a module as part of a third party library.
known-third-party=enchant
# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no
[EXCEPTIONS]
# Exceptions that will emit a warning when being caught. Defaults to
# "Exception"
overgeneral-exceptions=builtins.Exception

View File

@@ -61,12 +61,16 @@ tsconfig.tsbuildinfo
generator-superset/*
temporary_superset_ui/*
# skip license checks for auto-generated test snapshots
.*snap
# docs overrides for third party logos we don't have the rights to
google-big-query.svg
google-sheets.svg
ibm-db2.svg
postgresql.svg
snowflake.svg
ydb.svg
# docs-related
erd.puml

View File

@@ -1,50 +0,0 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
## Change Log
### 4.1.1 (Fri Nov 15 22:13:57 2024 +0530)
**Database Migrations**
**Features**
**Fixes**
- [#30886](https://github.com/apache/superset/pull/30886) fix: blocks UI elements on right side (@samarsrivastav)
- [#30859](https://github.com/apache/superset/pull/30859) fix(package.json): Pin luxon version to unblock master (@geido)
- [#30588](https://github.com/apache/superset/pull/30588) fix(explore): column data type tooltip format (@mistercrunch)
- [#29911](https://github.com/apache/superset/pull/29911) fix: Rename database from 'couchbasedb' to 'couchbase' in documentation and db_engine_specs (@ayush-couchbase)
- [#30828](https://github.com/apache/superset/pull/30828) fix(TimezoneSelector): Failing unit tests due to timezone change (@geido)
- [#30875](https://github.com/apache/superset/pull/30875) fix: don't show metadata for embedded dashboards (@sadpandajoe)
- [#30851](https://github.com/apache/superset/pull/30851) fix: Graph chart colors (@michael-s-molina)
- [#29867](https://github.com/apache/superset/pull/29867) fix(capitalization): Capitalizing a button. (@rusackas)
- [#29782](https://github.com/apache/superset/pull/29782) fix(translations): Translate embedded errors (@rusackas)
- [#29772](https://github.com/apache/superset/pull/29772) fix: Fixing incomplete string escaping. (@rusackas)
- [#29725](https://github.com/apache/superset/pull/29725) fix(frontend/docker, ci): fix borked Docker build due to Lerna v8 uplift (@hainenber)
**Others**
- [#30576](https://github.com/apache/superset/pull/30576) chore: add link to Superset when report error (@eschutho)
- [#29786](https://github.com/apache/superset/pull/29786) refactor(Slider): Upgrade Slider to Antd 5 (@geido)
- [#29674](https://github.com/apache/superset/pull/29674) refactor(ChartCreation): Migrate tests to RTL (@rtexelm)
- [#29843](https://github.com/apache/superset/pull/29843) refactor(controls): Migrate AdhocMetricOption.test to RTL (@rtexelm)
- [#29845](https://github.com/apache/superset/pull/29845) refactor(controls): Migrate MetricDefinitionValue.test to RTL (@rtexelm)
- [#28424](https://github.com/apache/superset/pull/28424) docs: Check markdown files for bad links using linkinator (@rusackas)
- [#29768](https://github.com/apache/superset/pull/29768) docs(contributing): fix broken link to translations sub-section (@sfirke)

View File

@@ -1,83 +0,0 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
## Change Log
### 4.1.2 (Fri Mar 7 13:28:05 2025 -0800)
**Database Migrations**
- [#32538](https://github.com/apache/superset/pull/32538) fix(migrations): Handle comparator None in old time comparison migration (@Antonio-RiveroMartnez)
- [#32155](https://github.com/apache/superset/pull/32155) fix(migrations): Handle no params in time comparison migration (@Antonio-RiveroMartnez)
- [#31185](https://github.com/apache/superset/pull/31185) fix: check for column before adding in migrations (@betodealmeida)
**Features**
- [#29974](https://github.com/apache/superset/pull/29974) feat(sqllab): Adds refresh button to table metadata in SQL Lab (@Usiel)
**Fixes**
- [#32515](https://github.com/apache/superset/pull/32515) fix(sqllab): Allow clear on schema and catalog (@justinpark)
- [#32500](https://github.com/apache/superset/pull/32500) fix: dashboard, chart and dataset import validation (@dpgaspar)
- [#31353](https://github.com/apache/superset/pull/31353) fix(sqllab): duplicate error message (@betodealmeida)
- [#31407](https://github.com/apache/superset/pull/31407) fix: Big Number side cut fixed (@fardin-developer)
- [#31480](https://github.com/apache/superset/pull/31480) fix(sunburst): Use metric label from verbose map (@gerbermichi)
- [#31427](https://github.com/apache/superset/pull/31427) fix(tags): clean up bulk create api and schema (@villebro)
- [#31334](https://github.com/apache/superset/pull/31334) fix(docs): add custom editUrl path for intro page (@dwgrossberg)
- [#31353](https://github.com/apache/superset/pull/31353) fix(sqllab): duplicate error message (@betodealmeida)
- [#31323](https://github.com/apache/superset/pull/31323) fix: Use clickhouse sqlglot dialect for YDB (@vgvoleg)
- [#31198](https://github.com/apache/superset/pull/31198) fix: add more clickhouse disallowed functions on config (@dpgaspar)
- [#31194](https://github.com/apache/superset/pull/31194) fix(embedded): Hide anchor links in embedded mode (@Vitor-Avila)
- [#31960](https://github.com/apache/superset/pull/31960) fix(sqllab): Missing allowHTML props in ResultTableExtension (@justinpark)
- [#31332](https://github.com/apache/superset/pull/31332) fix: prevent multiple pvm errors on migration (@eschutho)
- [#31437](https://github.com/apache/superset/pull/31437) fix(database import): Gracefully handle error to get catalog schemas (@Vitor-Avila)
- [#31173](https://github.com/apache/superset/pull/31173) fix: cache-warmup fails (@nsivarajan)
- [#30442](https://github.com/apache/superset/pull/30442) fix(fe/src/dashboard): optional chaining for possibly nullable parent attribute in LayoutItem type (@hainenber)
- [#31639](https://github.com/apache/superset/pull/31639) fix(sqllab): unable to update saved queries (@DamianPendrak)
- [#29898](https://github.com/apache/superset/pull/29898) fix: parse pandas pivot null values (@eschutho)
- [#31414](https://github.com/apache/superset/pull/31414) fix(Pivot Table): Fix column width to respect currency config (@Vitor-Avila)
- [#31335](https://github.com/apache/superset/pull/31335) fix(histogram): axis margin padding consistent with other graphs (@tatiana-cherne)
- [#31301](https://github.com/apache/superset/pull/31301) fix(AllEntitiesTable): show Tags (@alexandrusoare)
- [#31329](https://github.com/apache/superset/pull/31329) fix: pass string to `process_template` (@betodealmeida)
- [#31341](https://github.com/apache/superset/pull/31341) fix(pinot): remove query aliases from SELECT and ORDER BY clauses in Pinot (@yuribogomolov)
- [#31308](https://github.com/apache/superset/pull/31308) fix: annotations on horizontal bar chart (@DamianPendrak)
- [#31294](https://github.com/apache/superset/pull/31294) fix(sqllab): Remove update_saved_query_exec_info to reduce lag (@justinpark)
- [#30897](https://github.com/apache/superset/pull/30897) fix: Exception handling for SQL Lab views (@michael-s-molina)
- [#31199](https://github.com/apache/superset/pull/31199) fix(Databricks): Escape catalog and schema names in pre-queries (@Vitor-Avila)
- [#31265](https://github.com/apache/superset/pull/31265) fix(trino): db session error in handle cursor (@justinpark)
- [#31024](https://github.com/apache/superset/pull/31024) fix(dataset): use sqlglot for DML check (@betodealmeida)
- [#29885](https://github.com/apache/superset/pull/29885) fix: add mutator to get_columns_description (@eschutho)
- [#30821](https://github.com/apache/superset/pull/30821) fix: x axis title disappears when editing bar chart (@DamianPendrak)
- [#31181](https://github.com/apache/superset/pull/31181) fix: Time-series Line Chart Display unnecessary total (@michael-s-molina)
- [#31163](https://github.com/apache/superset/pull/31163) fix(Dashboard): Backward compatible shared_label_colors field (@geido)
- [#31156](https://github.com/apache/superset/pull/31156) fix: check orderby (@betodealmeida)
- [#31154](https://github.com/apache/superset/pull/31154) fix: Remove unwanted commit on Trino's handle_cursor (@michael-s-molina)
- [#31151](https://github.com/apache/superset/pull/31151) fix: Revert "feat(trino): Add functionality to upload data (#29164)" (@michael-s-molina)
- [#31031](https://github.com/apache/superset/pull/31031) fix(Dashboard): Ensure shared label colors are updated (@geido)
- [#30967](https://github.com/apache/superset/pull/30967) fix(release validation): scripts now support RSA and EDDSA keys. (@rusackas)
- [#30881](https://github.com/apache/superset/pull/30881) fix(Dashboard): Native & Cross-Filters Scoping Performance (@geido)
- [#30887](https://github.com/apache/superset/pull/30887) fix(imports): import query_context for imports with charts (@lindenh)
- [#31008](https://github.com/apache/superset/pull/31008) fix(explore): verified props is not updated (@justinpark)
- [#30646](https://github.com/apache/superset/pull/30646) fix(Dashboard): Retain colors when color scheme not set (@geido)
- [#30962](https://github.com/apache/superset/pull/30962) fix(Dashboard): Exclude edit param in async screenshot (@geido)
**Others**
- [#32043](https://github.com/apache/superset/pull/32043) chore: Skip the creation of secondary perms during catalog migrations (@Vitor-Avila)
- [#30865](https://github.com/apache/superset/pull/30865) docs: Updating 4.1 Release Notes (@yousoph)

View File

@@ -1,58 +0,0 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
## Change Log
### 4.1.3 (Thu May 29 02:31:07 2025 -0500)
**Database Migrations**
**Features**
**Fixes**
- [#33522](https://github.com/apache/superset/pull/33522) fix(Sqllab): Autocomplete got stuck in UI when open it too fast (@rebenitez1802)
- [#33425](https://github.com/apache/superset/pull/33425) fix(table-chart): time shift is not working (@justinpark)
- [#32414](https://github.com/apache/superset/pull/32414) fix(api): Added uuid to list api calls (@withnale)
- [#33354](https://github.com/apache/superset/pull/33354) fix: loading examples from raw.githubusercontent.com fails with 429 errors (@mistercrunch)
- [#32382](https://github.com/apache/superset/pull/32382) fix(pinot): revert join and subquery flags (@yuribogomolov)
- [#32473](https://github.com/apache/superset/pull/32473) fix(plugin-chart-echarts): remove erroneous upper bound value (@villebro)
- [#33048](https://github.com/apache/superset/pull/33048) fix: improve error type on parse error (@justinpark)
- [#32968](https://github.com/apache/superset/pull/32968) fix(pivot-table): Revert "fix(Pivot Table): Fix column width to respect currency config (#31414)" (@justinpark)
- [#32795](https://github.com/apache/superset/pull/32795) fix(log): store navigation path to get correct logging path (@justinpark)
- [#33216](https://github.com/apache/superset/pull/33216) fix: Downgrade to marshmallow<4 (@amotl)
- [#32866](https://github.com/apache/superset/pull/32866) fix: make packages PEP 625 compliant (@sadpandajoe)
- [#32035](https://github.com/apache/superset/pull/32035) fix(fe/dashboard-list): display modifier info for `Last modified` data (@hainenber)
- [#32708](https://github.com/apache/superset/pull/32708) fix(logging): missing path in event data (@justinpark)
- [#32699](https://github.com/apache/superset/pull/32699) fix: Signature of Celery pruner jobs (@michael-s-molina)
- [#32681](https://github.com/apache/superset/pull/32681) fix(log): Update recent_activity by event name (@justinpark)
- [#32608](https://github.com/apache/superset/pull/32608) fix(welcome): perf on distinct recent activities (@justinpark)
- [#32572](https://github.com/apache/superset/pull/32572) fix: Log table retention policy (@michael-s-molina)
- [#32406](https://github.com/apache/superset/pull/32406) fix(model/helper): represent RLS filter clause in proper textual SQL string (@hainenber)
- [#32240](https://github.com/apache/superset/pull/32240) fix: upgrade to 3.11.11-slim-bookworm to address critical vulnerabilities (@gpchandran)
- [#30858](https://github.com/apache/superset/pull/30858) fix(chart data): removing query from /chart/data payload when accessing as guest user (@fisjac)
**Others**
- [#33612](https://github.com/apache/superset/pull/33612) chore: update Dockerfile - Upgrade to 3.11.12 (@gpchandran)
- [#33435](https://github.com/apache/superset/pull/33435) docs: CVEs fixed on 4.1.2 (@sha174n)
- [#33339](https://github.com/apache/superset/pull/33339) chore(🦾): bump python h11 0.14.0 -> 0.16.0 (@github-actions[bot])
- [#32745](https://github.com/apache/superset/pull/32745) chore(🦾): bump python sqlglot 26.1.3 -> 26.11.1 (@github-actions[bot])
- [#32782](https://github.com/apache/superset/pull/32782) chore: Revert "chore: bump base image in Dockerfile with `ARG PY_VER=3.11.11-slim-bookworm`" (@sadpandajoe)
- [#32780](https://github.com/apache/superset/pull/32780) chore: bump base image in Dockerfile with `ARG PY_VER=3.11.11-slim-bookworm` (@gpchandran)

View File

@@ -80,9 +80,9 @@ If you believe someone is violating this code of conduct, you may reply to them
Or one of our volunteers:
* [Mark Thomas](http://home.apache.org/~markt/coc.html)
* [Joan Touzet](http://home.apache.org/~wohali/)
* [Sharan Foga](http://home.apache.org/~sharan/coc.html)
* [Mark Thomas](https://www.linkedin.com/in/mark-thomas-b16751158/)
* [Joan Touzet](https://www.apache.org/foundation/conduct-team/wohali.html)
* [Sharan Foga](https://www.linkedin.com/in/sfoga/)
If the violation is in documentation or code, for example inappropriate pronoun usage or word choice within official documentation, we ask that people report these privately to the project in question at <private@project.apache.org>, and, if they have sufficient ability within the project, to resolve or remove the concerning material, being mindful of the perspective of the person originally reporting the issue.

View File

@@ -18,162 +18,230 @@
######################################################################
# Node stage to deal with static asset construction
######################################################################
ARG PY_VER=3.11.12-slim-bookworm
ARG PY_VER=3.10-slim-bookworm
# if BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
# If BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64}
FROM --platform=${BUILDPLATFORM} node:18-bullseye-slim AS superset-node
######################################################################
# superset-node used for building frontend assets
######################################################################
FROM --platform=${BUILDPLATFORM} node:20-bullseye-slim AS superset-node
ARG BUILD_TRANSLATIONS="false" # Include translations in the final build
ENV BUILD_TRANSLATIONS=${BUILD_TRANSLATIONS}
ARG DEV_MODE="false" # Skip frontend build in dev mode
ENV DEV_MODE=${DEV_MODE}
COPY docker/ /app/docker/
# Arguments for build configuration
ARG NPM_BUILD_CMD="build"
# Somehow we need python3 + build-essential on this side of the house to install node-gyp
RUN apt-get update -qq \
&& apt-get install \
-yqq --no-install-recommends \
build-essential \
python3
# Install system dependencies required for node-gyp
RUN /app/docker/apt-install.sh build-essential python3 zstd
# Define environment variables for frontend build
ENV BUILD_CMD=${NPM_BUILD_CMD} \
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
# NPM ci first, as to NOT invalidate previous steps except for when package.json changes
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
RUN --mount=type=bind,target=/frontend-mem-nag.sh,src=./docker/frontend-mem-nag.sh \
/frontend-mem-nag.sh
# Run the frontend memory monitoring script
RUN /app/docker/frontend-mem-nag.sh
WORKDIR /app/superset-frontend
RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json \
--mount=type=bind,target=./package-lock.json,src=./superset-frontend/package-lock.json \
npm ci
# Create necessary folders to avoid errors in subsequent steps
RUN mkdir -p /app/superset/static/assets \
/app/superset/translations
# Mount package files and install dependencies if not in dev mode
RUN --mount=type=bind,source=./superset-frontend/package.json,target=./package.json \
--mount=type=bind,source=./superset-frontend/package-lock.json,target=./package-lock.json \
--mount=type=cache,target=/root/.cache \
--mount=type=cache,target=/root/.npm \
if [ "$DEV_MODE" = "false" ]; then \
npm ci; \
else \
echo "Skipping 'npm ci' in dev mode"; \
fi
# Runs the webpack build process
COPY superset-frontend /app/superset-frontend
RUN npm run ${BUILD_CMD}
# This copies the .po files needed for translation
RUN mkdir -p /app/superset/translations
# Build the frontend if not in dev mode
RUN --mount=type=cache,target=/app/superset-frontend/.temp_cache \
--mount=type=cache,target=/root/.npm \
if [ "$DEV_MODE" = "false" ]; then \
echo "Running 'npm run ${BUILD_CMD}'"; \
npm run ${BUILD_CMD}; \
else \
echo "Skipping 'npm run ${BUILD_CMD}' in dev mode"; \
fi;
# Copy translation files
COPY superset/translations /app/superset/translations
# Compiles .json files from the .po files, then deletes the .po files
RUN npm run build-translation
RUN rm /app/superset/translations/*/LC_MESSAGES/*.po
RUN rm /app/superset/translations/messages.pot
# Build the frontend if not in dev mode
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
npm run build-translation; \
fi; \
rm -rf /app/superset/translations/*/*/*.po; \
rm -rf /app/superset/translations/*/*/*.mo;
######################################################################
# Base python layer
######################################################################
FROM python:${PY_VER} AS python-base
ARG BUILD_TRANSLATIONS="false" # Include translations in the final build
ENV BUILD_TRANSLATIONS=${BUILD_TRANSLATIONS}
ARG DEV_MODE="false" # Skip frontend build in dev mode
ENV DEV_MODE=${DEV_MODE}
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
SUPERSET_ENV=production \
FLASK_APP="superset.app:create_app()" \
PYTHONPATH="/app/pythonpath" \
SUPERSET_HOME="/app/superset_home" \
SUPERSET_PORT=8088
RUN useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset
# Some bash scripts needed throughout the layers
COPY --chmod=755 docker/*.sh /app/docker/
RUN pip install --no-cache-dir --upgrade uv
# Using uv as it's faster/simpler than pip
RUN uv venv /app/.venv
ENV PATH="/app/.venv/bin:${PATH}"
# Install Playwright and optionally setup headless browsers
ARG INCLUDE_CHROMIUM="true"
ARG INCLUDE_FIREFOX="false"
RUN --mount=type=cache,target=/root/.cache/uv\
if [ "$INCLUDE_CHROMIUM" = "true" ] || [ "$INCLUDE_FIREFOX" = "true" ]; then \
uv pip install playwright && \
playwright install-deps && \
if [ "$INCLUDE_CHROMIUM" = "true" ]; then playwright install chromium; fi && \
if [ "$INCLUDE_FIREFOX" = "true" ]; then playwright install firefox; fi; \
else \
echo "Skipping browser installation"; \
fi
######################################################################
# Python translation compiler layer
######################################################################
FROM python-base AS python-translation-compiler
# Install Python dependencies using docker/pip-install.sh
COPY requirements/translations.txt requirements/
RUN --mount=type=cache,target=/root/.cache/uv \
/app/docker/pip-install.sh --requires-build-essential -r requirements/translations.txt
COPY superset/translations/ /app/translations_mo/
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
pybabel compile -d /app/translations_mo | true; \
fi; \
rm -f /app/translations_mo/*/*/*.po; \
rm -f /app/translations_mo/*/*/*.json;
######################################################################
# Python APP common layer
######################################################################
FROM python-base AS python-common
# Copy the entrypoints, make them executable in userspace
COPY --chmod=755 docker/entrypoints /app/docker/entrypoints
WORKDIR /app
# Set up necessary directories and user
RUN mkdir -p \
${SUPERSET_HOME} \
${PYTHONPATH} \
superset/static \
requirements \
superset-frontend \
apache_superset.egg-info \
requirements \
&& touch superset/static/version_info.json
# Copy required files for Python build
COPY pyproject.toml setup.py MANIFEST.in README.md ./
COPY superset-frontend/package.json superset-frontend/
COPY scripts/check-env.py scripts/
# keeping for backward compatibility
COPY --chmod=755 ./docker/entrypoints/run-server.sh /usr/bin/
# Some debian libs
RUN /app/docker/apt-install.sh \
curl \
libsasl2-dev \
libsasl2-modules-gssapi-mit \
libpq-dev \
libecpg-dev \
libldap2-dev
# Copy compiled things from previous stages
COPY --from=superset-node /app/superset/static/assets superset/static/assets
# TODO, when the next version comes out, use --exclude superset/translations
COPY superset superset
# TODO in the meantime, remove the .po files
RUN rm superset/translations/*/*/*.po
# Merging translations from backend and frontend stages
COPY --from=superset-node /app/superset/translations superset/translations
COPY --from=python-translation-compiler /app/translations_mo superset/translations
HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health"
CMD ["/app/docker/entrypoints/run-server.sh"]
EXPOSE ${SUPERSET_PORT}
######################################################################
# Final lean image...
######################################################################
FROM python:${PY_VER} AS lean
FROM python-common AS lean
WORKDIR /app
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
SUPERSET_ENV=production \
FLASK_APP="superset.app:create_app()" \
PYTHONPATH="/app/pythonpath" \
SUPERSET_HOME="/app/superset_home" \
SUPERSET_PORT=8088
# Install Python dependencies using docker/pip-install.sh
COPY requirements/base.txt requirements/
RUN --mount=type=cache,target=/root/.cache/uv \
/app/docker/pip-install.sh --requires-build-essential -r requirements/base.txt
# Install the superset package
RUN --mount=type=cache,target=/root/.cache/uv \
uv pip install .
RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache_superset.egg-info requirements \
&& useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
&& apt-get update -qq && apt-get install -yqq --no-install-recommends \
curl \
default-libmysqlclient-dev \
libsasl2-dev \
libsasl2-modules-gssapi-mit \
libpq-dev \
libecpg-dev \
libldap2-dev \
&& touch superset/static/version_info.json \
&& chown -R superset:superset ./* \
&& rm -rf /var/lib/apt/lists/*
RUN python -m compileall /app/superset
COPY --chown=superset:superset pyproject.toml setup.py MANIFEST.in README.md ./
# setup.py uses the version information in package.json
COPY --chown=superset:superset superset-frontend/package.json superset-frontend/
COPY --chown=superset:superset requirements/base.txt requirements/
RUN --mount=type=cache,target=/root/.cache/pip \
apt-get update -qq && apt-get install -yqq --no-install-recommends \
build-essential \
&& pip install --upgrade setuptools pip \
&& pip install -r requirements/base.txt \
&& apt-get autoremove -yqq --purge build-essential \
&& rm -rf /var/lib/apt/lists/*
# Copy the compiled frontend assets
COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets
## Lastly, let's install superset itself
COPY --chown=superset:superset superset superset
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -e .
# Copy the .json translations from the frontend layer
COPY --chown=superset:superset --from=superset-node /app/superset/translations superset/translations
# Compile translations for the backend - this generates .mo files, then deletes the .po files
COPY ./scripts/translations/generate_mo_files.sh ./scripts/translations/
RUN ./scripts/translations/generate_mo_files.sh \
&& chown -R superset:superset superset/translations \
&& rm superset/translations/messages.pot \
&& rm superset/translations/*/LC_MESSAGES/*.po
COPY --chmod=755 ./docker/run-server.sh /usr/bin/
USER superset
HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health"
EXPOSE ${SUPERSET_PORT}
CMD ["/usr/bin/run-server.sh"]
######################################################################
# Dev image...
######################################################################
FROM lean AS dev
FROM python-common AS dev
USER root
RUN apt-get update -qq \
&& apt-get install -yqq --no-install-recommends \
libnss3 \
libdbus-glib-1-2 \
libgtk-3-0 \
libx11-xcb1 \
libasound2 \
libxtst6 \
git \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Debian libs needed for dev
RUN /app/docker/apt-install.sh \
git \
pkg-config \
default-libmysqlclient-dev
RUN --mount=type=cache,target=/root/.cache/pip \
pip install playwright
RUN playwright install-deps
RUN playwright install chromium
# Copy development requirements and install them
COPY requirements/*.txt requirements/
# Install Python dependencies using docker/pip-install.sh
RUN --mount=type=cache,target=/root/.cache/uv \
/app/docker/pip-install.sh --requires-build-essential -r requirements/development.txt
# Install the superset package
RUN --mount=type=cache,target=/root/.cache/uv \
uv pip install .
# Install GeckoDriver WebDriver
ARG GECKODRIVER_VERSION=v0.34.0 \
FIREFOX_VERSION=125.0.3
RUN apt-get update -qq \
&& apt-get install -yqq --no-install-recommends wget bzip2 \
&& wget -q https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O - | tar xfz - -C /usr/local/bin \
# Install Firefox
&& wget -q https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 -O - | tar xfj - -C /opt \
&& ln -s /opt/firefox/firefox /usr/local/bin/firefox \
&& apt-get autoremove -yqq --purge wget bzip2 && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/*
# Cache everything for dev purposes...
COPY --chown=superset:superset requirements/development.txt requirements/
RUN --mount=type=cache,target=/root/.cache/pip \
apt-get update -qq && apt-get install -yqq --no-install-recommends \
build-essential \
&& pip install -r requirements/development.txt \
&& apt-get autoremove -yqq --purge build-essential \
&& rm -rf /var/lib/apt/lists/*
RUN python -m compileall /app/superset
USER superset
######################################################################
# CI image...
######################################################################
FROM lean AS ci
COPY --chown=superset:superset --chmod=755 ./docker/*.sh /app/docker/
CMD ["/app/docker/docker-ci.sh"]
CMD ["/app/docker/entrypoints/docker-ci.sh"]

View File

@@ -87,9 +87,6 @@ format: py-format js-format
py-format: pre-commit
pre-commit run black --all-files
py-lint: pre-commit
pylint -j 0 superset
js-format:
cd superset-frontend; npm run prettier

View File

@@ -19,12 +19,12 @@ under the License.
# Superset
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/license/apache-2-0)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/apache/superset?sort=semver)](https://github.com/apache/superset/tree/latest)
[![Build Status](https://github.com/apache/superset/workflows/Python/badge.svg)](https://github.com/apache/superset/actions)
[![PyPI version](https://badge.fury.io/py/apache_superset.svg)](https://badge.fury.io/py/apache_superset)
[![PyPI version](https://badge.fury.io/py/apache-superset.svg)](https://badge.fury.io/py/apache-superset)
[![Coverage Status](https://codecov.io/github/apache/superset/coverage.svg?branch=master)](https://codecov.io/github/apache/superset)
[![PyPI](https://img.shields.io/pypi/pyversions/apache_superset.svg?maxAge=2592000)](https://pypi.python.org/pypi/apache_superset)
[![PyPI](https://img.shields.io/pypi/pyversions/apache-superset.svg?maxAge=2592000)](https://pypi.python.org/pypi/apache-superset)
[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](http://bit.ly/join-superset-slack)
[![Documentation](https://img.shields.io/badge/docs-apache.org-blue.svg)](https://superset.apache.org)
@@ -72,10 +72,8 @@ Superset provides:
## Screenshots & Gifs
**Video Overview**
<!-- File hosted here https://github.com/apache/superset-site/raw/lfs/superset-video-4k.mp4 -->
[superset-video-1080p.webm](https://github.com/user-attachments/assets/b37388f7-a971-409c-96a7-90c4e31322e6)
[superset-video-4k.webm](https://github.com/apache/superset/assets/812905/da036bc2-150c-4ee7-80f9-75e63210ff76)
<br/>
@@ -136,6 +134,9 @@ Here are some of the major database solutions that are supported:
<img src="https://superset.apache.org/img/databases/starrocks.png" alt="starrocks" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/doris.png" alt="doris" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/oceanbase.svg" alt="oceanbase" border="0" width="220" />
<img src="https://superset.apache.org/img/databases/sap-hana.png" alt="oceanbase" border="0" width="220" />
<img src="https://superset.apache.org/img/databases/denodo.png" alt="denodo" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/ydb.svg" alt="ydb" border="0" width="200" />
</p>
**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/configuration/databases).
@@ -153,7 +154,7 @@ Want to add support for your datastore or data engine? Read more [here](https://
and please read our [Slack Community Guidelines](https://github.com/apache/superset/blob/master/CODE_OF_CONDUCT.md#slack-community-guidelines)
- [Join our dev@superset.apache.org Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org). To join, simply send an email to [dev-subscribe@superset.apache.org](mailto:dev-subscribe@superset.apache.org)
- If you want to help troubleshoot GitHub Issues involving the numerous database drivers that Superset supports, please consider adding your name and the databases you have access to on the [Superset Database Familiarity Rolodex](https://docs.google.com/spreadsheets/d/1U1qxiLvOX0kBTUGME1AHHi6Ywel6ECF8xk_Qy-V9R8c/edit#gid=0)
- Join Superset's Town Hall and [Operational Model](https://preset.io/blog/the-superset-operational-model-wants-you/) recurring meetings. Meeting info is available on the [Superset Community Calendar](https://superset.apache.org/community)
- Join Superset's Town Hall and [Operational Model](https://preset.io/blog/the-superset-operational-model-wants-you/) recurring meetings. Meeting info is available on the [Superset Community Calendar](https://superset.apache.org/community)
## Contributor Guide
@@ -181,16 +182,14 @@ Understanding the Superset Points of View
- [Building New Database Connectors](https://preset.io/blog/building-database-connector/)
- [Create Your First Dashboard](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard/)
- [Comprehensive Tutorial for Contributing Code to Apache Superset
](https://preset.io/blog/tutorial-contributing-code-to-apache-superset/)
](https://preset.io/blog/tutorial-contributing-code-to-apache-superset/)
- [Resources to master Superset by Preset](https://preset.io/resources/)
- Deploying Superset
- [Official Docker image](https://hub.docker.com/r/apache/superset)
- [Helm Chart](https://github.com/apache/superset/tree/master/helm/superset)
- Recordings of Past [Superset Community Events](https://preset.io/events)
- [Mixed Time Series Charts](https://preset.io/events/mixed-time-series-visualization-in-superset-workshop/)
- [How the Bing Team Customized Superset for the Internal Self-Serve Data & Analytics Platform](https://preset.io/events/how-the-bing-team-heavily-customized-superset-for-their-internal-data/)
- [Live Demo: Visualizing MongoDB and Pinot Data using Trino](https://preset.io/events/2021-04-13-visualizing-mongodb-and-pinot-data-using-trino/)
@@ -198,7 +197,6 @@ Understanding the Superset Points of View
- [Building a Database Connector for Superset](https://preset.io/events/2021-02-16-building-a-database-connector-for-superset/)
- Visualizations
- [Creating Viz Plugins](https://superset.apache.org/docs/contributing/creating-viz-plugins/)
- [Managing and Deploying Custom Viz Plugins](https://medium.com/nmc-techblog/apache-superset-manage-custom-viz-plugins-in-production-9fde1a708e55)
- [Why Apache Superset is Betting on Apache ECharts](https://preset.io/blog/2021-4-1-why-echarts/)

View File

@@ -20,7 +20,7 @@ RUN useradd --user-group --create-home --no-log-init --shell /bin/bash superset
# Configure environment
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8
LC_ALL=C.UTF-8
RUN apt-get update -y
@@ -30,14 +30,14 @@ RUN apt-get install -y apt-transport-https apt-utils
# Install superset dependencies
# https://superset.apache.org/docs/installation/installing-superset-from-scratch
RUN apt-get install -y build-essential libssl-dev \
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium zstd
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium
# Install nodejs for custom build
# https://nodejs.org/en/download/package-manager/
RUN set -eux; \
curl -sL https://deb.nodesource.com/setup_20.x | bash -; \
apt-get install -y nodejs; \
node --version;
curl -sL https://deb.nodesource.com/setup_18.x | bash -; \
apt-get install -y nodejs; \
node --version;
RUN if ! which npm; then apt-get install -y npm; fi
RUN mkdir -p /home/superset
@@ -50,21 +50,21 @@ ARG SUPERSET_RELEASE_RC_TARBALL
# Can fetch source from svn or copy tarball from local mounted directory
COPY $SUPERSET_RELEASE_RC_TARBALL ./
RUN tar -xvf *.tar.gz
WORKDIR /home/superset/apache_superset-$VERSION/superset-frontend
WORKDIR /home/superset/apache-superset-$VERSION/superset-frontend
RUN npm ci \
&& npm run build \
&& rm -rf node_modules
&& npm run build \
&& rm -rf node_modules
WORKDIR /home/superset/apache_superset-$VERSION
WORKDIR /home/superset/apache-superset-$VERSION
RUN pip install --upgrade setuptools pip \
&& pip install -r requirements/base.txt \
&& pip install --no-cache-dir .
&& pip install -r requirements/base.txt \
&& pip install --no-cache-dir .
RUN flask fab babel-compile --target superset/translations
ENV PATH=/home/superset/superset/bin:$PATH \
PYTHONPATH=/home/superset/superset/ \
SUPERSET_TESTENV=true
PYTHONPATH=/home/superset/superset/:$PYTHONPATH \
SUPERSET_TESTENV=true
COPY from_tarball_entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -20,7 +20,7 @@ RUN useradd --user-group --create-home --no-log-init --shell /bin/bash superset
# Configure environment
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8
LC_ALL=C.UTF-8
RUN apt-get update -y
@@ -29,16 +29,13 @@ RUN apt-get install -y apt-transport-https apt-utils
# Install superset dependencies
# https://superset.apache.org/docs/installation/installing-superset-from-scratch
RUN apt-get install -y subversion build-essential libssl-dev \
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium zstd
RUN apt-get install -y build-essential libssl-dev \
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium
# Install nodejs for custom build
# https://nodejs.org/en/download/package-manager/
RUN set -eux; \
curl -sL https://deb.nodesource.com/setup_20.x | bash -; \
apt-get install -y nodejs; \
node --version;
RUN if ! which npm; then apt-get install -y npm; fi
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - \
&& apt-get install -y nodejs
RUN mkdir -p /home/superset
RUN chown superset /home/superset
@@ -49,20 +46,22 @@ ARG VERSION
# Can fetch source from svn or copy tarball from local mounted directory
RUN svn co https://dist.apache.org/repos/dist/dev/superset/$VERSION ./
RUN tar -xvf *.tar.gz
WORKDIR /home/superset/apache_superset-$VERSION/superset-frontend
WORKDIR apache-superset-$VERSION
RUN npm ci \
&& npm run build \
&& rm -rf node_modules
RUN cd superset-frontend \
&& npm ci \
&& npm run build \
&& rm -rf node_modules
WORKDIR /home/superset/apache_superset-$VERSION
WORKDIR /home/superset/apache-superset-$VERSION
RUN pip install --upgrade setuptools pip \
&& pip install -r requirements/base.txt \
&& pip install --no-cache-dir .
&& pip install -r requirements/base.txt \
&& pip install --no-cache-dir .
RUN flask fab babel-compile --target superset/translations
ENV PATH=/home/superset/superset/bin:$PATH \
PYTHONPATH=/home/superset/superset/
PYTHONPATH=/home/superset/superset/:$PYTHONPATH
COPY from_tarball_entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -123,10 +123,10 @@ SUPERSET_RC=1
SUPERSET_GITHUB_BRANCH=1.5
SUPERSET_PGP_FULLNAME=villebro@apache.org
SUPERSET_VERSION_RC=1.5.1rc1
SUPERSET_RELEASE=apache_superset-1.5.1
SUPERSET_RELEASE_RC=apache_superset-1.5.1rc1
SUPERSET_RELEASE_TARBALL=apache_superset-1.5.1-source.tar.gz
SUPERSET_RELEASE_RC_TARBALL=apache_superset-1.5.1rc1-source.tar.gz
SUPERSET_RELEASE=apache-superset-1.5.1
SUPERSET_RELEASE_RC=apache-superset-1.5.1rc1
SUPERSET_RELEASE_TARBALL=apache-superset-1.5.1-source.tar.gz
SUPERSET_RELEASE_RC_TARBALL=apache-superset-1.5.1rc1-source.tar.gz
SUPERSET_TMP_ASF_SITE_PATH=/tmp/incubator-superset-site-1.5.1
-------------------------------
```
@@ -380,7 +380,7 @@ Official instructions:
https://www.apache.org/info/verification.html
We now have a handy script for anyone validating a release to use. The core of it is in this very folder, `verify_release.py`. Just make sure you have all three release files in the same directory (`{some version}.tar.gz`, `{some version}.tar.gz.asc` and `{some version}tar.gz.sha512`). Then you can pass this script the path to the `.gz` file like so:
`python verify_release.py ~/path/tp/apache_superset-{version/candidate}-source.tar.gz`
`python verify_release.py ~/path/tp/apache-superset-{version/candidate}-source.tar.gz`
If all goes well, you will see this result in your terminal:
@@ -437,7 +437,7 @@ cd ${SUPERSET_RELEASE_RC}
python3 -m venv venv
source venv/bin/activate
pip install -r requirements/base.txt
pip install twine
pip install build twine
```
Create the distribution
@@ -455,7 +455,7 @@ cd ../
./scripts/translations/generate_po_files.sh
# build the python distribution
python setup.py sdist
python -m build
```
Publish to PyPI
@@ -467,7 +467,7 @@ while requesting access to push packages.
```bash
twine upload dist/apache_superset-${SUPERSET_VERSION}-py3-none-any.whl
twine upload dist/apache_superset-${SUPERSET_VERSION}.tar.gz
twine upload dist/apache-superset-${SUPERSET_VERSION}.tar.gz
```
Set your username to `__token__`

View File

@@ -272,14 +272,14 @@ class GitLogs:
@staticmethod
def _git_get_current_head() -> str:
output = os.popen("git status | head -1").read()
output = os.popen("git status | head -1").read() # noqa: S605, S607
match = re.match("(?:HEAD detached at|On branch) (.*)", output)
if not match:
return ""
return match.group(1)
def _git_checkout(self, git_ref: str) -> None:
os.popen(f"git checkout {git_ref}").read()
os.popen(f"git checkout {git_ref}").read() # noqa: S605
current_head = self._git_get_current_head()
if current_head != git_ref:
print(f"Could not checkout {git_ref}")
@@ -290,7 +290,7 @@ class GitLogs:
current_git_ref = self._git_get_current_head()
self._git_checkout(self._git_ref)
output = (
os.popen('git --no-pager log --pretty=format:"%h|%an|%ae|%ad|%s|"')
os.popen('git --no-pager log --pretty=format:"%h|%an|%ae|%ad|%s|"') # noqa: S605, S607
.read()
.split("\n")
)

View File

@@ -31,7 +31,7 @@ The official source release:
https://downloads.apache.org/{{ project_module }}/{{ version }}
The PyPI package:
https://pypi.org/project/apache_superset/{{ version }}
https://pypi.org/project/apache-superset/{{ version }}
The CHANGELOG for the release:
https://github.com/apache/{{ project_module }}/blob/{{ version }}/CHANGELOG/{{ version }}.md

View File

@@ -31,7 +31,7 @@ except ModuleNotFoundError:
RECEIVER_EMAIL = "dev@superset.apache.org"
PROJECT_NAME = "Superset"
PROJECT_MODULE = "superset"
PROJECT_DESCRIPTION = "Apache Superset is a modern, enterprise-ready business intelligence web application."
PROJECT_DESCRIPTION = "Apache Superset is a modern, enterprise-ready business intelligence web application." # noqa: E501
def string_comma_to_list(message: str) -> list[str]:

View File

@@ -32,7 +32,7 @@ else
SUPERSET_VERSION="${1}"
SUPERSET_RC="${2}"
SUPERSET_PGP_FULLNAME="${3}"
SUPERSET_RELEASE_RC_TARBALL="apache_superset-${SUPERSET_VERSION_RC}-source.tar.gz"
SUPERSET_RELEASE_RC_TARBALL="apache-superset-${SUPERSET_VERSION_RC}-source.tar.gz"
fi
SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${SUPERSET_RC}"

View File

@@ -22,7 +22,7 @@ if [ -z "${SUPERSET_VERSION_RC}" ] || [ -z "${SUPERSET_SVN_DEV_PATH}" ] || [ -z
exit 1
fi
SUPERSET_RELEASE_RC=apache_superset-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC=apache-superset-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC_TARBALL="${SUPERSET_RELEASE_RC}"-source.tar.gz
SUPERSET_RELEASE_RC_BASE_PATH="${SUPERSET_SVN_DEV_PATH}"/"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC_TARBALL_PATH="${SUPERSET_RELEASE_RC_BASE_PATH}"/"${SUPERSET_RELEASE_RC_TARBALL}"

View File

@@ -137,4 +137,4 @@ There is now a [metadata bar](https://github.com/apache/superset/pull/27857) add
## Change to Docker image builds
Starting in 4.1.0, the release's docker image does not ship with drivers needed to operate Superset. Users may need to install a driver for their metadata database (MySQL or Postgres) as well as the driver for their data warehouse. This is a result of changes to the `lean` docker image that official releases come from; see [Docker Build Presets](/docs/installation/docker-builds#build-presets) for more details.
Starting in 4.1.0, the release's docker image does not ship with drivers needed to operate Superset. Users may need to install a driver for their metadata database (MySQL or Postgres) as well as the driver for their data warehouse. This is a result of changes to the `lean` docker image that official releases come from; see [Docker Build Presets](/docs/docs/installation/docker-builds.mdx#build-presets) for more details.

View File

@@ -50,8 +50,8 @@ else
export SUPERSET_GITHUB_BRANCH="${VERSION_MAJOR}.${VERSION_MINOR}"
export SUPERSET_PGP_FULLNAME="${2}"
export SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${VERSION_RC}"
export SUPERSET_RELEASE=apache_superset-"${SUPERSET_VERSION}"
export SUPERSET_RELEASE_RC=apache_superset-"${SUPERSET_VERSION_RC}"
export SUPERSET_RELEASE=apache-superset-"${SUPERSET_VERSION}"
export SUPERSET_RELEASE_RC=apache-superset-"${SUPERSET_VERSION_RC}"
export SUPERSET_RELEASE_TARBALL="${SUPERSET_RELEASE}"-source.tar.gz
export SUPERSET_RELEASE_RC_TARBALL="${SUPERSET_RELEASE_RC}"-source.tar.gz
export SUPERSET_TMP_ASF_SITE_PATH="/tmp/incubator-superset-site-${SUPERSET_VERSION}"

View File

@@ -27,7 +27,7 @@ if [ -z "${SUPERSET_SVN_DEV_PATH}" ]; then
fi
if [[ -n ${1} ]] && [[ ${1} == "local" ]]; then
SUPERSET_RELEASE_RC=apache_superset-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC=apache-superset-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC_TARBALL="${SUPERSET_RELEASE_RC}"-source.tar.gz
SUPERSET_TARBALL_PATH="${SUPERSET_SVN_DEV_PATH}"/${SUPERSET_VERSION_RC}/${SUPERSET_RELEASE_RC_TARBALL}
SUPERSET_TMP_TARBALL_FILENAME=_tmp_"${SUPERSET_VERSION_RC}".tar.gz

View File

@@ -38,7 +38,7 @@ get_pip_command() {
PYTHON=$(get_python_command)
PIP=$(get_pip_command)
# Get the release directory's path. If you unzip an Apache release and just run the npm script to validate the release, this will be a file name like `apache_superset-x.x.xrcx-source.tar.gz`
# Get the release directory's path. If you unzip an Apache release and just run the npm script to validate the release, this will be a file name like `apache-superset-x.x.xrcx-source.tar.gz`
RELEASE_ZIP_PATH="../../$(basename "$(dirname "$(pwd)")")-source.tar.gz"
# Install dependencies from requirements.txt if the file exists

View File

@@ -23,12 +23,12 @@ from typing import Optional
import requests
# Part 1: Verify SHA512 hash - this is the same as running `shasum -a 512 {release}` and comparing it against `{release}.sha512`
# Part 1: Verify SHA512 hash - this is the same as running `shasum -a 512 {release}` and comparing it against `{release}.sha512` # noqa: E501
def get_sha512_hash(filename: str) -> str:
"""Run the shasum command on the file and return the SHA512 hash."""
result = subprocess.run(["shasum", "-a", "512", filename], stdout=subprocess.PIPE)
result = subprocess.run(["shasum", "-a", "512", filename], stdout=subprocess.PIPE) # noqa: S603, S607
sha512_hash = result.stdout.decode().split()[0]
return sha512_hash
@@ -43,7 +43,7 @@ def read_sha512_file(filename: str) -> str:
def verify_sha512(filename: str) -> str:
"""Verify if the SHA512 hash of the file matches with the hash in the .sha512 file."""
"""Verify if the SHA512 hash of the file matches with the hash in the .sha512 file.""" # noqa: E501
sha512_hash = get_sha512_hash(filename)
sha512_file_content = read_sha512_file(filename)
@@ -53,14 +53,15 @@ def verify_sha512(filename: str) -> str:
return "SHA failed"
# Part 2: Verify RSA key - this is the same as running `gpg --verify {release}.asc {release}` and comparing the RSA key and email address against the KEYS file
# Part 2: Verify RSA key - this is the same as running `gpg --verify {release}.asc {release}` and comparing the RSA key and email address against the KEYS file # noqa: E501
def get_gpg_info(filename: str) -> tuple[Optional[str], Optional[str]]:
"""Run the GPG verify command and extract RSA key and email address."""
asc_filename = filename + ".asc"
result = subprocess.run(
["gpg", "--verify", asc_filename, filename], capture_output=True
result = subprocess.run( # noqa: S603
["gpg", "--verify", asc_filename, filename], # noqa: S607
capture_output=True, # noqa: S607
)
output = result.stderr.decode()
@@ -90,7 +91,7 @@ def get_gpg_info(filename: str) -> tuple[Optional[str], Optional[str]]:
def verify_key(key: str, email: Optional[str]) -> str:
"""Fetch the KEYS file and verify if the RSA/EDDSA key and email match."""
url = "https://downloads.apache.org/superset/KEYS"
response = requests.get(url)
response = requests.get(url) # noqa: S113
if response.status_code == 200:
if key not in response.text:
return "RSA/EDDSA key not found on KEYS page"

View File

@@ -25,87 +25,87 @@ all you have to do is file a simple PR [like this one](https://github.com/apache
the categorization is inaccurate, please file a PR with your correction as well.
Join our growing community!
### Sharing Economy
### Sharing Economy
- [Airbnb](https://github.com/airbnb)
- [Faasos](http://faasos.com/) [@shashanksingh]
- [Faasos](https://faasos.com/) [@shashanksingh]
- [Free2Move](https://www.free2move.com/) [@PaoloTerzi]
- [Hostnfly](https://www.hostnfly.com/) [@alexisrosuel]
- [Lime](https://www.li.me/) [@cxmcc]
- [Lyft](https://www.lyft.com/)
- [Ontruck](https://www.ontruck.com/)
### Financial Services
- [Aktia Bank plc](https://www.aktia.com) [@villebro]
- [Aktia Bank plc](https://www.aktia.com)
- [American Express](https://www.americanexpress.com) [@TheLastSultan]
- [bumper](https://www.bumper.co/) [@vasu-ram, @JamiePercival]
- [Cape Crypto](https://capecrypto.com)
- [Capital Service S.A.](http://capitalservice.pl) [@pkonarzewski]
- [Clark.de](http://clark.de/)
- [Capital Service S.A.](https://capitalservice.pl) [@pkonarzewski]
- [Clark.de](https://clark.de/)
- [KarrotPay](https://www.daangnpay.com/)
- [Taveo](https://www.taveo.com) [@codek]
- [Unit](https://www.unit.co/about-us) [@amitmiran137]
- [Wise](https://wise.com) [@koszti]
- [Xendit](http://xendit.co/) [@LieAlbertTriAdrian]
- [bumper](https://www.bumper.co/) [@vasu-ram, @JamiePercival]
- [Xendit](https://xendit.co/) [@LieAlbertTriAdrian]
### Gaming
- [Popoko VM Games Studio](https://popoko.live)
### E-Commerce
- [AiHello](https://www.aihello.com) [@ganeshkrishnan1]
- [Bazaar Technologies](https://www.bazaartech.com) [@umair-abro]
- [Dragonpass](https://www.dragonpass.com.cn/) [@zhxjdwh]
- [Dropit Shopping](https://www.dropit.shop/) [@dropit-dev]
- [Fanatics](https://www.fanatics.com/) [@coderfender]
- [Fordeal](http://www.fordeal.com) [@Renkai]
- [Fordeal](https://www.fordeal.com) [@Renkai]
- [GFG - Global Fashion Group](https://global-fashion-group.com) [@ksaagariconic]
- [HuiShouBao](http://www.huishoubao.com/) [@Yukinoshita-Yukino]
- [HuiShouBao](https://www.huishoubao.com/) [@Yukinoshita-Yukino]
- [Now](https://www.now.vn/) [@davidkohcw]
- [Qunar](https://www.qunar.com/) [@flametest]
- [Rakuten Viki](https://www.viki.com)
- [Shopee](https://shopee.sg) [@xiaohanyu]
- [Shopkick](https://www.shopkick.com) [@LAlbertalli]
- [Tails.com](https://tails.com/gb/) [@alanmcruickshank]
- [THE ICONIC](http://theiconic.com.au/) [@ksaagariconic]
- [THE ICONIC](https://theiconic.com.au/) [@ksaagariconic]
- [Utair](https://www.utair.ru) [@utair-digital]
- [VkusVill](https://vkusvill.ru/) [@ETselikov]
- [Zalando](https://www.zalando.com) [@dmigo]
- [Zalora](https://www.zalora.com) [@ksaagariconic]
### Enterprise Technology
- [A3Data](https://a3data.com.br) [@neylsoncrepalde]
- [Analytics Aura](https://analyticsaura.com/) [@Analytics-Aura]
- [Apollo GraphQL](https://www.apollographql.com/) [@evans]
- [Astronomer](https://www.astronomer.io) [@ryw]
- [Avesta Technologies](https://avestatechnologies.com/) [@TheRum]
- [Caizin](https://caizin.com/) [@tejaskatariya]
- [Careem](https://www.careem.com/) [@SamraHanifCareem]
- [Careem](https://www.careem.com/) [@samraHanif0340]
- [Cloudsmith](https://cloudsmith.io) [@alancarson]
- [CnOvit](https://www.cnovit.com/) [@xieshaohu]
- [Cyberhaven](https://www.cyberhaven.com/) [@toliver-ch]
- [Deepomatic](https://deepomatic.com/) [@Zanoellia]
- [Dial Once](https://www.dial-once.com/)
- [Dremio](https://dremio.com) [@narendrans]
- [EFinance](https://www.efinance.com.eg) [@habeeb556]
- [Elestio](https://elest.io/) [@kaiwalyakoparkar]
- [ELMO Cloud HR & Payroll](https://elmosoftware.com.au/)
- [Endress+Hauser](http://www.endress.com/) [@rumbin]
- [FBK - ICT center](http://ict.fbk.eu)
- [Endress+Hauser](https://www.endress.com/) [@rumbin]
- [FBK - ICT center](https://ict.fbk.eu)
- [Gavagai](https://gavagai.io) [@gavagai-corp]
- [GfK Data Lab](https://www.gfk.com/home) [@mherr]
- [Hydrolix](https://www.hydrolix.io/)
- [Intercom](https://www.intercom.com/) [@kate-gallo]
- [jampp](https://jampp.com/)
- [Konfío](http://konfio.mx) [@uis-rodriguez]
- [Konfío](https://konfio.mx) [@uis-rodriguez]
- [Mainstrat](https://mainstrat.com/)
- [mishmash io](https://mishmash.io/)[@mishmash-io]
- [Myra Labs](http://www.myralabs.com/) [@viksit]
- [Nielsen](http://www.nielsen.com/) [@amitNielsen]
- [mishmash io](https://mishmash.io/) [@mishmash-io]
- [Myra Labs](https://www.myralabs.com/) [@viksit]
- [Nielsen](https://www.nielsen.com/) [@amitNielsen]
- [Ona](https://ona.io) [@pld]
- [Orange](https://www.orange.com) [@icsu]
- [Oslandia](https://oslandia.com)
- [Peak AI](https://www.peak.ai/) [@azhar22k]
- [PeopleDoc](https://www.people-doc.com) [@rodo]
- [PlaidCloud](https://www.plaidcloud.com)
- [Preset, Inc.](https://preset.io)
- [PubNub](https://pubnub.com) [@jzucker2]
- [ReadyTech](https://www.readytech.io)
@@ -114,17 +114,16 @@ Join our growing community!
- [Showmax](https://showmax.com) [@bobek]
- [TechAudit](https://www.techaudit.info) [@ETselikov]
- [Tenable](https://www.tenable.com) [@dflionis]
- [Tentacle](https://tentaclecmi.com) [@jdclarke5]
- [Tentacle](https://www.linkedin.com/company/tentacle-cmi/) [@jdclarke5]
- [timbr.ai](https://timbr.ai/) [@semantiDan]
- [Tobii](http://www.tobii.com/) [@dwa]
- [Tobii](https://www.tobii.com/) [@dwa]
- [Tooploox](https://www.tooploox.com/) [@jakubczaplicki]
- [Unvired](https://unvired.com)[@srinisubramanian]
- [Whale](http://whale.im)
- [Unvired](https://unvired.com) [@srinisubramanian]
- [Whale](https://whale.im)
- [Windsor.ai](https://www.windsor.ai/) [@octaviancorlade]
- [Zeta](https://www.zeta.tech/) [@shaikidris]
### Media & Entertainment
- [6play](https://www.6play.fr) [@CoryChaplin]
- [bilibili](https://www.bilibili.com) [@Moinheart]
- [BurdaForward](https://www.burda-forward.de/en/)
@@ -132,23 +131,21 @@ Join our growing community!
- [Kuaishou](https://www.kuaishou.com/) [@zhaoyu89730105]
- [Netflix](https://www.netflix.com/)
- [Prensa Iberica](https://www.prensaiberica.es/) [@zamar-roura]
- [TME QQMUSIC/WESING](https://www.tencentmusic.com/)[@shenyuanli,@marklaw]
- [TME QQMUSIC/WESING](https://www.tencentmusic.com/) [@shenyuanli,@marklaw]
- [Xite](https://xite.com/) [@shashankkoppar]
- [Zaihang](http://www.zaih.com/)
- [Zaihang](https://www.zaih.com/)
### Education
- [Aveti Learning](https://avetilearning.com/) [@TheShubhendra]
- [Brilliant.org](https://brilliant.org/)
- [Platzi.com](https://platzi.com/)
- [Sunbird](https://www.sunbird.org/) [@eksteporg]
- [The GRAPH Network](https://thegraphnetwork.org/)[@fccoelho]
- [The GRAPH Network](https://thegraphnetwork.org/) [@fccoelho]
- [Udemy](https://www.udemy.com/) [@sungjuly]
- [VIPKID](https://www.vipkid.com.cn/) [@illpanda]
- [WikiMedia Foundation](https://wikimediafoundation.org) [@vg]
### Energy
- [Airboxlab](https://foobot.io) [@antoine-galataud]
- [DouroECI](https://www.douroeci.com/) [@nunohelibeires]
- [Safaricom](https://www.safaricom.co.ke/) [@mmutiso]
@@ -156,35 +153,32 @@ Join our growing community!
- [Wattbewerb](https://wattbewerb.de/) [@wattbewerb]
### Healthcare
- [Amino](https://amino.com) [@shkr]
- [Bluesquare](https://www.bluesquarehub.com/) [@madewulf]
- [Care](https://www.getcare.io/)[@alandao2021]
- [Care](https://www.getcare.io/) [@alandao2021]
- [Living Goods](https://www.livinggoods.org) [@chelule]
- [Maieutical Labs](https://maieuticallabs.it) [@xrmx]
- [QPID Health](http://www.qpidhealth.com/)
- [Medic](https://medic.org) [@1yuv]
- [REDCap Cloud](https://www.redcapcloud.com/)
- [TrustMedis](https://trustmedis.com/) [@famasya]
- [WeSure](https://www.wesure.cn/)
- [2070Health](https://2070health.com/)
### HR / Staffing
- [Swile](https://www.swile.co/) [@PaoloTerzi]
- [Symmetrics](https://www.symmetrics.fyi)
- [bluquist](https://bluquist.com/)
### Government
### Government / Non-Profit
- [City of Ann Arbor, MI](https://www.a2gov.org/) [@sfirke]
- [RIS3 Strategy of CZ, MIT CR](https://www.ris3.cz/) [@RIS3CZ]
- [NRLM - Sarathi, India](https://pib.gov.in/PressReleasePage.aspx?PRID=1999586)
### Travel
- [Agoda](https://www.agoda.com/) [@lostseaway, @maiake, @obombayo]
- [Skyscanner](https://www.skyscanner.net/) [@cleslie, @stanhoucke]
### Others
- [10Web](https://10web.io/)
- [AI inside](https://inside.ai/en/)
- [Automattic](https://automattic.com/) [@Khrol, @Usiel]
@@ -195,6 +189,6 @@ Join our growing community!
- [komoot](https://www.komoot.com/) [@christophlingg]
- [Let's Roam](https://www.letsroam.com/)
- [Onebeat](https://1beat.com/) [@GuyAttia]
- [Twitter](https://twitter.com/)
- [X](https://x.com/)
- [VLMedia](https://www.vlmedia.com.tr/) [@ibotheperfect]
- [Yahoo!](https://yahoo.com/)

View File

@@ -22,10 +22,15 @@ under the License.
This file documents any backwards-incompatible changes in Superset and
assists people when migrating to a new version.
## 4.1.2
## Next
- [31198](https://github.com/apache/superset/pull/31198) Disallows by default the use of the following ClickHouse functions: "version", "currentDatabase", "hostName".
- [29798](https://github.com/apache/superset/pull/29798) Since 3.1.0, the intial schedule for an alert or report was mistakenly offset by the specified timezone's relation to UTC. The initial schedule should now begin at the correct time.
- [30021](https://github.com/apache/superset/pull/30021) The `dev` layer in our Dockerfile no long includes firefox binaries, only Chromium to reduce bloat/docker-build-time.
- [30099](https://github.com/apache/superset/pull/30099) Translations are no longer included in the default docker image builds. If your environment requires translations, you'll want to set the docker build arg `BUILD_TRANSACTION=true`.
- [31262](https://github.com/apache/superset/pull/31262) NOTE: deprecated `pylint` in favor of `ruff` as our only python linter. Only affect development workflows positively (not the release itself). It should cover most important rules, be much faster, but some things linting rules that were enforced before may not be enforce in the exact same way as before.
- [31173](https://github.com/apache/superset/pull/31173) Modified `fetch_csrf_token` to align with HTTP standards, particularly regarding how cookies are handled. If you encounter any issues related to CSRF functionality, please report them as a new issue and reference this PR for context.
- [31385](https://github.com/apache/superset/pull/31385) Significant docker refactor, reducing access levels for the `superset` user, streamlining layer building, ...
### Potential Downtime
@@ -39,9 +44,9 @@ assists people when migrating to a new version.
`requirements/` folder. If you use these files for your builds you may want to double
check that your builds are not affected. `base.txt` should be the same as before, though
`development.txt` becomes a bigger set, incorporating the now defunct local,testing,integration, and docker
- [27434](https://github.com/apache/superset/pull/27434/files): DO NOT USE our docker-compose.\*
- [27434](https://github.com/apache/superset/pull/27434/files): DO NOT USE our docker compose.\*
files for production use cases! While we never really supported
or should have tried to support docker-compose for production use cases, we now actively
or should have tried to support docker compose for production use cases, we now actively
have taken a stance against supporting it. See the PR for details.
- [24112](https://github.com/apache/superset/pull/24112): Python 3.10 is now the recommended python version to use, 3.9 still
supported but getting deprecated in the nearish future. CI/CD runs on py310 so you probably want to align. If you
@@ -65,7 +70,7 @@ assists people when migrating to a new version.
backend, as well as the .json files used by the frontend. If you were doing anything before
as part of your bundling to expose translation packages, it's probably not needed anymore.
- [29264](https://github.com/apache/superset/pull/29264) Slack has updated its file upload api, and we are now supporting this new api in Superset, although the Slack api is not backward compatible. The original Slack integration is deprecated and we will require a new Slack scope `channels:read` to be added to Slack workspaces in order to use this new api. In an upcoming release, we will make this new Slack scope mandatory and remove the old Slack functionality.
- [30274](https://github.com/apache/superset/pull/30274) Moved SLACK_ENABLE_AVATAR from config.py to the feature flag framework, please adapt your configs
- [30274](https://github.com/apache/superset/pull/30274) Moved SLACK_ENABLE_AVATAR from config.py to the feature flag framework, please adapt your configs.
### Potential Downtime
@@ -123,7 +128,7 @@ assists people when migrating to a new version.
- [24911](https://github.com/apache/superset/pull/24911): Changes the column type from `TEXT` to `MediumText` in table `logs`, potentially requiring a table lock on MySQL dbs or taking some time to complete on large deployments.
- [24939](https://github.com/apache/superset/pull/24939): Augments the foreign key constraints for the `embedded_dashboards` table to include an explicit CASCADE ON DELETE to ensure the relevant records are deleted when a dashboard is deleted. Scheduled downtime may be advised.
- [24938](https://github.com/apache/superset/pull/24938): Augments the foreign key constraints for the `dashboard_slices` table to include an explicit CASCADE ON DELETE to ensure the relevant records are deleted when a dashboard or slice is deleted. Scheduled downtime may be advised.
- [24628]https://github.com/apache/superset/pull/24628): Augments the foreign key constraints for the `dashboard_owner`, `report_schedule_owner`, and `slice_owner` tables to include an explicit CASCADE ON DELETE to ensure the relevant ownership records are deleted when a dataset is deleted. Scheduled downtime may be advised.
- [24628](https://github.com/apache/superset/pull/24628): Augments the foreign key constraints for the `dashboard_owner`, `report_schedule_owner`, and `slice_owner` tables to include an explicit CASCADE ON DELETE to ensure the relevant ownership records are deleted when a dataset is deleted. Scheduled downtime may be advised.
- [24488](https://github.com/apache/superset/pull/24488): Augments the foreign key constraints for the `sql_metrics`, `sqlatable_user`, and `table_columns` tables which reference the `tables` table to include an explicit CASCADE ON DELETE to ensure the relevant records are deleted when a dataset is deleted. Scheduled downtime may be advised.
- [24232](https://github.com/apache/superset/pull/24232): Enables ENABLE_TEMPLATE_REMOVE_FILTERS, DRILL_TO_DETAIL, DASHBOARD_CROSS_FILTERS by default, marks VERSIONED_EXPORT and ENABLE_TEMPLATE_REMOVE_FILTERS as deprecated.
- [23652](https://github.com/apache/superset/pull/23652): Enables GENERIC_CHART_AXES feature flag by default.
@@ -139,7 +144,7 @@ assists people when migrating to a new version.
### Breaking Changes
- [24686]https://github.com/apache/superset/pull/24686): All dataset's custom explore_url are handled as relative URLs on the frontend, behaviour controlled by PREVENT_UNSAFE_DEFAULT_URLS_ON_DATASET.
- [24686](https://github.com/apache/superset/pull/24686): All dataset's custom explore_url are handled as relative URLs on the frontend, behaviour controlled by PREVENT_UNSAFE_DEFAULT_URLS_ON_DATASET.
- [24262](https://github.com/apache/superset/pull/24262): Enabled `TALISMAN_ENABLED` flag by default and provided stricter default Content Security Policy
- [24415](https://github.com/apache/superset/pull/24415): Removed the obsolete Druid NoSQL REGEX operator.
- [24423](https://github.com/apache/superset/pull/24423): Removed deprecated APIs `/superset/slice_json/...`, `/superset/annotation_json/...`
@@ -324,8 +329,7 @@ assists people when migrating to a new version.
### Potential Downtime
- [14234](https://github.com/apache/superset/pull/14234): Adds the `limiting_factor` column to the `query` table. Give the migration includes a DDL operation on a heavily trafficked table, potential service downtime may be required.
-[16454](https://github.com/apache/superset/pull/16454): Adds the `extra` column to the `table_columns` table. Users using MySQL will either need to schedule downtime or use the percona toolkit (or similar) to perform the migration.
- [16454](https://github.com/apache/superset/pull/16454): Adds the `extra` column to the `table_columns` table. Users using MySQL will either need to schedule downtime or use the percona toolkit (or similar) to perform the migration.
## 1.2.0

View File

@@ -16,7 +16,7 @@
#
# -----------------------------------------------------------------------
# We don't support docker-compose for production environments.
# We don't support docker compose for production environments.
# If you choose to use this type of deployment make sure to
# create you own docker environment file (docker/.env) with your own
# unique random secure passwords and SECRET_KEY.

View File

@@ -16,7 +16,7 @@
#
# -----------------------------------------------------------------------
# We don't support docker-compose for production environments.
# We don't support docker compose for production environments.
# If you choose to use this type of deployment make sure to
# create you own docker environment file (docker/.env) with your own
# unique random secure passwords and SECRET_KEY.

View File

@@ -16,7 +16,7 @@
#
# -----------------------------------------------------------------------
# We don't support docker-compose for production environments.
# We don't support docker compose for production environments.
# If you choose to use this type of deployment make sure to
# create you own docker environment file (docker/.env) with your own
# unique random secure passwords and SECRET_KEY.
@@ -35,9 +35,14 @@ x-superset-volumes: &superset-volumes
x-common-build: &common-build
context: .
target: dev
target: ${SUPERSET_BUILD_TARGET:-dev} # can use `dev` (default) or `lean`
cache_from:
- apache/superset-cache:3.10-slim-bookworm
args:
DEV_MODE: "true"
INCLUDE_CHROMIUM: ${INCLUDE_CHROMIUM:-false}
INCLUDE_FIREFOX: ${INCLUDE_FIREFOX:-false}
BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false}
services:
nginx:
@@ -120,7 +125,7 @@ services:
- /home/superset-websocket/dist
# Mounting a config file that contains a dummy secret required to boot up.
# do not use this docker-compose in production
# do not use this docker compose in production
- ./docker/superset-websocket/config.json:/home/superset-websocket/config.json
environment:
- PORT=8080
@@ -147,10 +152,20 @@ services:
disable: true
superset-node:
image: node:18
build:
context: .
target: superset-node
args:
# This prevents building the frontend bundle since we'll mount local folder
# and build it on startup while firing docker-frontend.sh in dev mode, where
# it'll mount and watch local files and rebuild as you update them
DEV_MODE: "true"
BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false}
environment:
# set this to false if you have perf issues running the npm i; npm run dev in-docker
# if you do so, you have to run this manually on the host, which should perform better!
BUILD_SUPERSET_FRONTEND_IN_DOCKER: true
NPM_RUN_PRUNE: false
SCARF_ANALYTICS: "${SCARF_ANALYTICS:-}"
container_name: superset_node
command: ["/app/docker/docker-frontend.sh"]

View File

@@ -17,6 +17,7 @@
COMPOSE_PROJECT_NAME=superset
DEV_MODE=true
# database configurations (do not modify)
DATABASE_DB=superset

51
docker/apt-install.sh Executable file
View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -euo pipefail
# Ensure this script is run as root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" >&2
exit 1
fi
# Check for required arguments
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <package1> [<package2> ...]" >&2
exit 1
fi
# Colors for better logging (optional)
GREEN='\033[0;32m'
RED='\033[0;31m'
RESET='\033[0m'
# Install packages with clean-up
echo -e "${GREEN}Updating package lists...${RESET}"
apt-get update -qq
echo -e "${GREEN}Installing packages: $@${RESET}"
apt-get install -yqq --no-install-recommends "$@"
echo -e "${GREEN}Autoremoving unnecessary packages...${RESET}"
apt-get autoremove -y
echo -e "${GREEN}Cleaning up package cache and metadata...${RESET}"
apt-get clean
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* /tmp/* /var/tmp/*
echo -e "${GREEN}Installation and cleanup complete.${RESET}"

View File

@@ -18,6 +18,11 @@
set -eo pipefail
# Make python interactive
if [ "$DEV_MODE" == "true" ]; then
echo "Reinstalling the app in editable mode"
uv pip install -e .
fi
REQUIREMENTS_LOCAL="/app/docker/requirements-local.txt"
# If Cypress run overwrite the password for admin and export env variables
if [ "$CYPRESS_CONFIG" == "true" ]; then
@@ -25,12 +30,16 @@ if [ "$CYPRESS_CONFIG" == "true" ]; then
export SUPERSET_TESTENV=true
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset
fi
if [[ "$DATABASE_DIALECT" == postgres* ]] ; then
echo "Installing postgres requirements"
uv pip install -e .[postgres]
fi
#
# Make sure we have dev requirements installed
#
if [ -f "${REQUIREMENTS_LOCAL}" ]; then
echo "Installing local overrides at ${REQUIREMENTS_LOCAL}"
pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
uv pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
else
echo "Skipping local overrides"
fi

View File

@@ -24,12 +24,21 @@ if [ "$PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" = "false" ]; then
fi
if [ "$BUILD_SUPERSET_FRONTEND_IN_DOCKER" = "true" ]; then
echo "Building Superset frontend in dev mode inside docker container"
cd /app/superset-frontend
npm install -f --no-optional --global webpack webpack-cli
npm install -f
echo "Running frontend"
if [ "$NPM_RUN_PRUNE" = "true" ]; then
echo "Running `npm run prune`"
npm run prune
fi
echo "Running `npm install`"
npm install
echo "Start webpack dev server"
npm run dev
else
echo "Skipping frontend build steps - YOU RUN IT MANUALLY ON THE HOST!"
echo "Skipping frontend build steps - YOU NEED TO RUN IT MANUALLY ON THE HOST!"
echo "https://superset.apache.org/docs/contributing/development/#webpack-dev-server"
fi

View File

@@ -22,7 +22,11 @@ set -e
#
/app/docker/docker-bootstrap.sh
STEP_CNT=4
if [ "$SUPERSET_LOAD_EXAMPLES" = "yes" ]; then
STEP_CNT=4
else
STEP_CNT=3
fi
echo_step() {
cat <<EOF

View File

@@ -26,6 +26,7 @@ gunicorn \
--workers ${SERVER_WORKER_AMOUNT:-1} \
--worker-class ${SERVER_WORKER_CLASS:-gthread} \
--threads ${SERVER_THREADS_AMOUNT:-20} \
--log-level "${GUNICORN_LOGLEVEL:info}" \
--timeout ${GUNICORN_TIMEOUT:-60} \
--keep-alive ${GUNICORN_KEEPALIVE:-2} \
--max-requests ${WORKER_MAX_REQUESTS:-0} \

64
docker/pip-install.sh Executable file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -euo pipefail
# Default flag
REQUIRES_BUILD_ESSENTIAL=false
USE_CACHE=true
# Filter arguments
ARGS=()
for arg in "$@"; do
case "$arg" in
--requires-build-essential)
REQUIRES_BUILD_ESSENTIAL=true
;;
--no-cache)
USE_CACHE=false
;;
*)
ARGS+=("$arg")
;;
esac
done
# Install build-essential if required
if $REQUIRES_BUILD_ESSENTIAL; then
echo "Installing build-essential for package builds..."
apt-get update -qq \
&& apt-get install -yqq --no-install-recommends build-essential
fi
# Choose whether to use pip cache
if $USE_CACHE; then
echo "Using pip cache..."
uv pip install "${ARGS[@]}"
else
echo "Disabling pip cache..."
uv pip install --no-cache-dir "${ARGS[@]}"
fi
# Remove build-essential if it was installed
if $REQUIRES_BUILD_ESSENTIAL; then
echo "Removing build-essential to keep the image lean..."
apt-get autoremove -yqq --purge build-essential \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
fi
echo "Python packages installed successfully."

View File

@@ -99,7 +99,7 @@ CELERY_CONFIG = CeleryConfig
FEATURE_FLAGS = {"ALERT_REPORTS": True}
ALERT_REPORTS_NOTIFICATION_DRY_RUN = True
WEBDRIVER_BASEURL = "http://superset:8088/" # When using docker compose baseurl should be http://superset_app:8088/
WEBDRIVER_BASEURL = "http://superset:8088/" # When using docker compose baseurl should be http://superset_app:8088/ # noqa: E501
# The base URL for the email report hyperlinks.
WEBDRIVER_BASEURL_USER_FRIENDLY = WEBDRIVER_BASEURL
SQLLAB_CTAS_NO_LIMIT = True

View File

@@ -1 +1 @@
v20.12.2
v20.16.0

View File

@@ -16,6 +16,7 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
This is the public documentation site for Superset, built using
[Docusaurus 2](https://docusaurus.io/). See
[CONTRIBUTING.md](../CONTRIBUTING.md#documentation) for documentation on

View File

@@ -63,6 +63,7 @@
"Fiji",
"Finland",
"France",
"France (with overseas)",
"France (regions)",
"French Polynesia",
"Gabon",
@@ -77,6 +78,7 @@
"Guyana",
"Haiti",
"Honduras",
"Hungary",
"Iceland",
"India",
"Indonesia",

View File

@@ -53,11 +53,14 @@ To send alerts and reports to Slack channels, you need to create a new Slack App
- `incoming-webhook`
- `files:write`
- `chat:write`
- `channels:read`
- `groups:read`
4. At the top of the "OAuth and Permissions" section, click "install to workspace".
5. Select a default channel for your app and continue.
(You can post to any channel by inviting your Superset app into that channel).
6. The app should now be installed in your workspace, and a "Bot User OAuth Access Token" should have been created. Copy that token in the `SLACK_API_TOKEN` variable of your `superset_config.py`.
7. Restart the service (or run `superset init`) to pull in the new configuration.
7. Ensure the feature flag `ALERT_REPORT_SLACK_V2` is set to True in `superset_config.py`
8. Restart the service (or run `superset init`) to pull in the new configuration.
Note: when you configure an alert or a report, the Slack channel list takes channel names without the leading '#' e.g. use `alerts` instead of `#alerts`.
@@ -251,15 +254,18 @@ FROM apache/superset:3.1.0
USER root
RUN apt-get update && \
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt-get install -y wget zip libaio1
RUN export CHROMEDRIVER_VERSION=$(curl --silent https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_116) && \
wget -O google-chrome-stable_current_amd64.deb -q http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROMEDRIVER_VERSION}-1_amd64.deb && \
apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb && \
rm -f google-chrome-stable_current_amd64.deb
RUN export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_102) && \
wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip && \
unzip chromedriver_linux64.zip -d /usr/bin && \
RUN export CHROMEDRIVER_VERSION=$(curl --silent https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_116) && \
wget -q https://storage.googleapis.com/chrome-for-testing-public/${CHROMEDRIVER_VERSION}/linux64/chromedriver-linux64.zip && \
unzip -j chromedriver-linux64.zip -d /usr/bin && \
chmod 755 /usr/bin/chromedriver && \
rm -f chromedriver_linux64.zip
rm -f chromedriver-linux64.zip
RUN pip install --no-cache gevent psycopg2 redis

View File

@@ -13,8 +13,8 @@ SimpleCache (in-memory), or the local filesystem.
[Custom cache backends](https://flask-caching.readthedocs.io/en/latest/#custom-cache-backends)
are also supported.
Caching can be configured by providing a dictionaries in
`superset_config.py` that comply with[the Flask-Caching config specifications](https://flask-caching.readthedocs.io/en/latest/#configuring-flask-caching).
Caching can be configured by providing dictionaries in
`superset_config.py` that comply with [the Flask-Caching config specifications](https://flask-caching.readthedocs.io/en/latest/#configuring-flask-caching).
The following cache configurations can be customized in this way:
- Dashboard filter state (required): `FILTER_STATE_CACHE_CONFIG`.
@@ -22,7 +22,7 @@ The following cache configurations can be customized in this way:
- Metadata cache (optional): `CACHE_CONFIG`
- Charting data queried from datasets (optional): `DATA_CACHE_CONFIG`
For example, to configure the filter state cache using redis:
For example, to configure the filter state cache using Redis:
```python
FILTER_STATE_CACHE_CONFIG = {

View File

@@ -37,7 +37,7 @@ ENV SUPERSET_CONFIG_PATH /app/superset_config.py
```
Docker compose deployments handle application configuration differently using specific conventions.
Refer to the [docker-compose tips & configuration](/docs/installation/docker-compose#docker-compose-tips--configuration)
Refer to the [docker compose tips & configuration](/docs/installation/docker-compose#docker-compose-tips--configuration)
for details.
The following is an example of just a few of the parameters you can set in your `superset_config.py` file:
@@ -314,9 +314,9 @@ CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
]
```
### Keycloak-Specific Configuration using Flask-OIDC
If you are using Keycloak as OpenID Connect 1.0 Provider, the above configuration based on [`Authlib`](https://authlib.org/) might not work. In this case using [`Flask-OIDC`](https://https://pypi.org/project/flask-oidc/) is a viable option.
If you are using Keycloak as OpenID Connect 1.0 Provider, the above configuration based on [`Authlib`](https://authlib.org/) might not work. In this case using [`Flask-OIDC`](https://pypi.org/project/flask-oidc/) is a viable option.
Make sure the pip package [`Flask-OIDC`](https://https://pypi.org/project/flask-oidc/) is installed on the webserver. This was succesfully tested using version 2.2.0. This package requires [`Flask-OpenID`](https://pypi.org/project/Flask-OpenID/) as a dependency.
Make sure the pip package [`Flask-OIDC`](https://pypi.org/project/flask-oidc/) is installed on the webserver. This was succesfully tested using version 2.2.0. This package requires [`Flask-OpenID`](https://pypi.org/project/Flask-OpenID/) as a dependency.
The following code defines a new security manager. Add it to a new file named `keycloak_security_manager.py`, placed in the same directory as your `superset_config.py` file.
```python

View File

@@ -55,7 +55,9 @@ are compatible with Superset.
| [ClickHouse](/docs/configuration/databases#clickhouse) | `pip install clickhouse-connect` | `clickhousedb://{username}:{password}@{hostname}:{port}/{database}` |
| [CockroachDB](/docs/configuration/databases#cockroachdb) | `pip install cockroachdb` | `cockroachdb://root@{hostname}:{port}/{database}?sslmode=disable` |
| [Couchbase](/docs/configuration/databases#couchbase) | `pip install couchbase-sqlalchemy` | `couchbase://{username}:{password}@{hostname}:{port}?truststorepath={ssl certificate path}` |
| [Dremio](/docs/configuration/databases#dremio) | `pip install sqlalchemy_dremio` | `dremio://user:pwd@host:31010/` |
| [CrateDB](/docs/configuration/databases#cratedb) | `pip install sqlalchemy-cratedb` | `crate://{username}:{password}@{hostname}:{port}`, often useful: `?ssl=true/false` or `?schema=testdrive`. |
| [Denodo](/docs/configuration/databases#denodo) | `pip install denodo-sqlalchemy` | `denodo://{username}:{password}@{hostname}:{port}/{database}` |
| [Dremio](/docs/configuration/databases#dremio) | `pip install sqlalchemy_dremio` |`dremio+flight://{username}:{password}@{host}:32010`, often useful: `?UseEncryption=true/false`. For Legacy ODBC: `dremio+pyodbc://{username}:{password}@{host}:31010` |
| [Elasticsearch](/docs/configuration/databases#elasticsearch) | `pip install elasticsearch-dbapi` | `elasticsearch+http://{user}:{password}@{host}:9200/` |
| [Exasol](/docs/configuration/databases#exasol) | `pip install sqlalchemy-exasol` | `exa+pyodbc://{username}:{password}@{hostname}:{port}/my_schema?CONNECTIONLCALL=en_US.UTF-8&driver=EXAODBC` |
| [Google BigQuery](/docs/configuration/databases#google-bigquery) | `pip install sqlalchemy-bigquery` | `bigquery://{project_id}` |
@@ -70,7 +72,7 @@ are compatible with Superset.
| [PostgreSQL](/docs/configuration/databases#postgres) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
| [Presto](/docs/configuration/databases#presto) | `pip install pyhive` | `presto://` |
| [Rockset](/docs/configuration/databases#rockset) | `pip install rockset-sqlalchemy` | `rockset://<api_key>:@<api_server>` |
| [SAP Hana](/docs/configuration/databases#hana) | `pip install hdbcli sqlalchemy-hana` or `pip install apache_superset[hana]` | `hana://{username}:{password}@{host}:{port}` |
| [SAP Hana](/docs/configuration/databases#hana) | `pip install hdbcli sqlalchemy-hana` or `pip install apache-superset[hana]` | `hana://{username}:{password}@{host}:{port}` |
| [StarRocks](/docs/configuration/databases#starrocks) | `pip install starrocks` | `starrocks://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>` |
| [Snowflake](/docs/configuration/databases#snowflake) | `pip install snowflake-sqlalchemy` | `snowflake://{user}:{password}@{account}.{region}/{database}?role={role}&warehouse={warehouse}` |
| SQLite | No additional library needed | `sqlite://path/to/file.db?check_same_thread=false` |
@@ -79,6 +81,7 @@ are compatible with Superset.
| [TimescaleDB](/docs/configuration/databases#timescaledb) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>:<Port>/<Database Name>` |
| [Trino](/docs/configuration/databases#trino) | `pip install trino` | `trino://{username}:{password}@{hostname}:{port}/{catalog}` |
| [Vertica](/docs/configuration/databases#vertica) | `pip install sqlalchemy-vertica-python` | `vertica+vertica_python://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
| [YDB](/docs/configuration/databases#ydb) | `pip install ydb-sqlalchemy` | `ydb://{host}:{port}/{database_name}` |
| [YugabyteDB](/docs/configuration/databases#yugabytedb) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
---
@@ -393,21 +396,33 @@ couchbase://{username}:{password}@{hostname}:{port}?truststorepath={certificate
#### CrateDB
The recommended connector library for CrateDB is
[crate](https://pypi.org/project/crate/).
You need to install the extras as well for this library.
We recommend adding something like the following
text to your requirements file:
The connector library for CrateDB is [sqlalchemy-cratedb].
We recommend to add the following item to your `requirements.txt` file:
```
crate[sqlalchemy]==0.26.0
sqlalchemy-cratedb>=0.40.1,<1
```
The expected connection string is formatted as follows:
An SQLAlchemy connection string for [CrateDB Self-Managed] on localhost,
for evaluation purposes, looks like this:
```
crate://crate@127.0.0.1:4200
```
An SQLAlchemy connection string for connecting to [CrateDB Cloud] looks like
this:
```
crate://<username>:<password>@<clustername>.cratedb.net:4200/?ssl=true
```
Follow the steps [here](/docs/configuration/databases#installing-database-drivers)
to install the CrateDB connector package when setting up Superset locally using
Docker Compose.
```
echo "sqlalchemy-cratedb" >> ./docker/requirements-local.txt
```
[CrateDB Cloud]: https://cratedb.com/product/cloud
[CrateDB Self-Managed]: https://cratedb.com/product/self-managed
[sqlalchemy-cratedb]: https://pypi.org/project/sqlalchemy-cratedb/
#### Databend
@@ -512,6 +527,16 @@ For a connection to a SQL endpoint you need to use the HTTP path from the endpoi
```
#### Denodo
The recommended connector library for Denodo is
[denodo-sqlalchemy](https://pypi.org/project/denodo-sqlalchemy/).
The expected connection string is formatted as follows (default port is 9996):
```
denodo://{username}:{password}@{hostname}:{port}/{database}
```
#### Dremio
@@ -522,7 +547,7 @@ The recommended connector library for Dremio is
The expected connection string for ODBC (Default port is 31010) is formatted as follows:
```
dremio://{username}:{password}@{host}:{port}/{database_name}/dremio?SSL=1
dremio+pyodbc://{username}:{password}@{host}:{port}/{database_name}/dremio?SSL=1
```
The expected connection string for Arrow Flight (Dremio 4.9.1+. Default port is 32010) is formatted as follows:
@@ -1307,6 +1332,10 @@ Here's what the connection string looks like:
starrocks://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
```
:::note
StarRocks maintains their Superset docuementation [here](https://docs.starrocks.io/docs/integrations/BI_integrations/Superset/).
:::
#### Teradata
The recommended connector library is
@@ -1509,6 +1538,78 @@ Other parameters:
- Load Balancer - Backup Host
#### YDB
The recommended connector library for [YDB](https://ydb.tech/) is
[ydb-sqlalchemy](https://pypi.org/project/ydb-sqlalchemy/).
##### Connection String
The connection string for YDB looks like this:
```
ydb://{host}:{port}/{database_name}
```
##### Protocol
You can specify `protocol` in the `Secure Extra` field at `Advanced / Security`:
```
{
"protocol": "grpcs"
}
```
Default is `grpc`.
##### Authentication Methods
###### Static Credentials
To use `Static Credentials` you should provide `username`/`password` in the `Secure Extra` field at `Advanced / Security`:
```
{
"credentials": {
"username": "...",
"password": "..."
}
}
```
###### Access Token Credentials
To use `Access Token Credentials` you should provide `token` in the `Secure Extra` field at `Advanced / Security`:
```
{
"credentials": {
"token": "...",
}
}
```
##### Service Account Credentials
To use Service Account Credentials, you should provide `service_account_json` in the `Secure Extra` field at `Advanced / Security`:
```
{
"credentials": {
"service_account_json": {
"id": "...",
"service_account_id": "...",
"created_at": "...",
"key_algorithm": "...",
"public_key": "...",
"private_key": "..."
}
}
}
```
#### YugabyteDB
[YugabyteDB](https://www.yugabyte.com/) is a distributed SQL database built on top of PostgreSQL.

View File

@@ -11,7 +11,7 @@ version: 1
To configure CORS, or cross-origin resource sharing, the following dependency must be installed:
```python
pip install apache_superset[cors]
pip install apache-superset[cors]
```
The following keys in `superset_config.py` can be specified to configure CORS:
@@ -24,9 +24,65 @@ The following keys in `superset_config.py` can be specified to configure CORS:
## HTTP headers
Note that Superset bundles [flask-talisman](https://pypi.org/project/talisman/)
Self-descried as a small Flask extension that handles setting HTTP headers that can help
Self-described as a small Flask extension that handles setting HTTP headers that can help
protect against a few common web application security issues.
## HTML Embedding of Dashboards and Charts
There are two ways to embed a dashboard: Using the [SDK](https://www.npmjs.com/package/@superset-ui/embedded-sdk) or embedding a direct link. Note that in the latter case everybody who knows the link is able to access the dashboard.
### Embedding a Public Direct Link to a Dashboard
This works by first changing the content security policy (CSP) of [flask-talisman](https://github.com/GoogleCloudPlatform/flask-talisman) to allow for certain domains to display Superset content. Then a dashboard can be made publicly accessible, i.e. **bypassing authentication**. Once made public, the dashboard's URL can be added to an iframe in another website's HTML code.
#### Changing flask-talisman CSP
Add to `superset_config.py` the entire `TALISMAN_CONFIG` section from `config.py` and include a `frame-ancestors` section:
```python
TALISMAN_ENABLED = True
TALISMAN_CONFIG = {
"content_security_policy": {
...
"frame-ancestors": ["*.my-domain.com", "*.another-domain.com"],
...
```
Restart Superset for this configuration change to take effect.
#### Making a Dashboard Public
1. Add the `'DASHBOARD_RBAC': True` [Feature Flag](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md) to `superset_config.py`
2. Add the `Public` role to your dashboard as described [here](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard/#manage-access-to-dashboards)
#### Embedding a Public Dashboard
Now anybody can directly access the dashboard's URL. You can embed it in an iframe like so:
```html
<iframe
width="600"
height="400"
seamless
frameBorder="0"
scrolling="no"
src="https://superset.my-domain.com/superset/dashboard/10/?standalone=1&height=400"
>
</iframe>
```
#### Embedding a Chart
A chart's embed code can be generated by going to a chart's edit view and then clicking at the top right on `...` > `Share` > `Embed code`
### Enabling Embedding via the SDK
Clicking on `...` next to `EDIT DASHBOARD` on the top right of the dashboard's overview page should yield a drop-down menu including the entry "Embed dashboard".
To enable this entry, add the following line to the `.env` file:
```text
SUPERSET_FEATURE_EMBEDDED_SUPERSET=true
```
## CSRF settings
Similarly, [flask-wtf](https://flask-wtf.readthedocs.io/en/0.15.x/config/) is used manage

View File

@@ -17,8 +17,8 @@ made available in the Jinja context:
- `columns`: columns which to group by in the query
- `filter`: filters applied in the query
- `from_dttm`: start `datetime` value from the selected time range (`None` if undefined)
- `to_dttm`: end `datetime` value from the selected time range (`None` if undefined)
- `from_dttm`: start `datetime` value from the selected time range (`None` if undefined) (deprecated beginning in version 5.0, use `get_time_filter` instead)
- `to_dttm`: end `datetime` value from the selected time range (`None` if undefined). (deprecated beginning in version 5.0, use `get_time_filter` instead)
- `groupby`: columns which to group by in the query (deprecated)
- `metrics`: aggregate expressions in the query
- `row_limit`: row limit of the query
@@ -48,12 +48,15 @@ WHERE (
{% if to_dttm is not none %}
dttm_col < '{{ to_dttm }}' AND
{% endif %}
true
1 = 1
)
```
Note how the Jinja parameters are called within double brackets in the query, and without in the
logic blocks.
The `1 = 1` at the end ensures a value is present for the `WHERE` clause even when
the time filter is not set. For many database engines, this could be replaced with `true`.
Note that the Jinja parameters are called within _double_ brackets in the query and with
_single_ brackets in the logic blocks.
To add custom functionality to the Jinja context, you need to overload the default Jinja
context in your environment by defining the `JINJA_CONTEXT_ADDONS` in your superset configuration
@@ -94,7 +97,7 @@ There is a special ``_filters`` parameter which can be used to test filters used
```sql
SELECT action, count(*) as times
FROM logs
WHERE action in {{ filter_values('action_type'))|where_in }}
WHERE action in {{ filter_values('action_type')|where_in }}
GROUP BY action
```
@@ -346,6 +349,78 @@ Here's a concrete example:
order by lineage, level
```
**Time Filter**
The `{{ get_time_filter() }}` macro returns the time filter applied to a specific column. This is useful if you want
to handle time filters inside the virtual dataset, as by default the time filter is placed on the outer query. This can
considerably improve performance, as many databases and query engines are able to optimize the query better
if the temporal filter is placed on the inner query, as opposed to the outer query.
The macro takes the following parameters:
- `column`: Name of the temporal column. Leave undefined to reference the time range from a Dashboard Native Time Range
filter (when present).
- `default`: The default value to fall back to if the time filter is not present, or has the value `No filter`
- `target_type`: The target temporal type as recognized by the target database (e.g. `TIMESTAMP`, `DATE` or
`DATETIME`). If `column` is defined, the format will default to the type of the column. This is used to produce
the format of the `from_expr` and `to_expr` properties of the returned `TimeFilter` object.
- `strftime`: format using the `strftime` method of `datetime` for custom time formatting.
([see docs for valid format codes](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes)).
When defined `target_type` will be ignored.
- `remove_filter`: When set to true, mark the filter as processed, removing it from the outer query. Useful when a
filter should only apply to the inner query.
The return type has the following properties:
- `from_expr`: the start of the time filter (if any)
- `to_expr`: the end of the time filter (if any)
- `time_range`: The applied time range
Here's a concrete example using the `logs` table from the Superset metastore:
```
{% set time_filter = get_time_filter("dttm", remove_filter=True) %}
{% set from_expr = time_filter.from_expr %}
{% set to_expr = time_filter.to_expr %}
{% set time_range = time_filter.time_range %}
SELECT
*,
'{{ time_range }}' as time_range
FROM logs
{% if from_expr or to_expr %}WHERE 1 = 1
{% if from_expr %}AND dttm >= {{ from_expr }}{% endif %}
{% if to_expr %}AND dttm < {{ to_expr }}{% endif %}
{% endif %}
```
Assuming we are creating a table chart with a simple `COUNT(*)` as the metric with a time filter `Last week` on the
`dttm` column, this would render the following query on Postgres (note the formatting of the temporal filters, and
the absence of time filters on the outer query):
```
SELECT COUNT(*) AS count
FROM
(SELECT *,
'Last week' AS time_range
FROM public.logs
WHERE 1 = 1
AND dttm >= TO_TIMESTAMP('2024-08-27 00:00:00.000000', 'YYYY-MM-DD HH24:MI:SS.US')
AND dttm < TO_TIMESTAMP('2024-09-03 00:00:00.000000', 'YYYY-MM-DD HH24:MI:SS.US')) AS virtual_table
ORDER BY count DESC
LIMIT 1000;
```
When using the `default` parameter, the templated query can be simplified, as the endpoints will always be defined
(to use a fixed time range, you can also use something like `default="2024-08-27 : 2024-09-03"`)
```
{% set time_filter = get_time_filter("dttm", default="Last week", remove_filter=True) %}
SELECT
*,
'{{ time_filter.time_range }}' as time_range
FROM logs
WHERE
dttm >= {{ time_filter.from_expr }}
AND dttm < {{ time_filter.to_expr }}
```
**Datasets**
It's possible to query physical and virtual datasets using the `dataset` macro. This is useful if you've defined computed columns and metrics on your datasets, and want to reuse the definition in adhoc SQL Lab queries.

View File

@@ -26,9 +26,9 @@ More references:
Here's a list of repositories that contain Superset-related packages:
- [apache/superset](https://github.com/apache/superset)
is the main repository containing the `apache_superset` Python package
is the main repository containing the `apache-superset` Python package
distributed on
[pypi](https://pypi.org/project/apache_superset/). This repository
[pypi](https://pypi.org/project/apache-superset/). This repository
also includes Superset's main TypeScript/JavaScript bundles and react apps under
the [superset-frontend](https://github.com/apache/superset/tree/master/superset-frontend)
folder.

View File

@@ -6,13 +6,13 @@ version: 1
# Setting up a Development Environment
The documentation in this section is a bit of a patchwork of knowledge representing the
multitude of ways that exist to run Superset (`docker-compose`, just "docker", on "metal", using
multitude of ways that exist to run Superset (`docker compose`, just "docker", on "metal", using
a Makefile).
:::note
Now we have evolved to recommend and support `docker-compose` more actively as the main way
Now we have evolved to recommend and support `docker compose` more actively as the main way
to run Superset for development and preserve your sanity. **Most people should stick to
the first few sections - ("Fork & Clone", "docker-compose" and "Installing Dev Tools")**
the first few sections - ("Fork & Clone", "docker compose" and "Installing Dev Tools")**
:::
## Fork and Clone
@@ -27,12 +27,14 @@ git clone git@github.com:your-username/superset.git
cd superset
```
## docker-compose (recommended!)
## docker compose (recommended!)
Setting things up to squeeze an "hello world" into any part of Superset should be as simple as
Setting things up to squeeze a "hello world" into any part of Superset should be as simple as
```bash
docker-compose up
# getting docker compose to fire up services, and rebuilding if some docker layers have changed
# using the `--build` suffix may be slower and optional if layers like py dependencies haven't changed
docker compose up --build
```
Note that:
@@ -45,7 +47,7 @@ Note that:
- **Postgres** as the metadata database and to store example datasets, charts and dashboards which
should be populated upon startup
- **Redis** as the message queue for our async backend and caching backend
- It'll load up examples into the database upon first startup
- It'll load up examples into the database upon the first startup
- all other details and pointers available in
[docker-compose.yml](https://github.com/apache/superset/blob/master/docker-compose.yml)
- The local repository is mounted within the services, meaning updating
@@ -53,23 +55,61 @@ Note that:
- Superset is served at localhost:8088/
- You can login with admin/admin
:::note
Installing and building Node modules for Apache Superset inside `superset-node` can take a
significant amount of time. This is normal due to the size of the dependencies. Please be
patient while the process completes, as long wait times do not indicate an issue with your setup.
If delays seem excessive, check your internet connection or system resources.
:::
:::caution
Since `docker-compose` is primarily designed to run a set of containers on **a single host**
Since `docker compose` is primarily designed to run a set of containers on **a single host**
and can't credibly support **high availability** as a result, we do not support nor recommend
using our `docker-compose` constructs to support production-type use-cases. For single host
using our `docker compose` constructs to support production-type use-cases. For single host
environments, we recommend using [minikube](https://minikube.sigs.k8s.io/docs/start/) along
our [installing on k8s](https://superset.apache.org/docs/installation/running-on-kubernetes)
documentation.
configured to be secure.
:::
### Supported environment variables
Affecting the Docker build process:
- **SUPERSET_BUILD_TARGET (default=dev):** which --target to build, either `lean` or `dev` are commonly used
- **INCLUDE_FIREFOX (default=false):** whether to include the Firefox headless browser in the build
- **INCLUDE_CHROMIUM (default=false):** whether to include the Firefox headless browser in the build
- **BUILD_TRANSLATIONS(default=false):** whether to compile the translations from the .po files available
For more env vars that affect your configuration, see this
[superset_config.py](https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py)
used in the `docker compose` context to assign env vars to the superset configuration.
### Nuking the postgres database
At times, it's possible to end up with your development database in a bad state, it's
common while switching branches that contain migrations for instance, where the database
version stamp that `alembic` manages is no longer available after switching branch.
In that case, the easy solution is to nuke the postgres db and start fresh. Note that the full
state of the database will be gone after doing this, so be cautious.
```bash
# first stop docker-compose if it's running
docker-compose down
# delete the volume containing the database
docker volume rm superset_db_home
# restart docker-compose, which will init a fresh database and load examples
docker-compose up
```
## Installing Development Tools
:::note
While docker-compose simplifies a lot of the setup, there are still
While `docker compose` simplifies a lot of the setup, there are still
many things you'll want to set up locally to power your IDE, and things like
**commit hooks**, **linters**, and **test-runners**. Note that you can do these
things inside docker images with commands like `docker-compose exec superset_app bash` for
things inside docker images with commands like `docker compose exec superset_app bash` for
instance, but many people like to run that tooling from their host.
:::
@@ -92,13 +132,55 @@ To install run the following:
pre-commit install
```
A series of checks will now run when you make a git commit.
This will install the hooks in your local repository. From now on, a series of checks will
automatically run whenever you make a Git commit.
## Alternatives to docker-compose
#### Running Pre-commit Manually
You can also run the pre-commit checks manually in various ways:
- **Run pre-commit on all files (same as CI):**
To run the pre-commit checks across all files in your repository, use the following command:
```bash
pre-commit run --all-files
```
This is the same set of checks that will run during CI, ensuring your changes meet the project's standards.
- **Run pre-commit on a specific file:**
If you want to check or fix a specific file, you can do so by specifying the file path:
```bash
pre-commit run --files path/to/your/file.py
```
This will only run the checks on the file(s) you specify.
- **Run a specific pre-commit check:**
To run a specific check (hook) across all files or a particular file, use the following command:
```bash
pre-commit run <hook_id> --all-files
```
Or for a specific file:
```bash
pre-commit run <hook_id> --files path/to/your/file.py
```
Replace `<hook_id>` with the ID of the specific hook you want to run. You can find the list
of available hooks in the `.pre-commit-config.yaml` file.
## Alternatives to `docker compose`
:::caution
This part of the documentation is a patchwork of information related to setting up
development environments without `docker-compose` and are documented/supported to varying
development environments without `docker compose` and is documented/supported to varying
degrees. It's been difficult to maintain this wide array of methods and insure they're
functioning across environments.
:::
@@ -108,7 +190,7 @@ functioning across environments.
#### OS Dependencies
Make sure your machine meets the [OS dependencies](https://superset.apache.org/docs/installation/pypi#os-dependencies) before following these steps.
You also need to install MySQL or [MariaDB](https://mariadb.com/downloads).
You also need to install MySQL.
Ensure that you are using Python version 3.9, 3.10 or 3.11, then proceed with:
@@ -138,11 +220,11 @@ superset load-examples
# Start the Flask dev web server from inside your virtualenv.
# Note that your page may not have CSS at this point.
# See instructions below how to build the front-end assets.
# See instructions below on how to build the front-end assets.
superset run -p 8088 --with-threads --reload --debugger --debug
```
Or you can install via our Makefile
Or you can install it via our Makefile
```bash
# Create a virtual environment and activate it (recommended)
@@ -160,7 +242,7 @@ $ make pre-commit
```
**Note: the FLASK_APP env var should not need to be set, as it's currently controlled
via `.flaskenv`, however if needed, it should be set to `superset.app:create_app()`**
via `.flaskenv`, however, if needed, it should be set to `superset.app:create_app()`**
If you have made changes to the FAB-managed templates, which are not built the same way as the newer, React-powered front-end assets, you need to start the app without the `--with-threads` argument like so:
`superset run -p 8088 --reload --debugger --debug`
@@ -173,19 +255,19 @@ If you add a new requirement or update an existing requirement (per the `install
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install -r requirements/development.txt
$ pip-compile-multi --no-upgrade
$ ./scripts/uv-pip-compile.sh
```
When upgrading the version number of a single package, you should run `pip-compile-multi` with the `-P` flag:
When upgrading the version number of a single package, you should run `./scripts/uv-pip-compile.sh` with the `-P` flag:
```bash
$ pip-compile-multi -P my-package
$ ./scripts/uv-pip-compile.sh -P some-package-to-upgrade
```
To bring all dependencies up to date as per the restrictions defined in `setup.py` and `requirements/*.in`, run pip-compile-multi` without any flags:
To bring all dependencies up to date as per the restrictions defined in `setup.py` and `requirements/*.in`, run `./scripts/uv-pip-compile.sh --upgrade`
```bash
$ pip-compile-multi
$ ./scripts/uv-pip-compile.sh --upgrade
```
This should be done periodically, but it is recommended to do thorough manual testing of the application to ensure no breaking changes have been introduced that aren't caught by the unit and integration tests.
@@ -225,7 +307,7 @@ Frontend assets (TypeScript, JavaScript, CSS, and images) must be compiled in or
First, be sure you are using the following versions of Node.js and npm:
- `Node.js`: Version 18
- `Node.js`: Version 20
- `npm`: Version 10
We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage your node environment:
@@ -263,7 +345,7 @@ cd superset-frontend
npm ci
```
Note that Superset uses [Scarf](https://docs.scarf.sh) to capture telemetry/analytics about versions being installed, including the `scarf-js` npm package and an analytics pixel. As noted elsewhere in this documentation, Scarf gathers aggregated stats for the sake of security/release strategy, and does not capture/retain PII. [You can read here](https://docs.scarf.sh/package-analytics/) about the `scarf-js` package, and various means to opt out of it, but you can opt out of the npm package _and_ the pixel by setting the `SCARF_ANALYTICS` environment variable to `false` or opt out of the pixel by adding this setting in `superset-frontent/package.json`:
Note that Superset uses [Scarf](https://docs.scarf.sh) to capture telemetry/analytics about versions being installed, including the `scarf-js` npm package and an analytics pixel. As noted elsewhere in this documentation, Scarf gathers aggregated stats for the sake of security/release strategy and does not capture/retain PII. [You can read here](https://docs.scarf.sh/package-analytics/) about the `scarf-js` package, and various means to opt out of it, but you can opt out of the npm package _and_ the pixel by setting the `SCARF_ANALYTICS` environment variable to `false` or opt out of the pixel by adding this setting in `superset-frontent/package.json`:
```json
// your-package/package.json
@@ -291,7 +373,7 @@ Error: ENOSPC: System limit for number of file watchers reached
```
The error is thrown because the number of files monitored by the system has reached the limit.
You can address this this error by increasing the number of inotify watchers.
You can address this error by increasing the number of inotify watchers.
The current value of max watches can be checked with:
@@ -302,13 +384,13 @@ cat /proc/sys/fs/inotify/max_user_watches
Edit the file `/etc/sysctl.conf` to increase this value.
The value needs to be decided based on the system memory [(see this StackOverflow answer for more context)](https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux).
Open the file in editor and add a line at the bottom specifying the max watches values.
Open the file in an editor and add a line at the bottom specifying the max watches values.
```bash
fs.inotify.max_user_watches=524288
```
Save the file and exit editor.
Save the file and exit the editor.
To confirm that the change succeeded, run the following command to load the updated value of max_user_watches from `sysctl.conf`:
```bash
@@ -406,97 +488,124 @@ pre-commit install
A series of checks will now run when you make a git commit.
Alternatively it is possible to run pre-commit via tox:
```bash
tox -e pre-commit
```
Or by running pre-commit manually:
```bash
pre-commit run --all-files
```
## Linting
### Python
See [how tos](/docs/contributing/howtos#linting)
We use [Pylint](https://pylint.org/) for linting which can be invoked via:
## GitHub Actions and `act`
:::tip
`act` compatibility of Superset's GHAs is not fully tested. Running `act` locally may or may not
work for different actions, and may require fine tunning and local secret-handling.
For those more intricate GHAs that are tricky to run locally, we recommend iterating
directly on GHA's infrastructure, by pushing directly on a branch and monitoring GHA logs.
For more targetted iteration, see the `gh workflow run --ref {BRANCH}` subcommand of the GitHub CLI.
:::
For automation and CI/CD, Superset makes extensive use of GitHub Actions (GHA). You
can find all of the workflows and other assets under the `.github/` folder. This includes:
- running the backend unit test suites (`tests/`)
- running the frontend test suites (`superset-frontend/src/**.*.test.*`)
- running our Cypress end-to-end tests (`superset-frontend/cypress-base/`)
- linting the codebase, including all Python, Typescript and Javascript, yaml and beyond
- checking for all sorts of other rules conventions
When you open a pull request (PR), the appropriate GitHub Actions (GHA) workflows will
automatically run depending on the changes in your branch. It's perfectly reasonable
(and required!) to rely on this automation. However, the downside is that it's mostly an
all-or-nothing approach and doesn't provide much control to target specific tests or
iterate quickly.
At times, it may be more convenient to run GHA workflows locally. For that purpose
we use [act](https://github.com/nektos/act), a tool that allows you to run GitHub Actions (GHA)
workflows locally. It simulates the GitHub Actions environment, enabling developers to
test and debug workflows on their local machines before pushing changes to the repository. More
on how to use it in the next section.
:::note
In both GHA and `act`, we can run a more complex matrix for our tests, executing against different
database engines (PostgreSQL, MySQL, SQLite) and different versions of Python.
This enables us to ensure compatibility and stability across various environments.
:::
### Using `act`
First, install `act` -> https://nektosact.com/
To list the workflows, simply:
```bash
# for python
tox -e pylint
act --list
```
In terms of best practices please avoid blanket disabling of Pylint messages globally (via `.pylintrc`) or top-level within the file header, albeit there being a few exceptions. Disabling should occur inline as it prevents masking issues and provides context as to why said message is disabled.
Additionally, the Python code is auto-formatted using [Black](https://github.com/python/black) which
is configured as a pre-commit hook. There are also numerous [editor integrations](https://black.readthedocs.io/en/stable/integrations/editors.html)
### TypeScript
To run a specific workflow:
```bash
cd superset-frontend
npm ci
# run eslint checks
npm run eslint -- .
# run tsc (typescript) checks
npm run type
act pull_request --job {workflow_name} --secret GITHUB_TOKEN=$GITHUB_TOKEN --container-architecture linux/amd64
```
If using the eslint extension with vscode, put the following in your workspace `settings.json` file:
In the example above, notice that:
- we target a specific workflow, using `--job`
- we pass a secret using `--secret`, as many jobs require read access (public) to the repo
- we simulate a `pull_request` event by specifying it as the first arg,
similarly, we could simulate a `push` event or something else
- we specify `--container-architecture`, which tends to emulate GHA more reliably
```json
"eslint.workingDirectories": [
"superset-frontend"
]
```
:::note
`act` is a rich tool that offers all sorts of features, allowing you to simulate different
events (pull_request, push, ...), semantics around passing secrets where required and much
more. For more information, refer to [act's documentation](https://nektosact.com/)
:::
:::note
Some jobs require secrets to interact with external systems and accounts that you may
not have in your possession. In those cases you may have to rely on remote CI or parameterize the
job further to target a different environment/sandbox or your own alongside the related
secrets.
:::
---
## Testing
### Python Testing
All python tests are carried out in [tox](https://tox.readthedocs.io/en/latest/index.html)
a standardized testing framework.
All python tests can be run with any of the tox [environments](https://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via,
#### Unit Tests
For unit tests located in `tests/unit_tests/`, it's usually easy to simply run the script locally using:
```bash
tox -e <environment>
pytest tests/unit_tests/*
```
For example,
#### Integration Tests
For more complex pytest-defined integration tests (not to be confused with our end-to-end Cypress tests), many tests will require having a working test environment. Some tests require a database, Celery, and potentially other services or libraries installed.
### Running Tests with `act`
To run integration tests locally using `act`, ensure you have followed the setup instructions from the [GitHub Actions and `act`](#github-actions-and-act) section. You can run specific workflows or jobs that include integration tests. For example:
```bash
tox -e py38
act --job test-python-38 --secret GITHUB_TOKEN=$GITHUB_TOKEN --event pull_request --container-architecture linux/amd64
```
Alternatively, you can run all tests in a single file via,
#### Running locally using a test script
```bash
tox -e <environment> -- tests/test_file.py
```
or for a specific test via,
```bash
tox -e <environment> -- tests/test_file.py::TestClassName::test_method_name
```
Note that the test environment uses a temporary directory for defining the
SQLite databases which will be cleared each time before the group of test
commands are invoked.
There is also a utility script included in the Superset codebase to run Python integration tests. The [readme can be found here](https://github.com/apache/superset/tree/master/scripts/tests).
There is also a utility script included in the Superset codebase to run python integration tests. The [readme can be
found here](https://github.com/apache/superset/tree/master/scripts/tests)
To run all integration tests for example, run this script from the root directory:
To run all integration tests, for example, run this script from the root directory:
```bash
scripts/tests/run.sh
```
You can run unit tests found in './tests/unit_tests' for example with pytest. It is a simple way to run an isolated test that doesn't need any database setup
You can run unit tests found in `./tests/unit_tests` with pytest. It is a simple way to run an isolated test that doesn't need any database setup:
```bash
pytest ./link_to_test.py
@@ -519,7 +628,7 @@ npm run test -- path/to/file.js
### Integration Testing
We use [Cypress](https://www.cypress.io/) for integration tests. Tests can be run by `tox -e cypress`. To open Cypress and explore tests first setup and run test server:
We use [Cypress](https://www.cypress.io/) for integration tests. To open Cypress and explore tests first setup and run test server:
```bash
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
@@ -565,14 +674,14 @@ As an alternative you can use docker compose environment for testing:
Make sure you have added below line to your /etc/hosts file:
`127.0.0.1 db`
If you already have launched Docker environment please use the following command to assure a fresh database instance:
If you already have launched Docker environment please use the following command to ensure a fresh database instance:
`docker compose down -v`
Launch environment:
`CYPRESS_CONFIG=true docker compose up`
`CYPRESS_CONFIG=true docker compose up --build`
It will serve backend and frontend on port 8088.
It will serve the backend and frontend on port 8088.
Run Cypress tests:
@@ -609,12 +718,12 @@ For debugging locally using VSCode, you can configure a launch configuration fil
}
```
#### Raw Docker (without docker-compose)
#### Raw Docker (without `docker compose`)
Follow these instructions to debug the Flask app running inside a docker container. Note that
this will run a barebones Superset web server,
First add the following to the ./docker-compose.yaml file
First, add the following to the ./docker-compose.yaml file
```diff
superset:
@@ -638,7 +747,7 @@ superset:
Start Superset as usual
```bash
docker compose up
docker compose up --build
```
Install the required libraries and packages to the docker container
@@ -728,7 +837,7 @@ See (set capabilities for a container)[https://kubernetes.io/docs/tasks/configur
Once the pod is running as root and has the SYS_PTRACE capability it will be able to debug the Flask app.
You can follow the same instructions as in the docker-compose. Enter the pod and install the required library and packages; gdb, netstat and debugpy.
You can follow the same instructions as in `docker compose`. Enter the pod and install the required library and packages; gdb, netstat and debugpy.
Often in a Kubernetes environment nodes are not addressable from outside the cluster. VSCode will thus be unable to remotely connect to port 5678 on a Kubernetes node. In order to do this you need to create a tunnel that port forwards 5678 to your local machine.
@@ -736,11 +845,11 @@ Often in a Kubernetes environment nodes are not addressable from outside the clu
kubectl port-forward pod/superset-<some random id> 5678:5678
```
You can now launch your VSCode debugger with the same config as above. VSCode will connect to to 127.0.0.1:5678 which is forwarded by kubectl to your remote kubernetes POD.
You can now launch your VSCode debugger with the same config as above. VSCode will connect to 127.0.0.1:5678 which is forwarded by kubectl to your remote kubernetes POD.
### Storybook
Superset includes a [Storybook](https://storybook.js.org/) to preview the layout/styling of various Superset components, and variations thereof. To open and view the Storybook:
Superset includes a [Storybook](https://storybook.js.org/) to preview the layout/styling of various Superset components and variations thereof. To open and view the Storybook:
```bash
cd superset-frontend
@@ -890,7 +999,7 @@ To fix it:
from alembic import op
```
Alternatively you may also run `superset db merge` to create a migration script
Alternatively, you may also run `superset db merge` to create a migration script
just for merging the heads.
```bash

Some files were not shown because too many files have changed in this diff Show More