Compare commits

...

234 Commits

Author SHA1 Message Date
Evan Rusackas
b099e17380 chore(translations): extracting new translation strings 2024-08-26 15:18:56 -06:00
Evan Rusackas
d65d3dce10 type fixes 2024-08-26 14:38:31 -06:00
Evan Rusackas
4861a10733 Details/links on Database deletion 2024-08-26 12:46:50 -06:00
Evan Rusackas
f846e88243 modal always centered (for better scrolling) 2024-08-26 12:46:29 -06:00
Evan Rusackas
888b77d4de dataset deletion modal 2024-08-26 09:59:26 -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
Avinton Japan
5b79752e5d fix: Add Japanese Translations (#29567)
Co-authored-by: superset <superset@superset.com>
2024-07-18 22:02:17 +02:00
Geido
1e412a8711 refactor(Dashboard): Fetch dashboard screenshot via dedicated endpoint (#29272) 2024-07-18 14:46:14 +03:00
Elizabeth Thompson
6dbfe2aab9 feat: add slackv2 notification (#29264) 2024-07-17 15:14:32 -07:00
Geido
c0d46eb1af refactor(Tag): Upgrade Tag and TagsList to Ant Design 5 (#29593) 2024-07-17 23:19:39 +03:00
Đỗ Trọng Hải
ae6e58f918 feat(frontend/hooks): replace 3rd-party BroadcastChannel with native Web API equivalence (#29584)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-17 13:15:20 -06:00
Darwin Correa
3ade01f828 feat: custom values to sandbox iframe (#29590) 2024-07-17 13:14:51 -06:00
JUST.in DO IT
db3fa8df77 fix(sqllab): Show warning message when deprecated db is selected (#29607) 2024-07-17 10:37:58 -07:00
Oliver Schlüter
9da5be3d79 docs: fix code comment explaining local override (#29612) 2024-07-17 11:33:01 -06:00
Geido
245e1986c1 chore: Clear redux localStorage on logout (#29602) 2024-07-17 15:10:37 +03:00
Beto Dealmeida
b39952549f fix: sort schemas when uploading data (#29610) 2024-07-16 19:55:11 -04:00
Đỗ Trọng Hải
c30ca534a3 feat(build): uplift Lerna + replace insecure shortid with nanoid + uplift Yeoman-related packages + ESM-ize generator-superset (#29419)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-16 17:35:37 -06:00
Michael S. Molina
028e9c9294 chore: Updates CHANGELOG.md with 4.0.2 data (#29600) 2024-07-16 17:58:30 -03:00
Beto Dealmeida
b66c0f8d30 fix: schemas for upload API (#29604) 2024-07-16 15:53:25 -04:00
Genadi Saltikov
ec508a70a6 docs(Database): Clarify host value expected when running in docker (#28124)
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-07-16 14:51:38 -04:00
Sam Firke
00ab12ce9b fix(docs): fix broken indexed link from Google search (#28496) 2024-07-16 13:52:08 -04:00
Sam Firke
e90a9b3c87 chore(docs): create architecture page (#28481)
Co-authored-by: Evan Rusackas <evan@preset.io>
2024-07-16 13:51:02 -04:00
Evan Rusackas
d51a2add65 docs(contributing): removing old blog post link (#29603) 2024-07-16 12:01:21 -04:00
Daniel Vaz Gaspar
6eda6dfe06 docs: update CVEs for 4.0.2 (#29599)
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2024-07-16 13:19:05 +01:00
Đỗ Trọng Hải
462cda400b fix(storybook): fix broken Storybook stories during development (#29587)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-15 09:34:38 -06:00
Beto Dealmeida
fb15278f97 fix: catalog permission check (#29581) 2024-07-12 21:00:13 -04:00
Beto Dealmeida
a56f656a83 fix: small fixes to the catalog migration (#29579) 2024-07-12 20:49:30 -04:00
Beto Dealmeida
fa095a98ed fix: Trino get_columns (#29566) 2024-07-12 16:37:49 -04:00
Vitor Avila
0d352b4e06 fix(dataset import): Support catalog field during dataset import (#29576) 2024-07-12 17:14:47 -03:00
Emad Rad
84a1cd245c chore: cleanup documentation (#29552) 2024-07-11 14:39:23 -07:00
lindner-tj
3f6b7e2456 docs: Added Keycloak auth configuration (#29487)
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2024-07-11 15:10:23 -04:00
Beto Dealmeida
d535f3fe56 fix: make catalog migration lenient (#29549) 2024-07-11 15:10:02 -04:00
Vitor Avila
33b934cbb3 fix(Tags filter): Filter assets by tag ID (#29412) 2024-07-11 12:26:36 -03:00
Emad Rad
dd74757032 fix: babel_update script crash (#29548) 2024-07-10 12:27:57 -06:00
dependabot[bot]
33a31ca393 chore(deps): bump deck.gl from 8.9.22 to 9.0.20 in /superset-frontend (#29436)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 11:35:35 -06:00
Beto Dealmeida
67df4e3ce3 fix: prevent guest users from changing columns (#29530) 2024-07-10 12:26:51 -04:00
Harshit
1d35ca4bc5 fix(websocket): add error handling (#29538) 2024-07-10 18:21:52 +03:00
yuanoOo
17a4537215 docs(intro): Add OceanBase to the Supported Databases section of readme.md. (#29537) 2024-07-10 13:47:02 +02:00
Ayush Tripathi
ec5bbaa678 feat: add connector for CouchbaseDB (#29225)
Co-authored-by: ayush-couchbase <ayush.tripathi@couchbase.com>
2024-07-10 11:54:36 +03:00
dependabot[bot]
5aacf563d8 chore(deps): bump regenerator-runtime from 0.13.11 to 0.14.1 in /superset-frontend (#29437)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 16:30:31 -06:00
dependabot[bot]
1734eeaf0c chore(deps): bump deck.gl from 8.9.22 to 9.0.21 in /superset-frontend (#29529)
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-09 15:25:50 -06:00
Emad Rad
bea4882b04 docs: Add frontend dependency installation steps (#29510) 2024-07-09 15:25:27 -06:00
Geido
428b68f3e0 refactor: Upgrade Badge component to Ant Design 5 (#29124)
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2024-07-09 15:18:53 -06:00
Đỗ Trọng Hải
3bf89893dc feat(build): uplift Storybook to v8 (#29408)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-09 15:02:28 -06:00
Đỗ Trọng Hải
813775e719 chore(build): sync Jest version across plugins (#29414)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2024-07-09 13:20:13 -06:00
Maxime Beauchemin
e749efcb97 fix: refactor view error handling into a separate module (#29330) 2024-07-09 10:16:40 -07:00
Kamil Gabryjelski
3d0665183c fix: Table time comparison breaking after form data update (#29525) 2024-07-09 14:42:11 +02:00
yuanoOo
b4560d442b feat(database): Add OceanBase support (#29496) 2024-07-09 11:26:23 +02:00
Antonio Rivero
b481bc95b5 fix(plugins): Big Number with Time Comparison (#29520) 2024-07-08 16:57:52 -07:00
vasu-ram
dc16255605 docs: Add Vasu and Jamie to the Users List (#29486) 2024-07-08 16:03:49 -07:00
Antonio Rivero
9052f9fbb4 fix(plugins): Fix dashboard filter for Table and Big Number with Time Comparison (#29517) 2024-07-08 23:07:35 +02:00
Emad Rad
1682994b7e docs: cleanup markdown warnings (#29511) 2024-07-08 12:09:47 -07:00
Darwin Correa
9724c99341 feat: add support to NOT LIKE operator (#29384) 2024-07-08 11:58:28 -07:00
Clemens Wolff
ee72d6cdca feat: Enable customizing the docker admin password (#29498) 2024-07-08 11:01:40 -07:00
Daniel Vaz Gaspar
0e0028260f fix: add more disallowed pg functions (#29454) 2024-07-08 14:40:15 +01:00
Daniel Vaz Gaspar
241834205f fix: remove info from datasource access error (#29470) 2024-07-08 14:39:20 +01:00
Geido
e768796491 refactor: Upgrade Card to Ant Design 5 (#29389) 2024-07-08 13:24:10 +03:00
Edgar Ulloa
d89648147f feat(dashboard): add API endpoints for generating and downloading screenshots (#29187)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2024-07-08 12:52:23 +03:00
Vitor Avila
0f60701995 chore(Home): Avoid firing API requests when a custom Home is used (#29493) 2024-07-05 16:57:25 -03:00
soumitra-st
6d2b3b8698 fix: Enable explore button on SQL Lab view when connected to Apache Pinot as a database (#28364) 2024-07-05 09:32:42 -04:00
Vitor Avila
4e861cf86e chore(utils): Support select_columns with getUserOwnedObjects and split recentActivityObjs (#29459) 2024-07-04 13:03:13 -03:00
Maxime Beauchemin
145694d828 chore: run babel_update.sh to update po files (#29476) 2024-07-03 16:52:48 -06:00
Daniel
48f6fe6d69 chore(i18n): Translated charts and filters into Russian (#29377) 2024-07-03 13:37:37 -07:00
Tyler Eason
5231e86b6c docs(docker compose): fix step 4 list formatting (#29468) 2024-07-03 11:39:11 -06:00
mknadh
6b73b69b41 feat(CLI command): Apache Superset "Factory Reset" CLI command #27207 (#27221) 2024-07-03 09:20:05 -07:00
Michael S. Molina
35da6ac270 fix: Dashboard hangs when initial filters cannot be loaded (#29456) 2024-07-03 09:16:07 -03:00
Beto Dealmeida
d5c0506faa fix: OAuth2 in async DBs (#29461) 2024-07-02 21:12:07 -04:00
Joe Li
fb1f2c4f18 fix: re-add missing code from PR #28132 (#29446) 2024-07-02 16:58:55 -07:00
Ville Brofeldt
7f3c8efab0 fix(metastore-cache): import dao in methods (#29451) 2024-07-02 15:28:42 +03:00
dependabot[bot]
7bb7fc0f49 chore(deps): bump deck.gl from 9.0.12 to 9.0.20 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#29426)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 21:21:44 -06:00
dependabot[bot]
3449b8f9dc chore(deps-dev): update @types/lodash requirement from ^4.17.4 to ^4.17.6 in /superset-frontend/plugins/plugin-chart-handlebars (#29425)
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-01 17:02:44 -06:00
dependabot[bot]
7a0ae36c4a chore(deps): bump actions/checkout from 2 to 4 (#29434)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 15:16:11 -07:00
842 changed files with 49795 additions and 196467 deletions

View File

@@ -70,8 +70,9 @@ github:
- cypress-matrix (4, chrome)
- cypress-matrix (5, chrome)
- frontend-build
- pre-commit
- python-lint
- pre-commit (current)
- pre-commit (next)
- pre-commit (previous)
- test-mysql
- test-postgres (current)
- test-postgres (next)

2
.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

View File

@@ -46,7 +46,7 @@ body:
label: Superset version
options:
- master / latest-dev
- "4.0.1"
- "4.0.2"
- "3.1.3"
validations:
required: true

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"

View File

@@ -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

@@ -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

@@ -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

@@ -16,6 +16,9 @@ concurrency:
jobs:
pre-commit:
runs-on: ubuntu-22.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

@@ -29,7 +29,7 @@ jobs:
strategy:
matrix:
node-version: [18]
node-version: [20]
steps:
- uses: actions/checkout@v4

View File

@@ -26,7 +26,7 @@ jobs:
fail-fast: false
matrix:
browser: ["chrome"]
node: [18]
node: [20]
env:
SUPERSET_ENV: development
SUPERSET_CONFIG: tests.integration_tests.superset_test_config

View File

@@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
node: [18]
node: [20]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4

View File

@@ -35,10 +35,10 @@ jobs:
with:
persist-credentials: false
submodules: recursive
- name: Set up Node.js 18
- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20'
- name: Setup Python
uses: ./.github/actions/setup-backend/
- uses: actions/setup-java@v4

View File

@@ -12,6 +12,33 @@ concurrency:
cancel-in-progress: true
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
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/.*,
https://vkusvill.ru/
build-deploy:
name: Build & Deploy
runs-on: ubuntu-22.04

View File

@@ -66,20 +66,20 @@ jobs:
# Conditional checkout based on context
- name: Checkout for push or pull_request event
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive
- name: Checkout using ref (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.ref != ''
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
ref: ${{ github.event.inputs.ref }}
submodules: recursive
- name: Checkout using PR ID (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.pr_id != ''
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
persist-credentials: false
ref: refs/pull/${{ github.event.inputs.pr_id }}/merge
@@ -107,7 +107,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

View File

@@ -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
@@ -76,7 +76,7 @@ jobs:
- name: generator-superset unit tests
if: steps.check.outputs.frontend
working-directory: ./superset-frontend/packages/generator-superset
run: npx jest
run: npm run test
- name: Upload code coverage
uses: codecov/codecov-action@v4
with:

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

@@ -54,10 +54,13 @@ jobs:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
tags: true
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/
@@ -94,16 +97,38 @@ jobs:
--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-22.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

@@ -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

1
.gitignore vendored
View File

@@ -121,3 +121,4 @@ docker/*local*
# Jest test report
test-report.html
superset/static/stats/statistics.html

View File

@@ -58,6 +58,8 @@ repos:
rev: v3.1.0 # 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)

View File

@@ -42,3 +42,4 @@ under the License.
- [3.1.3](./CHANGELOG/3.1.3.md)
- [4.0.0](./CHANGELOG/4.0.0.md)
- [4.0.1](./CHANGELOG/4.0.1.md)
- [4.0.2](./CHANGELOG/4.0.2.md)

78
CHANGELOG/4.0.2.md Normal file
View File

@@ -0,0 +1,78 @@
<!--
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.0.2 (Wed Jun 26 14:26:58 2024 -0300)
**Fixes**
- [#28639](https://github.com/apache/superset/pull/28639) fix: adds the ability to disallow SQL functions per engine (@dpgaspar)
- [#29367](https://github.com/apache/superset/pull/29367) fix(explore): don't respect y-axis formatting (@justinpark)
- [#29345](https://github.com/apache/superset/pull/29345) fix(revert 27883): Excess padding in horizontal Bar charts (@michael-s-molina)
- [#29349](https://github.com/apache/superset/pull/29349) fix(explore): restored hidden field values has discarded (@justinpark)
- [#29346](https://github.com/apache/superset/pull/29346) fix: Cannot delete empty column inside a tab using the dashboard editor (@michael-s-molina)
- [#29314](https://github.com/apache/superset/pull/29314) fix: Remove recursive repr call (@jessie-ross)
- [#29301](https://github.com/apache/superset/pull/29301) fix(metastore-cache): prune before add (@villebro)
- [#29278](https://github.com/apache/superset/pull/29278) fix(sqllab): invalid empty state on switch tab (@justinpark)
- [#29291](https://github.com/apache/superset/pull/29291) fix: filters not updating with force update when caching is enabled (@ka-weihe)
- [#28744](https://github.com/apache/superset/pull/28744) fix(permalink): adding anchor to dashboard permalink generation (@fisjac)
- [#29260](https://github.com/apache/superset/pull/29260) fix: Custom SQL filter control (@michael-s-molina)
- [#29248](https://github.com/apache/superset/pull/29248) fix(sqllab): Do not strip comments when executing SQL statements (@john-bodley)
- [#28755](https://github.com/apache/superset/pull/28755) fix: Workaround for Pandas.DataFrame.to_csv bug (@john-bodley)
- [#29234](https://github.com/apache/superset/pull/29234) fix(Explore): Keep necessary form data to allow query mode switching (@rtexelm)
- [#29230](https://github.com/apache/superset/pull/29230) fix(sqllab): run previous state query (@justinpark)
- [#29119](https://github.com/apache/superset/pull/29119) fix(mixed-timeseries-plugin): Second query stacks stacked on top of first query series (@kgabryje)
- [#28932](https://github.com/apache/superset/pull/28932) fix(embedded): add missing GUEST_TOKEN_HEADER_NAME to bootstrap data (@hexcafe)
- [#29084](https://github.com/apache/superset/pull/29084) fix: Remove BASE_AXIS from pre-query (@john-bodley)
- [#29081](https://github.com/apache/superset/pull/29081) fix(explore): Drill to detail truncates int64 IDs (@justinpark)
- [#28771](https://github.com/apache/superset/pull/28771) fix(Mixed Chart Filter Control): Allow delete condition for `adhoc_filters_b` (@rtexelm)
- [#28772](https://github.com/apache/superset/pull/28772) fix(dashboard): unable to resize due to the overlapped droptarget (@justinpark)
- [#28750](https://github.com/apache/superset/pull/28750) fix: do not close database modal on mask click (@eschutho)
- [#28745](https://github.com/apache/superset/pull/28745) fix(reports): Update the element class to wait for when taking a screenshot (@Vitor-Avila)
- [#28749](https://github.com/apache/superset/pull/28749) fix(sqllab): Sort db selector options by the API order (@justinpark)
- [#28653](https://github.com/apache/superset/pull/28653) fix: Handling of column types for Presto, Trino, et al. (@john-bodley)
- [#28422](https://github.com/apache/superset/pull/28422) fix: Update migration logic in #27119 (@john-bodley)
- [#28349](https://github.com/apache/superset/pull/28349) fix: Add back description column to saved queries #12431 (@imancrsrk)
- [#28512](https://github.com/apache/superset/pull/28512) fix: improve df to records performance (@dpgaspar)
- [#28613](https://github.com/apache/superset/pull/28613) fix: revert fix(presto preview): re-enable schema previsualization for Trino/Presto table/schemas" (@john-bodley)
- [#28567](https://github.com/apache/superset/pull/28567) fix: Revert "fix: don't strip SQL comments in Explore (#28363)" (@michael-s-molina)
- [#28555](https://github.com/apache/superset/pull/28555) fix(explore): hide a control wrapped with StashFormDataContainer correctly (@justinpark)
- [#28507](https://github.com/apache/superset/pull/28507) fix(dashboard): invalid drop item on a tab (@justinpark)
- [#28432](https://github.com/apache/superset/pull/28432) fix: Time shifts calculation for ECharts plugins (@michael-s-molina)
- [#26782](https://github.com/apache/superset/pull/26782) fix(presto preview): re-enable schema previsualization for Trino/Presto table/schemas (@brouberol)
- [#28409](https://github.com/apache/superset/pull/28409) fix(ar-modal): updateNotificationSettings not updating state (@fisjac)
- [#28395](https://github.com/apache/superset/pull/28395) fix(dashboard): Change class name on last Droppable in a column (@rtexelm)
- [#28396](https://github.com/apache/superset/pull/28396) fix: type annotation breaking on py3.9 (@dpgaspar)
- [#28368](https://github.com/apache/superset/pull/28368) fix: Contribution percentages for ECharts plugins (@michael-s-molina)
- [#28386](https://github.com/apache/superset/pull/28386) fix: Scroll to top when selecting a global dashboard tab (@michael-s-molina)
- [#28312](https://github.com/apache/superset/pull/28312) fix(explore): hide advanced analytics for non temporal xaxis (@justinpark)
- [#28363](https://github.com/apache/superset/pull/28363) fix: don't strip SQL comments in Explore (@mistercrunch)
- [#28341](https://github.com/apache/superset/pull/28341) fix: Remedy logic for UpdateDatasetCommand uniqueness check (@john-bodley)
- [#28334](https://github.com/apache/superset/pull/28334) fix: Small tweaks for Line and Area chart migrations (ECharts) (@michael-s-molina)
- [#28266](https://github.com/apache/superset/pull/28266) fix: use pessimistic json encoder in SQL Lab (@mistercrunch)
- [#28113](https://github.com/apache/superset/pull/28113) fix: Rename legacy line and area charts (@john-bodley)
- [#28279](https://github.com/apache/superset/pull/28279) fix(sql_parse): Ignore USE SQL keyword when determining SELECT statement (@john-bodley)
- [#28322](https://github.com/apache/superset/pull/28322) fix(sql_parse): Add Apache Spark to SQLGlot dialect mapping (@john-bodley)
**Others**
- [#29360](https://github.com/apache/superset/pull/29360) chore: Rename Totals to Summary in table chart (@michael-s-molina)
- [#29249](https://github.com/apache/superset/pull/29249) test(Explorer): Fix minor errors in ExploreViewContainer syntax, add tests (@rtexelm)
- [#28876](https://github.com/apache/superset/pull/28876) chore(sqllab): Add logging for actions (@justinpark)

View File

@@ -16,7 +16,6 @@
specific language governing permissions and limitations
under the License.
-->
# CODE OF CONDUCT
*The following is copied for your convenience from <https://www.apache.org/foundation/policies/conduct.html>. If there's a discrepancy between the two, let us know or submit a PR to fix it.*
@@ -95,9 +94,9 @@ This statement thanks the following, on which it draws for content and inspirati
* [CouchDB Project Code of conduct](http://couchdb.apache.org/conduct.html)
* [Fedora Project Code of Conduct](http://fedoraproject.org/code-of-conduct)
* [Speak Up! Code of Conduct](http://speakup.io/coc.html)
* [Speak Up! Code of Conduct](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html)
* [Django Code of Conduct](https://www.djangoproject.com/conduct/)
* [Debian Code of Conduct](http://www.debian.org/vote/2014/vote_002)
* [Debian Code of Conduct](https://www.debian.org/vote/2014/vote_002)
* [Twitter Open Source Code of Conduct](https://github.com/twitter/code-of-conduct/blob/master/code-of-conduct.md)
* [Mozilla Code of Conduct/Draft](https://wiki.mozilla.org/Code_of_Conduct/Draft#Conflicts_of_Interest)
* [Python Diversity Appendix](https://www.python.org/community/diversity/)

View File

@@ -22,7 +22,7 @@ ARG PY_VER=3.10-slim-bookworm
# 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
FROM --platform=${BUILDPLATFORM} node:20-bullseye-slim AS superset-node
ARG NPM_BUILD_CMD="build"

View File

@@ -133,6 +133,7 @@ Here are some of the major database solutions that are supported:
<img src="https://superset.apache.org/img/databases/databend.png" alt="databend" border="0" width="200" />
<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" />
</p>
**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/configuration/databases).
@@ -168,10 +169,10 @@ how to set up a development environment.
- [Superset SIPs](https://github.com/orgs/apache/projects/170) - The status of Superset's SIPs (Superset Improvement Proposals) for both consensus and implementation status.
Understanding the Superset Points of View
- [The Case for Dataset-Centric Visualization](https://preset.io/blog/dataset-centric-visualization/)
- [Understanding the Superset Semantic Layer](https://preset.io/blog/understanding-superset-semantic-layer/)
- Getting Started with Superset
- [Superset in 2 Minutes using Docker Compose](https://superset.apache.org/docs/installation/docker-compose#installing-superset-locally-using-docker-compose)
- [Installing Database Drivers](https://superset.apache.org/docs/configuration/databases#installing-database-drivers)
@@ -189,8 +190,8 @@ Understanding the Superset Points of View
- [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/)
- [Introduction to the Superset API](https://preset.io/events/introduction-to-the-superset-api/)
- [Building a Database Connector for Superset](https://preset.io/events/2021-02-16-building-a-database-connector-for-superset/)
- [Introduction to the Superset API](https://preset.io/events/introduction-to-the-superset-api/)
- [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/)
@@ -200,6 +201,7 @@ Understanding the Superset Points of View
- [Superset API](https://superset.apache.org/docs/rest-api)
## Repo Activity
<a href="https://next.ossinsight.io/widgets/official/compose-last-28-days-stats?repo_id=39464018" target="_blank" align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-last-28-days-stats/thumbnail.png?repo_id=39464018&image_size=auto&color_scheme=dark" width="655" height="auto" />

View File

@@ -34,8 +34,11 @@ RUN apt-get install -y build-essential libssl-dev \
# Install nodejs for custom build
# https://nodejs.org/en/download/package-manager/
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - \
&& apt-get install -y nodejs
RUN set -eux; \
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
RUN chown superset /home/superset

View File

@@ -17,7 +17,9 @@
FROM python:3.10-slim-bookworm
RUN apt-get update -y
RUN apt-get install -y jq
RUN apt-get install -y \
git \
jq
COPY make_tarball_entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -115,7 +115,7 @@ source set_release_env.sh 1.5.1rc1 myid@apache.org
The script will output the exported variables. Here's example for 1.5.1rc1:
```
```env
-------------------------------
Set Release env variables
SUPERSET_VERSION=1.5.1
@@ -264,13 +264,13 @@ python changelog.py --previous_version 1.5.0 --current_version ${SUPERSET_GITHUB
Finally, bump the version number on `superset-frontend/package.json` (replace with whichever version is being released excluding the RC version):
```
```json
"version": "0.38.0"
```
Commit the change with the version number, then git tag the version with the release candidate and push to the branch:
```
```bash
# add changed files and commit
git add ...
git commit ...
@@ -366,7 +366,7 @@ The script will interactively ask for extra information needed to fill out the e
voting description, it will generate a passing, non passing or non conclusive email.
Here's an example:
```
```text
A List of people with +1 binding vote (ex: Max,Grace,Krist): Daniel,Alan,Max,Grace
A List of people with +1 non binding vote (ex: Ville): Ville
A List of people with -1 vote (ex: John):
@@ -505,7 +505,7 @@ We also need to update the Environment section of [ISSUE_TEMPLATE/bug-report.yml
Docker release with proper tags should happen automatically as version
tags get pushed to the `apache/superset` GitHub repository through this
[GitHub action](https://github.com/apache/superset/blob/master/.github/workflows/docker-release.yml)
[GitHub action](https://github.com/apache/superset/blob/master/.github/workflows/docker.yml)
Note that this GH action implements a `workflow_dispatch` trigger,
meaning that it can be triggered manually from the GitHub UI. If anything
@@ -516,16 +516,22 @@ reference), and whether to force the `latest` Docker tag on the
generated images.
### Npm Release
You might want to publish the latest @superset-ui release to npm
```bash
cd superset/superset-frontend
```
An automated GitHub action will run and generate a new tag, which will contain a version number provided as a parameter.
```bash
export GH_TOKEN={GITHUB_TOKEN}
npx lerna version {VERSION} --conventional-commits --create-release github --no-private --yes --message {COMMIT_MESSAGE}
```
This action will publish the specified version to npm registry.
```bash
npx lerna publish from-package --yes
```

View File

@@ -102,7 +102,7 @@ Some of the new features in this release are disabled by default. Each has a fea
This release includes **hundreds** of bugfixes and stability enhancements. Future major releases will have a continued emphasis on providing a stable and bug-free experience for the user.
# PR Highlights
Below is a highlight of the PRs included in this update. The full list is much longer, and can be found [here](apache/incubator-superset/CHANGELOG.md).
Below is a highlight of the PRs included in this update. The full list is much longer, and can be found [here](https://github.com/apache/superset/blob/master/CHANGELOG.md).
## User Experience
- Revert "refactor: Remove usages of reactable from TimeTable (#11046)" (#[11150](https://github.com/apache/incubator-superset/pull/11150))
@@ -222,4 +222,4 @@ Below is a highlight of the PRs included in this update. The full list is much l
## Complete Changelog
Backwards incompatible changes and can be found [here](../../UPDATING.md).
To see the complete changelog, see [apache/incubator-superset/CHANGELOG.md](https://github.com/apache/superset/blob/master/CHANGELOG.md)
To see the complete changelog, see [apache/superset/CHANGELOG.md](https://github.com/apache/superset/blob/master/CHANGELOG.md)

View File

@@ -137,6 +137,6 @@ when available.
**Changelog**
To see the complete changelog in this release, head to
[CHANGELOG.MD](https://github.com/apache/superset/blob/1.5/CHANGELOG/1.5.0.md).
[CHANGELOG.MD](https://github.com/apache/superset/blob/master/CHANGELOG/1.5.0.md).
As mentioned earlier, this release has a MASSIVE amount of bug fixes. The full
changelog lists all of them!

View File

@@ -0,0 +1,131 @@
<!--
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.
-->
# Release Notes for Superset 4.1.0
Superset 4.1.0 brings a range of new features and quality of life improvements. This release is a minor version, meaning it doesn't include any breaking changes to ensure a seamless transition for our users. Here are some of the highlights of this release.
### Big Number With Time Period Updates
We released a [Big Number with Time Period Comparison](https://github.com/apache/superset/pull/26908) chart as part of Superset 4.0. With the latest update, there are now [color options](https://github.com/apache/superset/pull/27524) for comparisons. The chart now also uses [standardize controls](https://github.com/apache/superset/pull/27193) such that when switching charts will maintain the selected metrics. To enable the new chart, you'll need to enable the `CHART_PLUGINS_EXPERIMENTAL` feature flag.
<div>
<image src="media/big_number_chart.png" alt="Image" width="100%">
</div>
### Table with Time Comparison
Added functionality to do [table time comparisons](https://github.com/apache/superset/pull/28057) behind the `CHART_PLUGINS_EXPERIMENTAL` feature flag. This will help improve and facilitate efficient data analysis.
<div>
<image src="media/table_with_time.png" alt="Image" width="100%">
</div>
### New ECharts Versions
The new ECharts [Heatmap](https://github.com/apache/superset/pull/25353) has been added. Compared to the legacy Heatmap, it has more accurate percentage calculations, server side sorting to respect row limits, and a more interactive legend control that allows selecting a subset of values.
<div>
<image src="media/heatmap.png" alt="Image" width="100%">
</div>
We also added a new ECharts [Histogram](https://github.com/apache/superset/pull/28652) chart. The new chart will help visualize patterns, clusters, and outliers in the data and provides insights into its shape, central tendency, and spread.
<div>
<image src="media/histogram.png" alt="Image" width="100%">
</div>
A new Echarts [Sankey](https://github.com/apache/superset/pull/29329) chart now exists. The chart visually tracks the movement and transformation of values across system stages.
<div>
<image src="media/sankey.png" alt="Image" width="100%">
</div>
You can use the CLI command to migrate Area, Bubble, Line, Sankey, [Heatmap](https://github.com/apache/superset/pull/27771), and [Histogram](https://github.com/apache/superset/pull/28780) chart types but we'll add more as the ECharts migrations continue. Note that migrations for deprecated charts may be forced in upcoming major versions when the code is removed. Running migrations earlier will allow you to de-risk future upgrades while improving user experience.
```bash
Usage: superset viz-migrations [OPTIONS] COMMAND [ARGS]...
Migrates a viz from one type to another.
Commands:
downgrade Downgrades a viz to the previous version.
upgrade Upgrade a viz to the latest version.
```
Note: When migrating dashboards from one Superset instance to another (using import/export features or the Superset CLI), or restoring a backup of prior charts and dashboards, Superset will apply the existing migrations that are used during version upgrades. This will ensure that your charts and dashboards are using the latest and greatest charts that Superset officially supports. For any migration issues, feel free to [open a new issue](https://github.com/apache/superset/issues/new?assignees=&labels=bug&projects=&template=bug-report.yml) in the repo.
### Improved Upload Forms
We've made design changes to the [CSV](https://github.com/apache/superset/pull/27840), [Excel](https://github.com/apache/superset/pull/28105), and [Columnar](https://github.com/apache/superset/pull/28192
) upload modals to improve user experience and to be more performant. The new designs has the following goals:
- Improved error handling.
- Better backend parameter validation.
- More aligned with our other modal dialogs
#### CSV
<div>
<img src="media/csv_modal_1.png" alt="Image" width="25%">
<img src="media/csv_modal_2.png" alt="Image" width="25%">
<img src="media/csv_modal_3.png" alt="Image" width="25%">
<img src="media/csv_modal_4.png" alt="Image" width="25%">
</div>
#### Excel
<div>
<img src="media/excel_modal_1.png" alt="Image" width="25%">
<img src="media/excel_modal_2.png" alt="Image" width="25%">
<img src="media/excel_modal_3.png" alt="Image" width="25%">
<img src="media/excel_modal_4.png" alt="Image" width="25%">
</div>
#### Columnar
<div>
<img src="media/columnar_modal_1.png" alt="Image" width="33%">
<img src="media/columnar_modal_2.png" alt="Image" width="33%">
<img src="media/columnar_modal_3.png" alt="Image" width="33%">
</div>
### OAuth2 For Databases
You now have the ability to enable [OAuth2](https://github.com/apache/superset/pull/27631) for databases like BigQuery, Snowflake, Dremio, Databricks, Google Sheets, etc. When enabled, it will allow users to connect to Oauth2 enabled databases with their own credentials.
### Catalog Support For Databases
Added support for the [catalog heirachy](https://github.com/apache/superset/pull/28317) for databases that support it, such as [BigQuery (projects), Databricks, Presto, Snowflake, and Trino](https://github.com/apache/superset/pull/28416). Once enabled, users will see catalogs when selecting tables in [SQL Lab, datasets](https://github.com/apache/superset/pull/28376), and when setting up Data Access Roles
### Slack Upload Files V2 API Updates
As part of [[SIP-138] Proposal for Slack file upload V2 integration for Alerts and Reports](https://github.com/apache/superset/issues/29263) we now have support for Slack file upload files v2 API call. This feature is behind the feature flag `ALERT_REPORT_SLACK_V2` and also changes the Slack channel to a selector. You may also need to add the following scopes (`channels:read`, `group:read`) to your Slack bot to work.
<div>
<image src="media/slack_modal.png" alt="Image" width="100%">
</div>
### Total and Percentages In Tooltips For ECharts
Users can now see both the [total and percentage in tooltips](https://github.com/apache/superset/pull/27950) for ECharts.
<div>
<image src="media/tooltips.png" alt="Image" width="100%">
</div>
### Additional Metadata Bar To Dashboards
There is now a [metadata bar](https://github.com/apache/superset/pull/27857) added to the header of dashboards. This will now show viewers of the dashboard both the owners and last modified time of the dashboard.

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

View File

@@ -45,7 +45,7 @@ These features are **finished** but currently being tested. They are usable, but
- CACHE_IMPERSONATION
- CONFIRM_DASHBOARD_DIFF
- DRILL_TO_DETAIL
- DYNAMIC_PLUGINS: [(docs)](https://superset.apache.org/docs/configuration/running-on-kubernetes)
- DYNAMIC_PLUGINS
- ENABLE_SUPERSET_META_DB: [(docs)](https://superset.apache.org/docs/configuration/databases/#querying-across-databases)
- ESTIMATE_QUERY_COST
- GLOBAL_ASYNC_QUERIES [(docs)](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries)
@@ -70,7 +70,7 @@ These features flags are **safe for production**. They have been tested and will
### Flags retained for runtime configuration
- ALERTS_ATTACH_REPORTS
- ALLOW_ADHOC_SUBQUERY
- DASHBOARD_RBAC [(docs)](https://superset.apache.org/docs/using-superset/first-dashboard#manage-access-to-dashboards)
- DASHBOARD_RBAC [(docs)](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard#manage-access-to-dashboards)
- DATAPANEL_CLOSED_BY_DEFAULT
- DRUID_JOINS
- EMBEDDABLE_CHARTS

View File

@@ -30,23 +30,24 @@ Join our growing community!
- [Airbnb](https://github.com/airbnb)
- [Faasos](http://faasos.com/) [@shashanksingh]
- [Hostnfly](https://www.hostnfly.com/) [@alexisrosuel]
- [Lime](https://www.limebike.com/) [@cxmcc]
- [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/)
- [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]
### Gaming
- [Digit Game Studios](https://www.digitgaming.com/)
- [Popoko VM Games Studio](https://popoko.live)
### E-Commerce
@@ -54,7 +55,7 @@ Join our growing community!
- [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]
- [Fanatics](https://www.fanatics.com/) [@coderfender]
- [Fordeal](http://www.fordeal.com) [@Renkai]
- [GFG - Global Fashion Group](https://global-fashion-group.com) [@ksaagariconic]
- [HuiShouBao](http://www.huishoubao.com/) [@Yukinoshita-Yukino]
@@ -63,10 +64,10 @@ Join our growing community!
- [Rakuten Viki](https://www.viki.com)
- [Shopee](https://shopee.sg) [@xiaohanyu]
- [Shopkick](https://www.shopkick.com) [@LAlbertalli]
- [Tails.com](https://tails.com) [@alanmcruickshank]
- [Tails.com](https://tails.com/gb/) [@alanmcruickshank]
- [THE ICONIC](http://theiconic.com.au/) [@ksaagariconic]
- [Utair](https://www.utair.ru) [@utair-digital]
- [VkusVill](https://www.vkusvill.ru) [@ETselikov]
- [VkusVill](https://vkusvill.ru/) [@ETselikov]
- [Zalando](https://www.zalando.com) [@dmigo]
- [Zalora](https://www.zalora.com) [@ksaagariconic]
@@ -79,17 +80,17 @@ Join our growing community!
- [Caizin](https://caizin.com/) [@tejaskatariya]
- [Careem](https://www.careem.com/) [@SamraHanifCareem]
- [Cloudsmith](https://cloudsmith.io) [@alancarson]
- [CnOvit](http://www.cnovit.com/) [@xieshaohu]
- [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]
- [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)
- [Gavagai](https://gavagai.io) [@gavagai-corp]
- [GfK Data Lab](http://datalab.gfk.com) [@mherr]
- [GrowthSimple](https://growthsimple.ai/)
- [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/)
@@ -104,17 +105,14 @@ Join our growing community!
- [Peak AI](https://www.peak.ai/) [@azhar22k]
- [PeopleDoc](https://www.people-doc.com) [@rodo]
- [Preset, Inc.](https://preset.io)
- [Pronto Tools](http://www.prontotools.io) [@zkan]
- [PubNub](https://pubnub.com) [@jzucker2]
- [ReadyTech](https://www.readytech.io)
- [Reward Gateway](https://www.rewardgateway.com)
- [ScopeAI](https://www.getscopeai.com) [@iloveluce]
- [Showmax](https://tech.showmax.com) [@bobek]
- [source{d}](https://www.sourced.tech) [@marnovo]
- [Steamroot](https://streamroot.io/)
- [Showmax](https://showmax.com) [@bobek]
- [TechAudit](https://www.techaudit.info) [@ETselikov]
- [Tenable](https://www.tenable.com) [@dflionis]
- [Tentacle](https://public.tentaclecmi.com) [@jdclarke5]
- [Tentacle](https://tentaclecmi.com) [@jdclarke5]
- [timbr.ai](https://timbr.ai/) [@semantiDan]
- [Tobii](http://www.tobii.com/) [@dwa]
- [Tooploox](https://www.tooploox.com/) [@jakubczaplicki]
@@ -154,14 +152,13 @@ Join our growing community!
### Healthcare
- [Amino](https://amino.com) [@shkr]
- [Beans](https://www.beans.fi) [@kakoni]
- [Bluesquare](https://www.bluesquarehub.com/) [@madewulf]
- [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/)
- [REDCap Cloud](https://www.redcapcloud.com/)
- [TrustMedis](https://trustmedis.com) [@famasya]
- [TrustMedis](https://trustmedis.com/) [@famasya]
- [WeSure](https://www.wesure.cn/)
### HR / Staffing

View File

@@ -57,6 +57,8 @@ assists people when migrating to a new version.
translations inside the python package. This includes the .mo files needed by pybabel on the
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.
- [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.
### Potential Downtime
@@ -226,7 +228,8 @@ assists people when migrating to a new version.
- [19273](https://github.com/apache/superset/pull/19273): The `SUPERSET_CELERY_WORKERS` and `SUPERSET_WORKERS` config keys has been removed. Configure Celery directly using `CELERY_CONFIG` on Superset.
- [19231](https://github.com/apache/superset/pull/19231): The `ENABLE_REACT_CRUD_VIEWS` feature flag has been removed (permanently enabled). Any deployments which had set this flag to false will need to verify that the React views support their use case.
- [19230](https://github.com/apache/superset/pull/19230): The `ROW_LEVEL_SECURITY` feature flag has been removed (permanently enabled). Any deployments which had set this flag to false will need to verify that the presence of the Row Level Security feature does not interfere with their use case.
- [19168](https://github.com/apache/superset/pull/19168): Celery upgrade to 5.X resulted in breaking changes to its command line invocation. Please follow [these](https://docs.celeryq.dev/en/stable/whatsnew-5.2.html#step-1-adjust-your-command-line-invocation) instructions for adjustments. Also consider migrating you Celery config per [here](https://docs.celeryq.dev/en/stable/userguide/configuration.html#conf-old-settings-map).
- [19168](https://github.com/apache/superset/pull/19168): Celery upgrade to 5.X resulted in breaking changes to its command line invocation.
html#step-1-adjust-your-command-line-invocation) instructions for adjustments. Also consider migrating you Celery config per [here](https://docs.celeryq.dev/en/stable/userguide/configuration.html#conf-old-settings-map).
- [19142](https://github.com/apache/superset/pull/19142): The `VERSIONED_EXPORT` config key is now `True` by default.
- [19113](https://github.com/apache/superset/pull/19113): The `ENABLE_JAVASCRIPT_CONTROLS` config key has moved from an app config to a feature flag. Any deployments who overrode this setting will now need to override the feature flag from here onward.
- [19107](https://github.com/apache/superset/pull/19107): The `SQLLAB_BACKEND_PERSISTENCE` feature flag is now `True` by default, which enables persisting SQL Lab tabs in the backend instead of the browser's `localStorage`.
@@ -537,7 +540,7 @@ assists people when migrating to a new version.
- [8117](https://github.com/apache/superset/pull/8117): If you are
using `ENABLE_PROXY_FIX = True`, review the newly-introduced variable,
`PROXY_FIX_CONFIG`, which changes the proxy behavior in accordance with
[Werkzeug](https://werkzeug.palletsprojects.com/en/0.15.x/middleware/proxy_fix/)
Werkzeug.
- [8069](https://github.com/apache/superset/pull/8069): introduces
[MessagePack](https://github.com/msgpack/msgpack-python) and

View File

@@ -147,10 +147,11 @@ services:
disable: true
superset-node:
image: node:18
image: node:20
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
SCARF_ANALYTICS: "${SCARF_ANALYTICS:-}"
container_name: superset_node
command: ["/app/docker/docker-frontend.sh"]

View File

@@ -24,12 +24,16 @@ 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 --no-optional
echo "Running `npm install`"
npm install
echo "Running frontend"
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

@@ -37,7 +37,7 @@ Init Step ${1}/${STEP_CNT} [${2}] -- ${3}
EOF
}
ADMIN_PASSWORD="admin"
ADMIN_PASSWORD="${ADMIN_PASSWORD:-admin}"
# If Cypress run overwrite the password for admin and export env variables
if [ "$CYPRESS_CONFIG" == "true" ]; then
ADMIN_PASSWORD="general"
@@ -57,7 +57,7 @@ superset fab create-admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com \
--password $ADMIN_PASSWORD
--password "$ADMIN_PASSWORD"
echo_step "2" "Complete" "Setting up admin user"
# Create default roles and permissions
echo_step "3" "Starting" "Setting up roles and perms"

View File

@@ -74,7 +74,12 @@ DATA_CACHE_CONFIG = CACHE_CONFIG
class CeleryConfig:
broker_url = f"redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_CELERY_DB}"
imports = ("superset.sql_lab",)
imports = (
"superset.sql_lab",
"superset.tasks.scheduler",
"superset.tasks.thumbnails",
"superset.tasks.cache",
)
result_backend = f"redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_RESULTS_DB}"
worker_prefetch_multiplier = 1
task_acks_late = False

View File

@@ -18,7 +18,7 @@
#
# This is an example "local" configuration file. In order to set/override config
# options that ONLY apply to your local environment, simply copy/rename this file
# to docker/pythonpath/superset_config_docker.py
# to docker/pythonpath_dev/superset_config_docker.py
# It ends up being imported by docker/superset_config.py which is loaded by
# superset/config.py
#

View File

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

View File

@@ -77,6 +77,7 @@
"Guyana",
"Haiti",
"Honduras",
"Hungary",
"Iceland",
"India",
"Indonesia",

View File

@@ -251,15 +251,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

@@ -15,9 +15,9 @@ variables and objects exposed act as a public interface of the bulk of what you
to configure, alter and interface with. In this python module, you'll find all these
parameters, sensible defaults, as well as rich documentation in the form of comments
To configure your application, you need to create you own configuration module, which
To configure your application, you need to create your own configuration module, which
will allow you to override few or many of these parameters. Instead of altering the core module,
You'll want to define your own module (typically a file named `superset_config.py`.
you'll want to define your own module (typically a file named `superset_config.py`).
Add this file to your `PYTHONPATH` or create an environment variable
`SUPERSET_CONFIG_PATH` specifying the full path of the `superset_config.py`.
@@ -28,7 +28,7 @@ For example, if deploying on Superset directly on a Linux-based system where you
export SUPERSET_CONFIG_PATH=/app/superset_config.py
```
If you are using your own custom Dockerfile with official Superset image as base image,
If you are using your own custom Dockerfile with the official Superset image as base image,
then you can add your overrides as shown below:
```bash
@@ -36,7 +36,7 @@ COPY --chown=superset superset_config.py /app/
ENV SUPERSET_CONFIG_PATH /app/superset_config.py
```
Docker compose deployments handle application configuration differently using specific conventions..
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)
for details.
@@ -87,7 +87,7 @@ can be altered in your local `superset_config.py`. Administrators will want to r
to understand what can be configured locally as well as the default values in place.
Since `superset_config.py` acts as a Flask configuration module, it can be used to alter the
settings Flask itself, as well as Flask extensions that Superset bundles like
settings of Flask itself, as well as Flask extensions that Superset bundles like
`flask-wtf`, `flask-caching`, `flask-migrate`,
and `flask-appbuilder`. Each one of these extensions offers intricate configurability.
Flask App Builder, the web framework used by Superset, also offers many
@@ -95,15 +95,7 @@ configuration settings. Please consult the
[Flask App Builder Documentation](https://flask-appbuilder.readthedocs.org/en/latest/config.html)
for more information on how to configure it.
You'll want to change:
- `SECRET_KEY`: to a long random string
- `SQLALCHEMY_DATABASE_URI`: that by default points to sqlite database located at
~/.superset/superset.db
```
WTF_CSRF_EXEMPT_LIST = []
```
At the very least, you'll want to change `SECRET_KEY` and `SQLALCHEMY_DATABASE_URI`. Continue reading for more about each of these.
## Specifying a SECRET_KEY
@@ -321,7 +313,103 @@ 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.
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.
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
from flask_appbuilder.security.manager import AUTH_OID
from superset.security import SupersetSecurityManager
from flask_oidc import OpenIDConnect
from flask_appbuilder.security.views import AuthOIDView
from flask_login import login_user
from urllib.parse import quote
from flask_appbuilder.views import ModelView, SimpleFormView, expose
from flask import (
redirect,
request
)
import logging
class OIDCSecurityManager(SupersetSecurityManager):
def __init__(self, appbuilder):
super(OIDCSecurityManager, self).__init__(appbuilder)
if self.auth_type == AUTH_OID:
self.oid = OpenIDConnect(self.appbuilder.get_app)
self.authoidview = AuthOIDCView
class AuthOIDCView(AuthOIDView):
@expose('/login/', methods=['GET', 'POST'])
def login(self, flag=True):
sm = self.appbuilder.sm
oidc = sm.oid
@self.appbuilder.sm.oid.require_login
def handle_login():
user = sm.auth_user_oid(oidc.user_getfield('email'))
if user is None:
info = oidc.user_getinfo(['preferred_username', 'given_name', 'family_name', 'email'])
user = sm.add_user(info.get('preferred_username'), info.get('given_name'), info.get('family_name'),
info.get('email'), sm.find_role('Gamma'))
login_user(user, remember=False)
return redirect(self.appbuilder.get_url_for_index)
return handle_login()
@expose('/logout/', methods=['GET', 'POST'])
def logout(self):
oidc = self.appbuilder.sm.oid
oidc.logout()
super(AuthOIDCView, self).logout()
redirect_url = request.url_root.strip('/') + self.appbuilder.get_url_for_login
return redirect(
oidc.client_secrets.get('issuer') + '/protocol/openid-connect/logout?redirect_uri=' + quote(redirect_url))
```
Then add to your `superset_config.py` file:
```python
from keycloak_security_manager import OIDCSecurityManager
from flask_appbuilder.security.manager import AUTH_OID, AUTH_REMOTE_USER, AUTH_DB, AUTH_LDAP, AUTH_OAUTH
import os
AUTH_TYPE = AUTH_OID
SECRET_KEY: 'SomethingNotEntirelySecret'
OIDC_CLIENT_SECRETS = '/path/to/client_secret.json'
OIDC_ID_TOKEN_COOKIE_SECURE = False
OIDC_OPENID_REALM: '<myRealm>'
OIDC_INTROSPECTION_AUTH_METHOD: 'client_secret_post'
CUSTOM_SECURITY_MANAGER = OIDCSecurityManager
# Will allow user self registration, allowing to create Flask users from Authorized User
AUTH_USER_REGISTRATION = True
# The default user self registration role
AUTH_USER_REGISTRATION_ROLE = 'Public'
```
Store your client-specific OpenID information in a file called `client_secret.json`. Create this file in the same directory as `superset_config.py`:
```json
{
"<myOpenIDProvider>": {
"issuer": "https://<myKeycloakDomain>/realms/<myRealm>",
"auth_uri": "https://<myKeycloakDomain>/realms/<myRealm>/protocol/openid-connect/auth",
"client_id": "https://<myKeycloakDomain>",
"client_secret": "<myClientSecret>",
"redirect_uris": [
"https://<SupersetWebserver>/oauth-authorized/<myOpenIDProvider>"
],
"userinfo_uri": "https://<myKeycloakDomain>/realms/<myRealm>/protocol/openid-connect/userinfo",
"token_uri": "https://<myKeycloakDomain>/realms/<myRealm>/protocol/openid-connect/token",
"token_introspection_uri": "https://<myKeycloakDomain>/realms/<myRealm>/protocol/openid-connect/token/introspect"
}
}
```
## LDAP Authentication
FAB supports authenticating user credentials against an LDAP server.

View File

@@ -54,6 +54,7 @@ are compatible with Superset.
| [Azure MS SQL](/docs/configuration/databases#sql-server) | `pip install pymssql` | `mssql+pymssql://UserName@presetSQL:TestPassword@presetSQL.database.windows.net:1433/TestSchema` |
| [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/` |
| [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` |
@@ -64,6 +65,7 @@ are compatible with Superset.
| [IBM Db2](/docs/configuration/databases#ibm-db2) | `pip install ibm_db_sa` | `db2+ibm_db://` |
| [IBM Netezza Performance Server](/docs/configuration/databases#ibm-netezza-performance-server) | `pip install nzalchemy` | `netezza+nzpy://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
| [MySQL](/docs/configuration/databases#mysql) | `pip install mysqlclient` | `mysql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
| [OceanBase](/docs/configuration/databases#oceanbase) | `pip install oceanbase_py` | `oceanbase://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
| [Oracle](/docs/configuration/databases#oracle) | `pip install cx_Oracle` | `oracle://` |
| [PostgreSQL](/docs/configuration/databases#postgres) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
| [Presto](/docs/configuration/databases#presto) | `pip install pyhive` | `presto://` |
@@ -372,6 +374,23 @@ cockroachdb://root@{hostname}:{port}/{database}?sslmode=disable
```
#### Couchbase
The Couchbase's Superset connection is designed to support two services: Couchbase Analytics and Couchbase Columnar.
The recommended connector library for couchbase is
[couchbase-sqlalchemy](https://github.com/couchbase/couchbase-sqlalchemy).
```
pip install couchbase-sqlalchemy
```
The expected connection string is formatted as follows:
```
couchbase://{username}:{password}@{hostname}:{port}?truststorepath={certificate path}?ssl={true/false}
```
#### CrateDB
The recommended connector library for CrateDB is
@@ -988,6 +1007,19 @@ Here's the recommended connection string:
netezza+nzpy://{username}:{password}@{hostname}:{port}/{database}
```
#### OceanBase
The [sqlalchemy-oceanbase](https://pypi.org/project/oceanbase_py/) library is the recommended
way to connect to OceanBase through SQLAlchemy.
The connection string for OceanBase looks like this:
```
oceanbase://<User>:<Password>@<Host>:<Port>/<Database>
```
#### Ocient DB
The recommended connector library for Ocient is [sqlalchemy-ocient](https://pypi.org/project/sqlalchemy-ocient).
@@ -1035,6 +1067,11 @@ The expected connection string using username and password is formatted as follo
pinot://<username>:<password>@<pinot-broker-host>:<pinot-broker-port>/query/sql?controller=http://<pinot-controller-host>:<pinot-controller-port>/verify_ssl=true``
```
If you want to use explore view or joins, window functions, etc. then enable [multi-stage query engine](https://docs.pinot.apache.org/reference/multi-stage-engine).
Add below argument while creating database connection in Advanced -> Other -> ENGINE PARAMETERS
```
{"connect_args":{"use_multistage_engine":"true"}}
```
#### Postgres

View File

@@ -18,9 +18,8 @@ which can be joined by anyone):
- [Superset Community Calendar](https://superset.apache.org/community)
More references:
- [Comprehensive Tutorial for Contributing Code to Apache Superset](https://preset.io/blog/tutorial-contributing-code-to-apache-superset/)
- [Superset Wiki (code guidelines and additional resources)](https://github.com/apache/superset/wiki)
- [Superset Wiki (code guidelines and additional resources)](https://github.com/apache/superset/wiki)
## Orientation
@@ -37,7 +36,6 @@ Here's a list of repositories that contain Superset-related packages:
GitHub organization under which we manage Superset-related
small tools, forks and Superset-related experimental ideas.
## Types of Contributions
### Report Bug
@@ -88,7 +86,7 @@ text strings from Superset's UI. You can jump into the existing
language dictionaries at
`superset/translations/<language_code>/LC_MESSAGES/messages.po`, or
even create a dictionary for a new language altogether.
See [Translating](howtos#contribute-translations) for more details.
See [Translating](howtos#contributing-translations) for more details.
### Ask Questions

View File

@@ -34,7 +34,9 @@ Setting things up to squeeze an "hello world" into any part of Superset should b
```bash
docker-compose up
```
Note that:
- this will pull/build docker images and run a cluster of services, including:
- A Superset **Flask web server**, mounting the local python repo/code
- A Superset **Celery worker**, also mounting the local python repo/code
@@ -90,7 +92,50 @@ 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.
#### 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
@@ -106,7 +151,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:
@@ -223,7 +268,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:
@@ -287,22 +332,28 @@ If while using the above commands you encounter an error related to the limit of
```bash
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.
The current value of max watches can be checked with:
```bash
cat /proc/sys/fs/inotify/max_user_watches
```
Edit the file /etc/sysctl.conf to increase this value.
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.
```bash
fs.inotify.max_user_watches=524288
```
Save the file and exit editor.
To confirm that the change succeeded, run the following command to load the updated value of max_user_watches from sysctl.conf:
To confirm that the change succeeded, run the following command to load the updated value of max_user_watches from `sysctl.conf`:
```bash
sudo sysctl -p
```
@@ -314,14 +365,18 @@ The dev server by default starts at `http://localhost:9000` and proxies the back
So a typical development workflow is the following:
1. [run Superset locally](#flask-server) using Flask, on port `8088` — but don't access it directly,<br/>
```bash
# Install Superset and dependencies, plus load your virtual environment first, as detailed above.
superset run -p 8088 --with-threads --reload --debugger --debug
```
2. in parallel, run the Webpack dev server locally on port `9000`,<br/>
```bash
npm run dev-server
```
3. access `http://localhost:9000` (the Webpack server, _not_ Flask) in your web browser. This will use the hot-reloading front-end assets from the Webpack development server while redirecting back-end queries to Flask/Superset: your changes on Superset codebase — either front or back-end — will then be reflected live in the browser.
It's possible to change the Webpack server settings:
@@ -704,9 +759,9 @@ VSCode will not stop on breakpoints right away. We've attached to PID 6 however
### Debugging Server App in Kubernetes Environment
To debug Flask running in POD inside kubernetes cluster. You'll need to make sure the pod runs as root and is granted the SYS_TRACE capability.These settings should not be used in production environments.
To debug Flask running in POD inside a kubernetes cluster, you'll need to make sure the pod runs as root and is granted the SYS_TRACE capability.These settings should not be used in production environments.
```
```yaml
securityContext:
capabilities:
add: ["SYS_PTRACE"]
@@ -720,7 +775,7 @@ You can follow the same instructions as in the docker-compose. Enter the pod and
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.
```
```bash
kubectl port-forward pod/superset-<some random id> 5678:5678
```
@@ -801,7 +856,7 @@ Submissions will be considered for submission (or removal) on a case-by-case bas
The output should look like this:
```
```log
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running upgrade 1a1d627ebd8e -> 40a0a483dd12, add_metadata_column_to_annotation_model.py
@@ -821,7 +876,7 @@ Submissions will be considered for submission (or removal) on a case-by-case bas
The output should look like this:
```
```log
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running downgrade 40a0a483dd12 -> 1a1d627ebd8e, add_metadata_column_to_annotation_model.py

View File

@@ -12,7 +12,7 @@ A philosophy we would like to strongly encourage is
The purpose is to separate problem from possible solutions.
**Bug fixes:** If youre only fixing a small bug, its fine to submit a pull request right away but we highly recommend to file an issue detailing what youre fixing. This is helpful in case we dont accept that specific fix but want to keep track of the issue. Please keep in mind that the project maintainers reserve the rights to accept or reject incoming PRs, so it is better to separate the issue and the code to fix it from each other. In some cases, project maintainers may request you to create a separate issue from PR before proceeding.
**Bug fixes:** If youre only fixing a small bug, its fine to submit a pull request right away but we highly recommend filing an issue detailing what youre fixing. This is helpful in case we dont accept that specific fix but want to keep track of the issue. Please keep in mind that the project maintainers reserve the rights to accept or reject incoming PRs, so it is better to separate the issue and the code to fix it from each other. In some cases, project maintainers may request you to create a separate issue from PR before proceeding.
**Refactor:** For small refactors, it can be a standalone PR itself detailing what you are refactoring and why. If there are concerns, project maintainers may request you to create a `#SIP` for the PR before proceeding.
@@ -96,7 +96,6 @@ Finally, never submit a PR that will put master branch in broken state. If the P
- Project maintainers may contact the PR author if new issues are introduced by the PR.
- Project maintainers may revert your changes if a critical issue is found, such as breaking master branch CI.
## Managing Issues and PRs
To handle issues and PRs that are coming in, committers read issues/PRs and flag them with labels to categorize and help contributors spot where to take actions, as contributors usually have different expertises.
@@ -152,10 +151,8 @@ Should you decide that reverting is desirable, it is the responsibility of the C
- **Provide concise reproduction steps:** Ensure that the issue can be clearly understood and duplicated by the original author of the PR.
- **Put the revert through code review:** The revert must be approved by another committer.
## Design Guidelines
### Capitalization guidelines
#### Sentence case
@@ -197,12 +194,11 @@ Often a product page will have the same title as the objects it contains. In thi
- Queries that you save will appear on the Saved queries page
- Create custom queries in SQL Lab then create dashboards
#### \*\*Exceptions to sentence case:
#### \*\*Exceptions to sentence case
- Input labels, buttons and UI tabs are all caps
- User input values (e.g. column names, SQL Lab tab names) should be in their original case
## Programming Language Conventions
### Python

View File

@@ -88,7 +88,7 @@ yo @superset-ui/superset
After that the generator will ask a few questions (the defaults should be fine):
```
```bash
$ yo @superset-ui/superset
_-----_ ╭──────────────────────────╮
| | │ Welcome to the │
@@ -125,7 +125,7 @@ $ yo @superset-ui/superset
To build the viz plugin, run the following commands:
```
```bash
npm i --force
npm run build
```
@@ -133,7 +133,7 @@ npm run build
Alternatively, to run the viz plugin in development mode (=rebuilding whenever changes
are made), start the dev server with the following command:
```
```bash
npm run dev
```
@@ -399,7 +399,7 @@ tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN
You are now ready to attach a debugger to the process. Using VSCode you can configure a launch configuration file .vscode/launch.json like so.
```
```json
{
"version": "0.2.0",
"configurations": [
@@ -426,23 +426,23 @@ VSCode will not stop on breakpoints right away. We've attached to PID 6 however
### Debugging Server App in Kubernetes Environment
To debug Flask running in POD inside kubernetes cluster. You'll need to make sure the pod runs as root and is granted the SYS_TRACE capability.These settings should not be used in production environments.
To debug Flask running in POD inside a kubernetes cluster, you'll need to make sure the pod runs as root and is granted the `SYS_TRACE` capability. These settings should not be used in production environments.
```
```yaml
securityContext:
capabilities:
add: ["SYS_PTRACE"]
```
See (set capabilities for a container)[https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container] for more details.
See [set capabilities for a container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container) for more details.
Once the pod is running as root and has the SYS_PTRACE capability it will be able to debug the Flask app.
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.
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.
```
```bash
kubectl port-forward pod/superset-<some random id> 5678:5678
```
@@ -465,6 +465,7 @@ We use [Flask-Babel](https://python-babel.github.io/flask-babel/) to translate S
In Python files, we use the following
[translation functions](https://python-babel.github.io/flask-babel/#using-translations)
from `Flask-Babel`:
- `gettext` and `lazy_gettext` (usually aliased to `_`): for translating singular
strings.
- `ngettext`: for translating strings that might become plural.
@@ -519,6 +520,7 @@ easier to translate the application to your target language:
[Flask AppBuilder i18n documentation](https://flask-appbuilder.readthedocs.io/en/latest/i18n.html)
To create a dictionary for a new language, first make sure the necessary dependencies are installed:
```bash
pip install -r superset/translations/requirements.txt
```
@@ -575,16 +577,20 @@ case of the Finnish translation, this would be `superset/translations/fi/LC_MESS
To make the translations available on the frontend, we need to convert the PO file into
a collection of JSON files. To convert all PO files to formatted JSON files you can use
the build-translation script
the `build-translation` script
```bash
# Install dependencies if you haven't already
cd superset-frontend/ && npm ci
# Compile translations for the frontend
npm run build-translation
```
Finally, for the translations to take effect we need to compile translation catalogs into
binary MO files for the backend using pybabel.
binary MO files for the backend using `pybabel`.
```bash
# inside the project root
pybabel compile -d superset/translations
```

View File

@@ -4,7 +4,6 @@ sidebar_position: 9
# FAQ
## How big of a dataset can Superset handle?
Superset can work with even gigantic databases! Superset acts as a thin layer above your underlying
@@ -28,7 +27,6 @@ to occur in spikes, e.g., if everyone in a meeting loads the same dashboard at o
Superset's application metadata does not require a very large database to store it, though
the log file grows over time.
## Can I join / query multiple tables at one time?
Not in the Explore or Visualization UI. A Superset SQLAlchemy datasource can only be a single table
@@ -178,7 +176,7 @@ You can take a look at this Flask-AppBuilder
It is possible on a per-dashboard basis by providing a mapping of labels to colors in the JSON
Metadata attribute using the `label_colors` key.
```
```json
{
"label_colors": {
"Girls": "#FF69B4",

View File

@@ -0,0 +1,68 @@
---
title: Architecture
hide_title: true
sidebar_position: 1
version: 1
---
import useBaseUrl from "@docusaurus/useBaseUrl";
# Architecture
This page is meant to give new administrators an understanding of Superset's components.
## Components
A Superset installation is made up of these components:
1. The Superset application itself
2. A metadata database
3. A caching layer (optional, but necessary for some features)
4. A worker & beat (optional, but necessary for some features)
### Optional components and associated features
The optional components above are necessary to enable these features:
- [Alerts and Reports](/docs/configuration/alerts-reports)
- [Caching](/docs/configuration/cache)
- [Async Queries](/docs/configuration/async-queries-celery/)
- [Dashboard Thumbnails](/docs/configuration/cache/#caching-thumbnails)
If you install with Kubernetes or Docker Compose, all of these components will be created.
However, installing from PyPI only creates the application itself. Users installing from PyPI will need to configure a caching layer, worker, and beat on their own if they wish to enable the above features. Configuration of those components for a PyPI install is not currently covered in this documentation.
Here are further details on each component.
### The Superset Application
This is the core application. Superset operates like this:
- A user visits a chart or dashboard
- That triggers a SQL query to the data warehouse holding the underlying dataset
- The resulting data is served up in a data visualization
- The Superset application is comprised of the Python (Flask) backend application (server), API layer, and the React frontend, built via Webpack, and static assets needed for the application to work
### Metadata Database
This is where chart and dashboard definitions, user information, logs, etc. are stored. Superset is tested to work with PostgreSQL and MySQL databases as the metadata database (not be confused with a data source like your data warehouse, which could be a much greater variety of options like Snowflake, Redshift, etc.).
Some installation methods like our Quickstart and PyPI come configured by default to use a SQLite on-disk database. And in a Docker Compose installation, the data would be stored in a PostgresQL container volume. Neither of these cases are recommended for production instances of Superset.
For production, a properly-configured, managed, standalone database is recommended. No matter what database you use, you should plan to back it up regularly.
### Caching Layer
The caching layer serves two main functions:
- Store the results of queries to your data warehouse so that when a chart is loaded twice, it pulls from the cache the second time, speeding up the application and reducing load on your data warehouse.
- Act as a message broker for the worker, enabling the Alerts & Reports, async queries, and thumbnail caching features.
Most people use Redis for their cache, but Superset supports other options too. See the [cache docs](/docs/configuration/cache/) for more.
### Worker and Beat
This is one or more workers who execute tasks like run async queries or take snapshots of reports and send emails, and a "beat" that acts as the scheduler and tells workers when to perform their tasks. Most installations use Celery for these components.
## Other components
Other components can be incorporated into Superset. The best place to learn about additional configurations is the [Configuration page](/docs/configuration/configuring-superset). For instance, you could set up a load balancer or reverse proxy to implement HTTPS in front of your Superset application, or specify a Mapbox URL to enable geospatial charts, etc.
Superset won't even start without certain configuration settings established, so it's essential to review that page.

View File

@@ -1,7 +1,7 @@
---
title: Docker Builds
hide_title: true
sidebar_position: 5
sidebar_position: 6
version: 1
---
@@ -23,13 +23,14 @@ Different sets of images are built and/or published at different times:
- **Merges to the main branch** (`push`): resulting in new SHAs, with tags
prefixed with `master` for the latest `master` version.
# Build presets
## Build presets
We have a set of build "presets" that each represent a combination of
parameters for the build, mostly pointing to either different target layer
for the build, and/or base image.
Here are the build presets that are exposed through the `build_docker.py` script:
- `lean`: The default Docker image, including both frontend and backend. Tags
without a build_preset are lean builds, e.g., `latest`.
- `dev`: For development, with a headless browser, dev-related utilities and root access.
@@ -92,7 +93,7 @@ configured in that way). Setting the environment
variable `DOCKER_DEFAULT_PLATFORM` to `linux/amd64` seems to function in
term of leveraging, and building upon the Superset builds provided here.
```
```bash
export DOCKER_DEFAULT_PLATFORM=linux/amd64
```

View File

@@ -1,7 +1,7 @@
---
title: Docker Compose
hide_title: true
sidebar_position: 3
sidebar_position: 4
version: 1
---
@@ -9,7 +9,6 @@ import useBaseUrl from "@docusaurus/useBaseUrl";
# Using Docker Compose
<img src={useBaseUrl("/img/docker-compose.webp" )} width="150" />
<br /><br />
@@ -22,13 +21,13 @@ our [installing on k8s](https://superset.apache.org/docs/installation/running-on
documentation.
:::
As mentioned in our [quickstart guide](/docs/quickstart), the fastest way to try
Superset locally is using Docker Compose on a Linux or Mac OSX
computer. Superset does not have official support for Windows. It's also the easiest
way to launch a fully functioning **development environment** quickly.
Note that there are 3 major ways we support to run docker-compose:
1. **docker-compose.yml:** for interactive development, where we mount your local folder with the
frontend/backend files that you can edit and experience the changes you
make in the app in real time
@@ -49,7 +48,6 @@ Note that this documentation assumes that you have [Docker](https://www.docker.c
[docker-compose](https://docs.docker.com/compose/), and
[git](https://git-scm.com/) installed.
## 1. Clone Superset's GitHub repository
[Clone Superset's repo](https://github.com/apache/superset) in your terminal with the
@@ -151,7 +149,6 @@ located in your `PYTHONPATH`, note that it can be done by providing a
The mechanics of this are in `docker/pythonpath_dev/superset_config.py` where you can see
that the logic runs a `from superset_config_docker import *`
:::note
Users often want to connect to other databases from Superset. Currently, the easiest way to
do this is to modify the `docker-compose-non-dev.yml` file and add your database as a service that
@@ -214,13 +211,14 @@ connections from the Docker involves making one-line changes to the files `postg
`pg_hba.conf`; you can find helpful links tailored to your OS / PG version on the web easily for
this task. For Docker it suffices to only whitelist IPs `172.0.0.0/8` instead of `*`, but in any
case you are _warned_ that doing this in a production database _may_ have disastrous consequences as
you are opening your database to the public internet. 2. Instead of `localhost`, try using
`host.docker.internal` (Mac users, Ubuntu) or `172.18.0.1` (Linux users) as the hostname when
attempting to connect to the database. This is a Docker internal detail -- what is happening is
that, in Mac systems, Docker Desktop creates a dns entry for the hostname `host.docker.internal`
which resolves to the correct address for the host machine, whereas in Linux this is not the case
(at least by default). If neither of these 2 hostnames work then you may want to find the exact
hostname you want to use, for that you can do `ifconfig` or `ip addr show` and look at the IP
address of `docker0` interface that must have been created by Docker for you. Alternately if you
don't even see the `docker0` interface try (if needed with sudo) `docker network inspect bridge` and
see if there is an entry for `"Gateway"` and note the IP address.
you are opening your database to the public internet.
1. Instead of `localhost`, try using `host.docker.internal` (Mac users, Ubuntu) or `172.18.0.1`
(Linux users) as the hostname when attempting to connect to the database. This is a Docker internal
detail -- what is happening is that, in Mac systems, Docker Desktop creates a dns entry for the
hostname `host.docker.internal` which resolves to the correct address for the host machine, whereas
in Linux this is not the case (at least by default). If neither of these 2 hostnames work then you
may want to find the exact hostname you want to use, for that you can do `ifconfig` or
`ip addr show` and look at the IP address of `docker0` interface that must have been created by
Docker for you. Alternately if you don't even see the `docker0` interface try (if needed with sudo)
`docker network inspect bridge` and see if there is an entry for `"Gateway"` and note the IP
address.

View File

@@ -1,7 +1,7 @@
---
title: Kubernetes
hide_title: true
sidebar_position: 1
sidebar_position: 2
version: 1
---
@@ -9,7 +9,6 @@ import useBaseUrl from "@docusaurus/useBaseUrl";
# Installing on Kubernetes
<img src={useBaseUrl("/img/k8s.png" )} width="150" />
<br /><br />
@@ -27,7 +26,6 @@ For simpler, single host environments, we recommend using
and works fantastically well with the Helm chart referenced here.
:::
## Running
1. Add the Superset helm repository
@@ -434,9 +432,12 @@ configOverrides:
"--disable-extensions",
]
```
### Load the Examples data and dashboards
If you are trying Superset out and want some data and dashboards to explore, you can load some examples by creating a `my_values.yaml` and deploying it as described above in the **Configure your setting overrides** step of the **Running** section.
To load the examples, add the following to the `my_values.yaml` file:
```yaml
init:
loadExamples: true

View File

@@ -1,7 +1,7 @@
---
title: PyPI
hide_title: true
sidebar_position: 2
sidebar_position: 3
version: 1
---
@@ -24,13 +24,13 @@ level dependencies.
The following command will ensure that the required dependencies are installed:
```
```bash
sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev
```
In Ubuntu 20.04 the following command will ensure that the required dependencies are installed:
```
```bash
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev
```
@@ -38,19 +38,19 @@ sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-p
Install the following packages using the `yum` package manager:
```
```bash
sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel
```
In more recent versions of CentOS and Fedora, you may need to install a slightly different set of packages using `dnf`:
```
```bash
sudo dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip python3-wheel openssl-devel cyrus-sasl-devel openldap-devel
```
Also, on CentOS, you may need to upgrade pip for the install to work:
```
```bash
pip3 install --upgrade pip
```
@@ -60,14 +60,14 @@ If you're not on the latest version of OS X, we recommend upgrading because we'v
issues people have run into are linked to older versions of Mac OS X. After updating, install the
latest version of XCode command line tools:
```
```bash
xcode-select --install
```
We don't recommend using the system installed Python. Instead, first install the
[homebrew](https://brew.sh/) manager and then run the following commands:
```
```bash
brew install readline pkg-config libffi openssl mysql postgresql@14
```
@@ -83,13 +83,13 @@ To identify the Python version used by the official docker image, see the [Docke
Let's also make sure we have the latest version of `pip` and `setuptools`:
```
```bash
pip install --upgrade setuptools pip
```
Lastly, you may need to set LDFLAGS and CFLAGS for certain Python packages to properly build. You can export these variables with:
```
```bash
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CFLAGS="-I$(brew --prefix openssl)/include"
```
@@ -101,13 +101,13 @@ These will now be available when pip installing requirements.
We highly recommend installing Superset inside of a virtual environment. Python ships with
`virtualenv` out of the box. If you're using [pyenv](https://github.com/pyenv/pyenv), you can install [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv). Or you can install it with `pip`:
```
```bash
pip install virtualenv
```
You can create and activate a virtual environment using:
```
```bash
# virtualenv is shipped in Python 3.6+ as venv instead of pyvenv.
# See https://docs.python.org/3.6/library/venv.html
python3 -m venv venv
@@ -116,7 +116,7 @@ python3 -m venv venv
Or with pyenv-virtualenv:
```
```bash
# Here we name the virtual env 'superset'
pyenv virtualenv superset
pyenv activate superset
@@ -130,13 +130,13 @@ command line.
First, start by installing `apache-superset`:
```
```bash
pip install apache-superset
```
Then, you need to initialize the database:
```
```bash
superset db upgrade
```
@@ -146,7 +146,7 @@ Note that some configuration is mandatory for production instances of Superset.
Finish installing by running through the following commands:
```
```bash
# Create an admin user in your metadata database (use `admin` as username to be able to load the examples)
export FLASK_APP=superset
superset fab create-admin

View File

@@ -1,7 +1,7 @@
---
title: Upgrading Superset
hide_title: true
sidebar_position: 4
sidebar_position: 5
version: 1
---

View File

@@ -34,6 +34,7 @@ $ cd superset
# Fire up Superset using Docker Compose
$ docker compose -f docker-compose-image-tag.yml up
```
This may take a moment as Docker Compose will fetch the underlying
container images and will load up some examples. Once all containers
are downloaded and the output settles, you're ready to log in.
@@ -41,7 +42,9 @@ are downloaded and the output settles, you're ready to log in.
⚠️ If you get an error message like `validating superset\docker-compose-image-tag.yml: services.superset-worker-beat.env_file.0 must be a string`, you need to update your version of `docker-compose`.
### 3. Log into Superset
Now head over to [http://localhost:8088](http://localhost:8088) and log in with the default created account:
```bash
username: admin
password: admin
@@ -50,10 +53,13 @@ password: admin
#### 🎉 Congratulations! Superset is now up and running on your machine! 🎉
### Wrapping Up
Once you're done with Superset, you can stop and delete just like any other container environment:
```bash
$ docker compose down
```
:::tip
You can use the same environment more than once, as Superset will persist data locally. However, make sure to properly stop all
processes by running Docker Compose `stop` command. By doing so, you can avoid data corruption and/or loss of data.
@@ -62,6 +68,7 @@ processes by running Docker Compose `stop` command. By doing so, you can avoid d
## What's next?
From this point on, you can head on to:
- [Create your first Dashboard](/docs/using-superset/creating-your-first-dashboard)
- [Connect to a Database](/docs/configuration/databases)
- [Using Docker Compose](/docs/installation/docker-compose)

View File

@@ -2,6 +2,12 @@
title: CVEs fixed by release
sidebar_position: 2
---
#### Version 4.0.2
| CVE | Title | Affected |
|:---------------|:----------------------------|---------:|
| CVE-2024-39887 | Improper SQL authorization | < 4.0.1 |
#### Version 3.1.3, 4.0.1
| CVE | Title | Affected |
@@ -38,7 +44,6 @@ sidebar_position: 2
| CVE-2023-49736 | SQL Injection on where_in JINJA macro | < 2.1.3, >= 3.0.0, < 3.0.2 |
| CVE-2023-49734 | Privilege Escalation Vulnerability | < 2.1.3, >= 3.0.0, < 3.0.2 |
#### Version 3.0.0
| CVE | Title | Affected |
@@ -46,14 +51,12 @@ sidebar_position: 2
| CVE-2023-42502 | Open Redirect Vulnerability | < 3.0.0 |
| CVE-2023-42505 | Sensitive information disclosure on db connection details | < 3.0.0 |
#### Version 2.1.3
| CVE | Title | Affected |
|:---------------|:------------------------------------------------------------------------|---------:|
| CVE-2023-42504 | Lack of rate limiting allows for possible denial of service | < 2.1.3 |
#### Version 2.1.2
| CVE | Title | Affected |
@@ -62,7 +65,6 @@ sidebar_position: 2
| CVE-2023-42501 | Unnecessary read permissions within the Gamma role | < 2.1.2 |
| CVE-2023-43701 | Stored XSS on API endpoint | < 2.1.2 |
#### Version 2.1.1
| CVE | Title | Affected |
@@ -76,7 +78,6 @@ sidebar_position: 2
| CVE-2023-37941 | Metadata db write access can lead to remote code execution | < 2.1.1 |
| CVE-2023-32672 | SQL parser edge case bypasses data access authorization | < 2.1.1 |
#### Version 2.1.0
| CVE | Title | Affected |
@@ -86,7 +87,6 @@ sidebar_position: 2
| CVE-2023-27525 | Incorrect default permissions for Gamma role | < 2.1.0 |
| CVE-2023-30776 | Database connection password leak | < 2.1.0 |
#### Version 2.0.1
| CVE | Title | Affected |

View File

@@ -44,6 +44,8 @@ or for the purposes of this walkthrough, you can click the link below all these
<img src={useBaseUrl("/img/tutorial/tutorial_03a_database_connection_string_link.png" )} width="600" />{" "} <br/><br/>
Please note, if you are trying to connect to another locally running database (whether on host or another container), and you get the message `The port is closed.`, then you need to adjust the HOST to `host.docker.internal`
Once you've clicked that link you only need to specify two things (the database name and SQLAlchemy URI):
@@ -104,7 +106,7 @@ You can also certify metrics if you'd like for your team in this view.
2. Virtual calculated columns: you can write SQL queries that
customize the appearance and behavior
of a specific column (e.g. `CAST(recovery_rate) as float`).
of a specific column (e.g. `CAST(recovery_rate as float)`).
Aggregate functions aren't allowed in calculated columns.
<img src={useBaseUrl("/img/tutorial/tutorial_calculated_column.png" )} />

View File

@@ -187,6 +187,10 @@ const config = {
to: '/docs/configuration/event-logging',
from: '/docs/installation/event-logging/',
},
{
to: '/docs/contributing/howtos',
from: '/docs/contributing/translations/',
},
],
},
],

View File

@@ -6,23 +6,23 @@
"scripts": {
"docusaurus": "docusaurus",
"_init": "cat src/intro_header.txt ../README.md > docs/intro.md",
"start": "npm run _init && docusaurus start",
"build": "npm run _init && docusaurus build",
"start": "yarn run _init && docusaurus start",
"build": "yarn run _init && DEBUG=docusaurus:* docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "npm run _init && docusaurus serve",
"serve": "yarn run _init && docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
},
"dependencies": {
"@algolia/client-search": "^4.24.0",
"@ant-design/icons": "^5.3.7",
"@docsearch/react": "^3.6.0",
"@docusaurus/core": "^3.3.2",
"@docusaurus/plugin-client-redirects": "^3.3.2",
"@docusaurus/preset-classic": "^3.3.2",
"@ant-design/icons": "^5.4.0",
"@docsearch/react": "^3.6.1",
"@docusaurus/core": "^3.4.0",
"@docusaurus/plugin-client-redirects": "^3.4.0",
"@docusaurus/preset-classic": "^3.4.0",
"@emotion/core": "^10.1.1",
"@emotion/styled": "^10.0.27",
"@mdx-js/react": "^3.0.0",
@@ -49,8 +49,9 @@
"@docusaurus/module-type-aliases": "^3.4.0",
"@docusaurus/tsconfig": "^3.4.0",
"@types/react": "^18.3.3",
"typescript": "^5.5.2",
"webpack": "^5.92.1"
"typescript": "^5.5.4",
"webpack": "^5.93.0"
},
"browserslist": {
"production": [

View File

@@ -122,4 +122,14 @@ export const Databases = [
href: 'https://doris.apache.org/',
imgName: 'doris.png',
},
{
title: 'OceanBase',
href: 'https://www.oceanbase.com/',
imgName: 'oceanbase.svg',
},
{
title: 'Couchbase',
href: 'https://www.couchbase.com/',
imgName: 'couchbase.svg',
},
];

19
docs/static/img/databases/couchbase.svg vendored Normal file
View File

@@ -0,0 +1,19 @@
<!--
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.
-->
<svg xmlns="http://www.w3.org/2000/svg" width="2500" height="575" viewBox="0.6 0.1 575.509 132.4"><title>logo</title><path d="M199.3 96.9c-20.3 0-30.5-14.601-30.5-30.8 0-16.1 10.6-30.6 30.7-30.6 7.7 0 13.2 1.7 17.9 4.7l-5.8 9.5c-3.3-2.1-6.9-3.4-12.3-3.4-10.9 0-16.7 8.7-16.7 19.5 0 11.101 5.6 20.3 16.9 20.3 6.4 0 10.2-2.199 13.3-4.5l5.3 9.101c-3 2.699-10.1 6.199-18.8 6.199zm43.1-36.4c-6.5 0-8.6 5.5-8.6 13.5s2.6 13.7 9.1 13.7c6.6 0 8.8-5.4 8.8-13.4-.1-8-2.7-13.8-9.3-13.8zm.2 36.4c-15.2 0-21.8-11.4-21.8-22.601 0-11.2 6.6-22.9 21.8-22.9 15.2 0 22.1 11.3 22.1 22.5C264.6 85 257.9 96.9 242.6 96.9zm41.2-44.4v27.8c0 4.3 1.5 6.4 5.601 6.4 4.399 0 7.699-4.2 8.6-5.2v-29h12.2v30.6c0 5.7.6 10.101 1.2 12.7H299.3c-.399-1.2-.8-4-.899-5.8-2.301 3-6.801 6.8-14 6.8-9.6 0-13-6.1-13-14.1V52.4h12.4v.1h-.001zm56.5 44.4c-14 0-22.6-9.101-22.6-22.7 0-14.6 9.7-22.8 23-22.8 7 0 11.2 2.1 13.3 3.4l-3.9 8.4c-1.899-1.2-4.699-2.5-9-2.5-6.8 0-10.399 5.3-10.399 13.2 0 7.899 3.399 13.6 10.7 13.6 5 0 7.899-1.8 9.199-2.6l3.7 8.199c-2 1.301-6 3.801-14 3.801zm46.8-1V68c0-4.3-1.5-6.4-5.6-6.4-4.4 0-7.8 4.1-8.7 5.2v29h-12.2v-64h12.2v25.8c2.2-2.4 6.4-6.2 13.5-6.2 9.601 0 13 6.1 13 14.1v30.3h-12.2v.1zm34.4-9.5c.8.3 2.6.899 5.8.899 6.3 0 10.2-4.6 10.2-13.5 0-8-2.7-12.8-8.9-12.8-3.6 0-6.399 2.3-7.1 3.2V86.4zm0-54.5v24c2-2 5.8-4.5 10.6-4.5 10.801 0 18.4 7.4 18.4 22.4 0 14.9-10 23.101-23.2 23.101-9.899 0-15.899-2.5-18.1-3.5V31.8h12.3v.1zm58.1 44.9h-1.5c-6.699 0-11.399 2-11.399 6.9 0 3.1 2.5 4.399 5.2 4.399 4.1 0 6.5-2.399 7.699-3.6V76.8zm1.3 19.1c-.4-1.101-.601-3.301-.7-4.601-1.9 2.3-6 5.7-12.101 5.7C460.7 97 455 92.6 455 84.8c0-11.3 11.6-15.399 23.1-15.399h1.5V67c0-3.6-1.5-5.8-6.899-5.8-5.601 0-9.4 2.9-11 4l-5.3-7.4c2.6-2.4 8.399-6.3 17.699-6.3 12 0 17.7 4.6 17.7 16.2v15.2c0 6 .601 10.199 1.2 13h-12.1zm32.9 1c-7.8 0-12.8-2.301-15.5-4.101l4.101-8.5C504.1 85.5 508.3 87.9 513.1 87.9c4.5 0 7-1.301 7-3.7 0-2.8-4.899-3.601-11.1-6.601-6-2.899-9.5-6.199-9.5-12.8 0-8.2 6.5-13.4 16.4-13.4 7.399 0 12 2.3 14 3.4l-4.2 8.3c-1.7-1-5.101-2.7-9.2-2.7s-5.9 1.4-5.9 3.7c0 2.8 4 3.5 9 5.5 6.801 2.801 11.7 6 11.7 13.2-.2 9.301-6.8 14.101-17.5 14.101zm50.3-28c-.1-4.8-2-8.7-7.199-8.7-4.801 0-7.601 3.1-8.4 8.7H564.1zm-4.6 19c5.9 0 9.1-1.9 11.3-3l3.9 7.8c-2.9 1.6-7.3 4.2-16.3 4.2-14.601 0-22.9-9.101-22.9-23 0-13.8 9.5-22.5 21.6-22.5 13.7 0 20.301 9.5 18.801 25.7H548.6c.5 6.5 3.9 10.8 10.9 10.8z"/><path d="M66.8.1C30.3.1.6 29.7.6 66.3c0 36.5 29.6 66.2 66.2 66.2 36.5 0 66.2-29.6 66.2-66.2S103.3.1 66.8.1zm44.7 77.8c0 4-2.3 7.5-6.8 8.3-7.8 1.399-24.2 2.2-37.9 2.2s-30.1-.801-37.9-2.2c-4.5-.8-6.8-4.3-6.8-8.3V52.1c0-4 3.1-7.7 6.8-8.3 2.3-.4 7.7-.8 11.9-.8 1.6 0 2.9 1.2 2.9 3.1v18.1l23.2-.5 23.2.5V46.1c0-1.9 1.3-3.1 2.9-3.1 4.2 0 9.6.4 11.9.8 3.8.6 6.8 4.3 6.8 8.3-.2 8.5-.2 17.2-.2 25.8z" fill="#ed2226"/></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

67
docs/static/img/databases/oceanbase.svg vendored Normal file
View File

@@ -0,0 +1,67 @@
<!--
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.
-->
<svg id="_图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.26 13.73">
<defs>
<style>
.cls-1 {
fill: #0181fd;
}
.cls-2 {
fill: #fff;
}
.cls-3 {
fill: #ffa005;
}
.cls-4 {
fill: #181818;
}
.cls-5 {
fill: #07c846;
}
</style>
</defs>
<rect class="cls-2" width="95.26" height="13.73"/>
<g>
<g>
<path class="cls-4" d="M51,2.66l-4.58,8.49h2.28l.74-1.48h3.05l.24,1.48h2.28l-1.68-8.49h-2.33Zm-.7,5.34l1.44-2.83,.48,2.83h-1.92Z"/>
<path class="cls-4" d="M31.98,3.71c-.33-.41-.76-.72-1.28-.95-.52-.23-1.11-.34-1.77-.34s-1.3,.11-1.9,.34c-.6,.23-1.13,.55-1.6,.95-.47,.41-.86,.88-1.18,1.42-.32,.54-.53,1.13-.64,1.76-.11,.63-.1,1.22,.04,1.76,.13,.54,.36,1.02,.69,1.42,.33,.41,.75,.72,1.27,.95,.52,.23,1.11,.34,1.78,.34s1.29-.11,1.89-.34c.6-.23,1.13-.55,1.61-.95,.47-.41,.87-.88,1.19-1.42,.32-.54,.53-1.13,.64-1.76,.11-.63,.1-1.22-.04-1.76-.13-.54-.37-1.02-.7-1.42m-1.84,4.12c-.17,.29-.38,.53-.63,.74-.25,.21-.53,.37-.83,.49-.3,.12-.61,.17-.92,.17s-.6-.06-.86-.17c-.26-.12-.48-.28-.65-.49-.17-.21-.3-.46-.37-.74-.07-.29-.08-.6-.03-.93,.06-.34,.17-.65,.35-.93,.17-.29,.38-.53,.63-.74,.25-.21,.52-.37,.82-.49,.3-.12,.61-.17,.92-.17s.6,.06,.86,.17c.26,.12,.48,.28,.66,.49,.18,.21,.31,.46,.38,.74,.08,.29,.08,.6,.03,.93-.06,.34-.17,.65-.34,.93"/>
<polygon class="cls-4" points="46.4 9.28 42.07 9.28 42.32 7.81 46.51 7.81 46.82 5.94 42.64 5.94 42.88 4.52 47.21 4.52 47.53 2.66 41.06 2.66 39.61 11.15 46.08 11.15 46.4 9.28"/>
<polygon class="cls-4" points="61.29 7.75 58.79 2.66 56.65 2.66 55.2 11.15 57.34 11.15 58.23 6.05 60.72 11.15 62.85 11.15 64.3 2.66 62.17 2.66 61.29 7.75"/>
<path class="cls-4" d="M70.83,8.68c.04-.26,.06-.5,.04-.72-.02-.23-.08-.43-.19-.61s-.25-.33-.45-.46c-.19-.12-.44-.22-.73-.28,.34-.2,.61-.43,.8-.72,.2-.28,.33-.64,.41-1.06,.12-.71,.02-1.25-.31-1.62-.33-.38-.87-.56-1.63-.56h-3.47l-1.45,8.49h3.72c.44,0,.84-.05,1.2-.16,.37-.1,.69-.26,.97-.47,.28-.21,.51-.47,.7-.78,.19-.31,.31-.66,.38-1.06m-3.67-4.34h.67c.67,0,.96,.27,.86,.82-.09,.55-.47,.82-1.14,.82h-.67l.28-1.64Zm1.07,4.88c-.26,.14-.65,.21-1.19,.21h-.75l.31-1.8h.75c.54,0,.91,.07,1.12,.21,.21,.14,.29,.37,.23,.69-.05,.32-.21,.54-.47,.69"/>
<path class="cls-4" d="M83.57,5.97c-.16-.06-.33-.12-.5-.17-.17-.05-.32-.11-.45-.19-.13-.07-.23-.16-.3-.25-.07-.1-.09-.22-.07-.37,.04-.22,.15-.39,.35-.53,.2-.14,.43-.2,.71-.2,.22,0,.44,.05,.65,.14,.22,.09,.42,.24,.62,.43l1.14-1.72c-.37-.23-.77-.4-1.19-.51-.42-.12-.84-.17-1.25-.17-.44,0-.84,.07-1.22,.2-.38,.13-.71,.32-.99,.57-.29,.24-.52,.54-.72,.88-.19,.34-.33,.72-.4,1.14-.07,.42-.07,.77,.01,1.04,.08,.27,.21,.5,.39,.68,.18,.18,.39,.32,.63,.43,.25,.11,.5,.21,.76,.3,.22,.08,.4,.16,.56,.23,.15,.07,.27,.14,.36,.22,.09,.08,.15,.17,.17,.26,.03,.09,.03,.2,0,.33-.04,.21-.15,.4-.35,.56-.2,.17-.47,.25-.82,.25-.31,0-.6-.07-.89-.21-.29-.14-.57-.36-.84-.65l-1.22,1.78c.78,.64,1.69,.96,2.73,.96,.5,0,.96-.07,1.38-.21,.42-.14,.79-.33,1.1-.59,.32-.25,.57-.55,.78-.91,.2-.35,.34-.75,.41-1.18,.11-.65,.04-1.17-.22-1.57-.26-.4-.71-.72-1.37-.96"/>
<path class="cls-4" d="M38.16,2.42c-.57,0-1.14,.11-1.7,.33-.56,.22-1.07,.53-1.54,.92-.46,.39-.86,.86-1.19,1.41-.33,.54-.55,1.14-.66,1.8-.11,.65-.09,1.26,.05,1.81,.15,.55,.38,1.03,.71,1.43,.33,.4,.73,.71,1.21,.93,.48,.22,1.01,.33,1.57,.33,.28,0,.56-.03,.85-.08,.29-.06,.61-.14,.96-.26l.23-.08,.45-2.61c-.65,.6-1.31,.9-2,.9-.31,0-.59-.06-.84-.18-.25-.12-.45-.29-.62-.5-.16-.21-.28-.46-.34-.74-.06-.29-.07-.6,0-.93,.06-.33,.17-.64,.33-.92,.16-.29,.36-.53,.59-.74,.23-.21,.49-.37,.79-.49,.29-.12,.6-.18,.92-.18,.73,0,1.28,.31,1.67,.93l.45-2.64c-.32-.15-.64-.26-.94-.33-.3-.07-.62-.11-.95-.11"/>
<path class="cls-4" d="M78.31,9.36c-.35-.07-1.02-.11-2.18,.17l.26,1.65h2.28l-.36-1.81Z"/>
<path class="cls-4" d="M78.22,8.87l-.37-1.87c-.55,0-1.24,.09-2.1,.31-.09,.02-.19,.05-.29,.08-.47,.13-.91,.22-1.31,.28l1.25-2.46,.27,1.65c.86-.22,1.55-.3,2.1-.31l-.77-3.85h-2.33l-4.58,8.49h2.28l.82-1.62c.69-.05,1.52-.17,2.46-.43,.14-.04,.27-.07,.39-.1,1.16-.27,1.83-.24,2.18-.17"/>
<g>
<path class="cls-4" d="M89.66,6.01c-1.7,.44-2.99,.4-3.55,.35l-.3,1.83c.16,.01,.35,.02,.56,.03,.84,.02,2.06-.06,3.54-.45,1.4-.37,2.23-.34,2.65-.27l.3-1.83c-.71-.07-1.75-.03-3.21,.35"/>
<path class="cls-4" d="M90.1,2.73c-1.62,.42-2.87,.41-3.47,.36l-.45,2.8c.4,.04,1.15,.07,2.15-.07l.16-.98c.56-.07,1.19-.18,1.87-.36,1.5-.39,2.34-.34,2.73-.26l.3-1.84c-.71-.09-1.77-.05-3.29,.34"/>
<path class="cls-4" d="M89.25,9.18c-.54,.14-1.03,.23-1.48,.29l.15-.9c-.62,.07-1.16,.09-1.59,.08-.21,0-.39-.01-.55-.03l-.46,2.72c.18,.01,.39,.03,.64,.03,.84,.02,2.06-.06,3.54-.45,1.32-.35,2.13-.35,2.58-.29l.3-1.83c-.71-.06-1.72,0-3.13,.36"/>
</g>
</g>
<g>
<path class="cls-5" d="M11.91,12.89c.36-.15,.72-.29,1.1-.42,.17-.06,.35-.12,.52-.17,.14-.04,.28-.08,.42-.12,2.12-.59,4.27-.75,6.35-.52v-2.17c-2.3-.23-4.67-.03-7.02,.63-.14,.04-.28,.08-.42,.12-.18,.06-.37,.12-.55,.18-.36,.12-.72,.26-1.07,.4l.67,2.06Z"/>
<path class="cls-1" d="M20.29,2.46v6.49c-2.39-.23-4.85-.02-7.27,.69-.3,.09-.59,.18-.89,.28-.36,.12-.72,.24-1.07,.34-3.06,.9-6.16,1.22-9.18,1V4.77c2.36,.23,4.79,.02,7.18-.66,.33-.09,.65-.2,.98-.31,.33-.11,.66-.22,.98-.32,3.09-.92,6.22-1.24,9.27-1.03Z"/>
<path class="cls-3" d="M10.26,.84c-.36,.15-.72,.29-1.1,.42-.17,.06-.35,.12-.52,.17-.14,.04-.28,.08-.42,.12-2.12,.59-4.27,.75-6.35,.52v2.17c2.3,.23,4.67,.03,7.02-.63,.14-.04,.28-.08,.42-.12,.18-.06,.37-.12,.55-.18,.36-.12,.72-.26,1.07-.4l-.67-2.06Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -235,14 +235,14 @@
lodash "^4.17.15"
rc-util "^5.9.4"
"@ant-design/icons@^5.3.7":
version "5.3.7"
resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.3.7.tgz#d9f3654bf7934ee5faba43f91b5a187f5309ec68"
integrity sha512-bCPXTAg66f5bdccM4TT21SQBDO1Ek2gho9h3nO9DAKXJP4sq+5VBjrQMSxMVXSB3HyEz+cUbHQ5+6ogxCOpaew==
"@ant-design/icons@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.4.0.tgz#4bd8f335c68207cc06fe9943d164a81cdfcfbeac"
integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==
dependencies:
"@ant-design/colors" "^7.0.0"
"@ant-design/icons-svg" "^4.4.0"
"@babel/runtime" "^7.11.2"
"@babel/runtime" "^7.24.8"
classnames "^2.2.6"
rc-util "^5.31.1"
@@ -1264,10 +1264,10 @@
core-js-pure "^3.30.2"
regenerator-runtime "^0.14.0"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.24.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c"
integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.6", "@babel/runtime@^7.24.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.25.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb"
integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==
dependencies:
regenerator-runtime "^0.14.0"
@@ -1325,25 +1325,25 @@
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
"@docsearch/css@3.6.0":
version "3.6.0"
resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.0.tgz#0e9f56f704b3a34d044d15fd9962ebc1536ba4fb"
integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==
"@docsearch/css@3.6.1":
version "3.6.1"
resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408"
integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==
"@docsearch/react@^3.5.2", "@docsearch/react@^3.6.0":
version "3.6.0"
resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.0.tgz#b4f25228ecb7fc473741aefac592121e86dd2958"
integrity sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==
"@docsearch/react@^3.5.2", "@docsearch/react@^3.6.1":
version "3.6.1"
resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.1.tgz#0f826df08693293806d64277d6d9c38636211b97"
integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==
dependencies:
"@algolia/autocomplete-core" "1.9.3"
"@algolia/autocomplete-preset-algolia" "1.9.3"
"@docsearch/css" "3.6.0"
"@docsearch/css" "3.6.1"
algoliasearch "^4.19.1"
"@docusaurus/core@3.3.2", "@docusaurus/core@^3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.3.2.tgz#67b8cd5329b32f47515ecf12eb7aa306dfc69922"
integrity sha512-PzKMydKI3IU1LmeZQDi+ut5RSuilbXnA8QdowGeJEgU8EJjmx3rBHNT1LxQxOVqNEwpWi/csLwd9bn7rUjggPA==
"@docusaurus/core@3.4.0", "@docusaurus/core@^3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.4.0.tgz#bdbf1af4b2f25d1bf4a5b62ec6137d84c821cb3c"
integrity sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==
dependencies:
"@babel/core" "^7.23.3"
"@babel/generator" "^7.23.3"
@@ -1355,12 +1355,12 @@
"@babel/runtime" "^7.22.6"
"@babel/runtime-corejs3" "^7.22.6"
"@babel/traverse" "^7.22.8"
"@docusaurus/cssnano-preset" "3.3.2"
"@docusaurus/logger" "3.3.2"
"@docusaurus/mdx-loader" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/cssnano-preset" "3.4.0"
"@docusaurus/logger" "3.4.0"
"@docusaurus/mdx-loader" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
autoprefixer "^10.4.14"
babel-loader "^9.1.3"
babel-plugin-dynamic-import-node "^2.3.3"
@@ -1414,32 +1414,32 @@
webpack-merge "^5.9.0"
webpackbar "^5.0.2"
"@docusaurus/cssnano-preset@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.3.2.tgz#fb971b3e89fe6821721782124b430b2795faeb38"
integrity sha512-+5+epLk/Rp4vFML4zmyTATNc3Is+buMAL6dNjrMWahdJCJlMWMPd/8YfU+2PA57t8mlSbhLJ7vAZVy54cd1vRQ==
"@docusaurus/cssnano-preset@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz#dc7922b3bbeabcefc9b60d0161680d81cf72c368"
integrity sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==
dependencies:
cssnano-preset-advanced "^6.1.2"
postcss "^8.4.38"
postcss-sort-media-queries "^5.2.0"
tslib "^2.6.0"
"@docusaurus/logger@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.3.2.tgz#f43f7e08d4f5403be6a7196659490053e248325f"
integrity sha512-Ldu38GJ4P8g4guN7d7pyCOJ7qQugG7RVyaxrK8OnxuTlaImvQw33aDRwaX2eNmX8YK6v+//Z502F4sOZbHHCHQ==
"@docusaurus/logger@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.4.0.tgz#8b0ac05c7f3dac2009066e2f964dee8209a77403"
integrity sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==
dependencies:
chalk "^4.1.2"
tslib "^2.6.0"
"@docusaurus/mdx-loader@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.3.2.tgz#424e3ffac8bcdeba27d8c0eb84a04736702fc187"
integrity sha512-AFRxj/aOk3/mfYDPxE3wTbrjeayVRvNSZP7mgMuUlrb2UlPRbSVAFX1k2RbgAJrnTSwMgb92m2BhJgYRfptN3g==
"@docusaurus/mdx-loader@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz#483d7ab57928fdbb5c8bd1678098721a930fc5f6"
integrity sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==
dependencies:
"@docusaurus/logger" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/logger" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
"@mdx-js/mdx" "^3.0.0"
"@slorber/remark-comment" "^1.0.0"
escape-html "^1.0.3"
@@ -1462,20 +1462,7 @@
vfile "^6.0.1"
webpack "^5.88.1"
"@docusaurus/module-type-aliases@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.3.2.tgz#02534449d08d080fd52dc9e046932bb600c38b01"
integrity sha512-b/XB0TBJah5yKb4LYuJT4buFvL0MGAb0+vJDrJtlYMguRtsEBkf2nWl5xP7h4Dlw6ol0hsHrCYzJ50kNIOEclw==
dependencies:
"@docusaurus/types" "3.3.2"
"@types/history" "^4.7.11"
"@types/react" "*"
"@types/react-router-config" "*"
"@types/react-router-dom" "*"
react-helmet-async "*"
react-loadable "npm:@docusaurus/react-loadable@6.0.0"
"@docusaurus/module-type-aliases@^3.4.0":
"@docusaurus/module-type-aliases@3.4.0", "@docusaurus/module-type-aliases@^3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz#2653bde58fc1aa3dbc626a6c08cfb63a37ae1bb8"
integrity sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==
@@ -1488,33 +1475,33 @@
react-helmet-async "*"
react-loadable "npm:@docusaurus/react-loadable@6.0.0"
"@docusaurus/plugin-client-redirects@^3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.3.2.tgz#286b02acc6bcdfd85739e96480ef7c67a7d0eddd"
integrity sha512-W8ueb5PaQ06oanatL+CzE3GjqeRBTzv3MSFqEQlBa8BqLyOomc1uHsWgieE3glHsckU4mUZ6sHnOfesAtYnnew==
"@docusaurus/plugin-client-redirects@^3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.4.0.tgz#10eafc9adcf3f9be7cc33d77e816040dc7a8d368"
integrity sha512-Pr8kyh/+OsmYCvdZhc60jy/FnrY6flD2TEAhl4rJxeVFxnvvRgEhoaIVX8q9MuJmaQoh6frPk94pjs7/6YgBDQ==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/logger" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/logger" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
eta "^2.2.0"
fs-extra "^11.1.1"
lodash "^4.17.21"
tslib "^2.6.0"
"@docusaurus/plugin-content-blog@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.3.2.tgz#6496714b071447687ead1472e5756bfb1ae065d0"
integrity sha512-fJU+dmqp231LnwDJv+BHVWft8pcUS2xVPZdeYH6/ibH1s2wQ/sLcmUrGWyIv/Gq9Ptj8XWjRPMghlxghuPPoxg==
"@docusaurus/plugin-content-blog@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz#6373632fdbababbda73a13c4a08f907d7de8f007"
integrity sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/logger" "3.3.2"
"@docusaurus/mdx-loader" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/logger" "3.4.0"
"@docusaurus/mdx-loader" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
cheerio "^1.0.0-rc.12"
feed "^4.2.2"
fs-extra "^11.1.1"
@@ -1526,19 +1513,19 @@
utility-types "^3.10.0"
webpack "^5.88.1"
"@docusaurus/plugin-content-docs@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.3.2.tgz#dadfbb94acfb0b74fae12db51f425c4379e30087"
integrity sha512-Dm1ri2VlGATTN3VGk1ZRqdRXWa1UlFubjaEL6JaxaK7IIFqN/Esjpl+Xw10R33loHcRww/H76VdEeYayaL76eg==
"@docusaurus/plugin-content-docs@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz#3088973f72169a2a6d533afccec7153c8720d332"
integrity sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/logger" "3.3.2"
"@docusaurus/mdx-loader" "3.3.2"
"@docusaurus/module-type-aliases" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/logger" "3.4.0"
"@docusaurus/mdx-loader" "3.4.0"
"@docusaurus/module-type-aliases" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
"@types/react-router-config" "^5.0.7"
combine-promises "^1.1.0"
fs-extra "^11.1.1"
@@ -1548,114 +1535,114 @@
utility-types "^3.10.0"
webpack "^5.88.1"
"@docusaurus/plugin-content-pages@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.3.2.tgz#04fc18d1925618c1102b111b85e6376442c1b7a9"
integrity sha512-EKc9fQn5H2+OcGER8x1aR+7URtAGWySUgULfqE/M14+rIisdrBstuEZ4lUPDRrSIexOVClML82h2fDS+GSb8Ew==
"@docusaurus/plugin-content-pages@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz#1846172ca0355c7d32a67ef8377750ce02bbb8ad"
integrity sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/mdx-loader" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/mdx-loader" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
fs-extra "^11.1.1"
tslib "^2.6.0"
webpack "^5.88.1"
"@docusaurus/plugin-debug@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.3.2.tgz#bb25fac2cb705eff7857b435219faef907ba949e"
integrity sha512-oBIBmwtaB+YS0XlmZ3gCO+cMbsGvIYuAKkAopoCh0arVjtlyPbejzPrHuCoRHB9G7abjNZw7zoONOR8+8LM5+Q==
"@docusaurus/plugin-debug@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz#74e4ec5686fa314c26f3ac150bacadbba7f06948"
integrity sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils" "3.4.0"
fs-extra "^11.1.1"
react-json-view-lite "^1.2.0"
tslib "^2.6.0"
"@docusaurus/plugin-google-analytics@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.3.2.tgz#6e51ee8593c79172ed2b2ac4d33e300f04bfbc87"
integrity sha512-jXhrEIhYPSClMBK6/IA8qf1/FBoxqGXZvg7EuBax9HaK9+kL3L0TJIlatd8jQJOMtds8mKw806TOCc3rtEad1A==
"@docusaurus/plugin-google-analytics@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz#5f59fc25329a59decc231936f6f9fb5663da3c55"
integrity sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
tslib "^2.6.0"
"@docusaurus/plugin-google-gtag@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.3.2.tgz#f8126dfe1dfa6e722157d7301430da40b97354ba"
integrity sha512-vcrKOHGbIDjVnNMrfbNpRQR1x6Jvcrb48kVzpBAOsKbj9rXZm/idjVAXRaewwobHdOrJkfWS/UJoxzK8wyLRBQ==
"@docusaurus/plugin-google-gtag@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz#42489ac5fe1c83b5523ceedd5ef74f9aa8bc251b"
integrity sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
"@types/gtag.js" "^0.0.12"
tslib "^2.6.0"
"@docusaurus/plugin-google-tag-manager@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.3.2.tgz#7ce4cf4da6ef177d63bd83beafc4a45428ff01e2"
integrity sha512-ldkR58Fdeks0vC+HQ+L+bGFSJsotQsipXD+iKXQFvkOfmPIV6QbHRd7IIcm5b6UtwOiK33PylNS++gjyLUmaGw==
"@docusaurus/plugin-google-tag-manager@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz#cebb03a5ffa1e70b37d95601442babea251329ff"
integrity sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
tslib "^2.6.0"
"@docusaurus/plugin-sitemap@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.3.2.tgz#f64fba6f03ebc14fdf55434aa2219bf80f752a13"
integrity sha512-/ZI1+bwZBhAgC30inBsHe3qY9LOZS+79fRGkNdTcGHRMcdAp6Vw2pCd1gzlxd/xU+HXsNP6cLmTOrggmRp3Ujg==
"@docusaurus/plugin-sitemap@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz#b091d64d1e3c6c872050189999580187537bcbc6"
integrity sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/logger" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/logger" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
fs-extra "^11.1.1"
sitemap "^7.1.1"
tslib "^2.6.0"
"@docusaurus/preset-classic@^3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.3.2.tgz#1c89b5f35f9e727a1c91bc03eb25a5b42b7d67a6"
integrity sha512-1SDS7YIUN1Pg3BmD6TOTjhB7RSBHJRpgIRKx9TpxqyDrJ92sqtZhomDc6UYoMMLQNF2wHFZZVGFjxJhw2VpL+Q==
"@docusaurus/preset-classic@^3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz#6082a32fbb465b0cb2c2a50ebfc277cff2c0f139"
integrity sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/plugin-content-blog" "3.3.2"
"@docusaurus/plugin-content-docs" "3.3.2"
"@docusaurus/plugin-content-pages" "3.3.2"
"@docusaurus/plugin-debug" "3.3.2"
"@docusaurus/plugin-google-analytics" "3.3.2"
"@docusaurus/plugin-google-gtag" "3.3.2"
"@docusaurus/plugin-google-tag-manager" "3.3.2"
"@docusaurus/plugin-sitemap" "3.3.2"
"@docusaurus/theme-classic" "3.3.2"
"@docusaurus/theme-common" "3.3.2"
"@docusaurus/theme-search-algolia" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/plugin-content-blog" "3.4.0"
"@docusaurus/plugin-content-docs" "3.4.0"
"@docusaurus/plugin-content-pages" "3.4.0"
"@docusaurus/plugin-debug" "3.4.0"
"@docusaurus/plugin-google-analytics" "3.4.0"
"@docusaurus/plugin-google-gtag" "3.4.0"
"@docusaurus/plugin-google-tag-manager" "3.4.0"
"@docusaurus/plugin-sitemap" "3.4.0"
"@docusaurus/theme-classic" "3.4.0"
"@docusaurus/theme-common" "3.4.0"
"@docusaurus/theme-search-algolia" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/theme-classic@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.3.2.tgz#44489580e034a6f5b877ec8bfd1203e226b4a4ab"
integrity sha512-gepHFcsluIkPb4Im9ukkiO4lXrai671wzS3cKQkY9BXQgdVwsdPf/KS0Vs4Xlb0F10fTz+T3gNjkxNEgSN9M0A==
"@docusaurus/theme-classic@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz#1b0f48edec3e3ec8927843554b9f11e5927b0e52"
integrity sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==
dependencies:
"@docusaurus/core" "3.3.2"
"@docusaurus/mdx-loader" "3.3.2"
"@docusaurus/module-type-aliases" "3.3.2"
"@docusaurus/plugin-content-blog" "3.3.2"
"@docusaurus/plugin-content-docs" "3.3.2"
"@docusaurus/plugin-content-pages" "3.3.2"
"@docusaurus/theme-common" "3.3.2"
"@docusaurus/theme-translations" "3.3.2"
"@docusaurus/types" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/mdx-loader" "3.4.0"
"@docusaurus/module-type-aliases" "3.4.0"
"@docusaurus/plugin-content-blog" "3.4.0"
"@docusaurus/plugin-content-docs" "3.4.0"
"@docusaurus/plugin-content-pages" "3.4.0"
"@docusaurus/theme-common" "3.4.0"
"@docusaurus/theme-translations" "3.4.0"
"@docusaurus/types" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
"@mdx-js/react" "^3.0.0"
clsx "^2.0.0"
copy-text-to-clipboard "^3.2.0"
@@ -1670,18 +1657,18 @@
tslib "^2.6.0"
utility-types "^3.10.0"
"@docusaurus/theme-common@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.3.2.tgz#26f8a6d26ea6c297350887f614c6dac73c2ede4a"
integrity sha512-kXqSaL/sQqo4uAMQ4fHnvRZrH45Xz2OdJ3ABXDS7YVGPSDTBC8cLebFrRR4YF9EowUHto1UC/EIklJZQMG/usA==
"@docusaurus/theme-common@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.4.0.tgz#01f2b728de6cb57f6443f52fc30675cf12a5d49f"
integrity sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==
dependencies:
"@docusaurus/mdx-loader" "3.3.2"
"@docusaurus/module-type-aliases" "3.3.2"
"@docusaurus/plugin-content-blog" "3.3.2"
"@docusaurus/plugin-content-docs" "3.3.2"
"@docusaurus/plugin-content-pages" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/mdx-loader" "3.4.0"
"@docusaurus/module-type-aliases" "3.4.0"
"@docusaurus/plugin-content-blog" "3.4.0"
"@docusaurus/plugin-content-docs" "3.4.0"
"@docusaurus/plugin-content-pages" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@types/history" "^4.7.11"
"@types/react" "*"
"@types/react-router-config" "*"
@@ -1691,19 +1678,19 @@
tslib "^2.6.0"
utility-types "^3.10.0"
"@docusaurus/theme-search-algolia@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.3.2.tgz#fe669e756697a2ca79784052e26c43a07ea7e449"
integrity sha512-qLkfCl29VNBnF1MWiL9IyOQaHxUvicZp69hISyq/xMsNvFKHFOaOfk9xezYod2Q9xx3xxUh9t/QPigIei2tX4w==
"@docusaurus/theme-search-algolia@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz#c499bad71d668df0d0f15b0e5e33e2fc4e330fcc"
integrity sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==
dependencies:
"@docsearch/react" "^3.5.2"
"@docusaurus/core" "3.3.2"
"@docusaurus/logger" "3.3.2"
"@docusaurus/plugin-content-docs" "3.3.2"
"@docusaurus/theme-common" "3.3.2"
"@docusaurus/theme-translations" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-validation" "3.3.2"
"@docusaurus/core" "3.4.0"
"@docusaurus/logger" "3.4.0"
"@docusaurus/plugin-content-docs" "3.4.0"
"@docusaurus/theme-common" "3.4.0"
"@docusaurus/theme-translations" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-validation" "3.4.0"
algoliasearch "^4.18.0"
algoliasearch-helper "^3.13.3"
clsx "^2.0.0"
@@ -1713,10 +1700,10 @@
tslib "^2.6.0"
utility-types "^3.10.0"
"@docusaurus/theme-translations@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.3.2.tgz#39ad011573ce963f1eda98ded925971ca57c5a52"
integrity sha512-bPuiUG7Z8sNpGuTdGnmKl/oIPeTwKr0AXLGu9KaP6+UFfRZiyWbWE87ti97RrevB2ffojEdvchNujparR3jEZQ==
"@docusaurus/theme-translations@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz#e6355d01352886c67e38e848b2542582ea3070af"
integrity sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==
dependencies:
fs-extra "^11.1.1"
tslib "^2.6.0"
@@ -1726,21 +1713,6 @@
resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.4.0.tgz#2b6ea208e580facc6e3330433e9b4321ef0eb3f5"
integrity sha512-0qENiJ+TRaeTzcg4olrnh0BQ7eCxTgbYWBnWUeQDc84UYkt/T3pDNnm3SiQkqPb+YQ1qtYFlC0RriAElclo8Dg==
"@docusaurus/types@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.3.2.tgz#0e17689512b22209a98f22ee80ac56899e94d390"
integrity sha512-5p201S7AZhliRxTU7uMKtSsoC8mgPA9bs9b5NQg1IRdRxJfflursXNVsgc3PcMqiUTul/v1s3k3rXXFlRE890w==
dependencies:
"@mdx-js/mdx" "^3.0.0"
"@types/history" "^4.7.11"
"@types/react" "*"
commander "^5.1.0"
joi "^17.9.2"
react-helmet-async "^1.3.0"
utility-types "^3.10.0"
webpack "^5.88.1"
webpack-merge "^5.9.0"
"@docusaurus/types@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.4.0.tgz#237c3f737e9db3f7c1a5935a3ef48d6eadde8292"
@@ -1756,32 +1728,34 @@
webpack "^5.88.1"
webpack-merge "^5.9.0"
"@docusaurus/utils-common@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.3.2.tgz#d17868a55a25186bfdb35de317a3878e867f2005"
integrity sha512-QWFTLEkPYsejJsLStgtmetMFIA3pM8EPexcZ4WZ7b++gO5jGVH7zsipREnCHzk6+eDgeaXfkR6UPaTt86bp8Og==
"@docusaurus/utils-common@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.4.0.tgz#2a43fefd35b85ab9fcc6833187e66c15f8bfbbc6"
integrity sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==
dependencies:
tslib "^2.6.0"
"@docusaurus/utils-validation@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.3.2.tgz#7109888d9c9b23eec787b41341809438f54c2aec"
integrity sha512-itDgFs5+cbW9REuC7NdXals4V6++KifgVMzoGOOOSIifBQw+8ULhy86u5e1lnptVL0sv8oAjq2alO7I40GR7pA==
"@docusaurus/utils-validation@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz#0176f6e503ff45f4390ec2ecb69550f55e0b5eb7"
integrity sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==
dependencies:
"@docusaurus/logger" "3.3.2"
"@docusaurus/utils" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/logger" "3.4.0"
"@docusaurus/utils" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
fs-extra "^11.2.0"
joi "^17.9.2"
js-yaml "^4.1.0"
lodash "^4.17.21"
tslib "^2.6.0"
"@docusaurus/utils@3.3.2":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.3.2.tgz#2571baccb5b7ed53d50b670094139a31a53558df"
integrity sha512-f4YMnBVymtkSxONv4Y8js3Gez9IgHX+Lcg6YRMOjVbq8sgCcdYK1lf6SObAuz5qB/mxiSK7tW0M9aaiIaUSUJg==
"@docusaurus/utils@3.4.0":
version "3.4.0"
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.4.0.tgz#c508e20627b7a55e2b541e4a28c95e0637d6a204"
integrity sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==
dependencies:
"@docusaurus/logger" "3.3.2"
"@docusaurus/utils-common" "3.3.2"
"@docusaurus/logger" "3.4.0"
"@docusaurus/utils-common" "3.4.0"
"@svgr/webpack" "^8.1.0"
escape-string-regexp "^4.0.0"
file-loader "^6.2.0"
@@ -1798,6 +1772,7 @@
shelljs "^0.8.5"
tslib "^2.6.0"
url-loader "^4.1.1"
utility-types "^3.10.0"
webpack "^5.88.1"
"@emotion/cache@^10.0.27":
@@ -3402,9 +3377,9 @@ autoprefixer@^10.4.14, autoprefixer@^10.4.19:
postcss-value-parser "^4.2.0"
axios@^1.4.0:
version "1.6.8"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
version "1.7.4"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2"
integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
@@ -3592,7 +3567,7 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
braces@^3.0.2, braces@~3.0.2:
braces@^3.0.3, braces@~3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
@@ -5128,7 +5103,7 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
fs-extra@^11.1.1:
fs-extra@^11.1.1, fs-extra@^11.2.0:
version "11.2.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
@@ -7055,11 +7030,11 @@ micromark@^4.0.0:
micromark-util-types "^2.0.0"
micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies:
braces "^3.0.2"
braces "^3.0.3"
picomatch "^2.3.1"
mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
@@ -9934,10 +9909,10 @@ types-ramda@^0.30.0:
dependencies:
ts-toolbelt "^9.6.0"
typescript@^5.5.2:
version "5.5.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507"
integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==
typescript@^5.5.4:
version "5.5.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba"
integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
undici-types@~5.26.4:
version "5.26.5"
@@ -10286,10 +10261,10 @@ webpack-sources@^3.2.3:
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack@^5.88.1, webpack@^5.92.1:
version "5.92.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.92.1.tgz#eca5c1725b9e189cffbd86e8b6c3c7400efc5788"
integrity sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==
webpack@^5.88.1, webpack@^5.93.0:
version "5.93.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.93.0.tgz#2e89ec7035579bdfba9760d26c63ac5c3462a5e5"
integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^1.0.5"

View File

@@ -61,6 +61,7 @@ dependencies = [
"humanize",
"importlib_metadata",
"isodate",
"jsonpath-ng>=1.6.1, <2",
"Mako>=1.2.2",
"markdown>=3.0",
"msgpack>=1.0.0, <1.1",
@@ -151,7 +152,7 @@ ocient = [
"geojson",
]
oracle = ["cx-Oracle>8.0.0, <8.1"]
pinot = ["pinotdb>=0.3.3, <0.4"]
pinot = ["pinotdb>=5.0.0, <6.0.0"]
playwright = ["playwright>=1.37.0, <2"]
postgres = ["psycopg2-binary==2.9.6"]
presto = ["pyhive[presto]>=0.6.5"]
@@ -173,6 +174,7 @@ vertica = ["sqlalchemy-vertica-python>=0.5.9, < 0.6"]
netezza = ["nzalchemy>=11.0.2"]
starrocks = ["starrocks>=1.0.0"]
doris = ["pydoris>=1.0.0, <2.0.0"]
oceanbase = ["oceanbase_py>=0.0.1"]
development = [
"docker",
"flask-testing",
@@ -229,6 +231,7 @@ module = "tests.*"
check_untyped_defs = false
disallow_untyped_calls = false
disallow_untyped_defs = false
disable_error_code = "annotation-unchecked"
[tool.tox]
legacy_tox_ini = """

View File

@@ -144,9 +144,7 @@ geopy==2.4.1
google-auth==2.29.0
# via shillelagh
greenlet==3.0.3
# via
# shillelagh
# sqlalchemy
# via shillelagh
gunicorn==22.0.0
# via apache-superset
hashids==1.3.1
@@ -173,6 +171,8 @@ jinja2==3.1.4
# via
# flask
# flask-babel
jsonpath-ng==1.6.1
# via apache-superset
jsonschema==4.17.3
# via flask-appbuilder
kombu==5.3.7
@@ -249,6 +249,8 @@ pgsanity==0.2.9
# via apache-superset
platformdirs==3.8.1
# via requests-cache
ply==3.11
# via jsonpath-ng
polyline==2.0.2
# via apache-superset
prison==0.2.1

View File

@@ -10,12 +10,12 @@
# via
# -r requirements/base.in
# -r requirements/development.in
appnope==0.1.4
# via ipython
astroid==3.1.0
# via pylint
boto3==1.34.112
# via dataflows-tabulator
# via
# apache-superset
# dataflows-tabulator
botocore==1.34.112
# via
# boto3
@@ -177,9 +177,7 @@ protobuf==4.23.0
psycopg2-binary==2.9.6
# via apache-superset
pure-sasl==0.6.2
# via
# pyhive
# thrift-sasl
# via thrift-sasl
pydata-google-auth==1.7.0
# via pandas-gbq
pydruid==0.6.9
@@ -232,18 +230,9 @@ tableschema==1.20.10
thrift==0.16.0
# via
# apache-superset
# pyhive
# thrift-sasl
thrift-sasl==0.4.3
# via
# build
# coverage
# pip-tools
# pylint
# pyproject-api
# pyproject-hooks
# pytest
# tox
# via apache-superset
tomlkit==0.12.5
# via pylint
toposort==1.10
@@ -254,9 +243,6 @@ tqdm==4.66.4
# via
# cmdstanpy
# prophet
traitlets==5.14.3
# via
# matplotlib-inline
trino==0.328.0
# via apache-superset
tzlocal==5.2

View File

@@ -52,7 +52,7 @@ GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN")
def fetch_files_github_api(url: str): # type: ignore
"""Fetches data using GitHub API."""
req = Request(url)
req.add_header("Authorization", f"token {GITHUB_TOKEN}")
req.add_header("Authorization", f"Bearer {GITHUB_TOKEN}")
req.add_header("Accept", "application/vnd.github.v3+json")
print(f"Fetching from {url}")

View File

@@ -26,48 +26,56 @@ You can use a different DB backend by defining `SUPERSET__SQLALCHEMY_DATABASE_UR
This script will not install any dependencies for you, so you must be on an already set virtualenv
## Use:
## Usage
To show all supported switches:
```$bash
```bash
scripts/tests/run.sh --help
```
From the superset repo root directory:
- Example run all tests:
```$bash
```bash
scripts/tests/run.sh
```
- Example run a single test module:
```$bash
```bash
scripts/tests/run.sh --module tests/charts/api_tests.py
```
- Example run a single test:
```$bash
```bash
scripts/tests/run.sh --module tests/charts/api_tests.py::TestChartApi::test_get_charts
```
- Example run a single test, without any init procedures. Init procedures include:
resetting test database, db upgrade, superset init, loading example data. If your tests
are idempotent, after the first run, subsequent runs are really fast
```$bash
```bash
scripts/tests/run.sh --module tests/charts/api_tests.py::TestChartApi::test_get_charts --no-init
```
- Example for not recreating the test DB (will still run all the tests init procedures)
```$bash
```bash
scripts/tests/run.sh --module tests/charts/api_tests.py::TestChartApi::test_get_charts --no-reset-db
```
- Example for not running tests just initialize the test DB (drop/create, upgrade and load examples)
```$bash
```bash
scripts/tests/run.sh --no-tests
```
- Example for just resetting the tests DB
```$bash
```bash
scripts/tests/run.sh --reset-db --no-tests
```

View File

@@ -53,6 +53,9 @@ function test_init() {
echo Superset init
echo --------------------
superset init
echo Load test users
echo --------------------
superset load-test-users
}
#

View File

@@ -15,6 +15,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd ../.. && pwd )"
LICENSE_TMP=$(mktemp)
@@ -42,10 +43,15 @@ cd $ROOT_DIR
pybabel extract \
-F superset/translations/babel.cfg \
-o superset/translations/messages.pot \
--no-location \
--sort-output \
--copyright-holder=Superset \
--project=Superset \
-k _ -k __ -k t -k tn:1,2 -k tct .
# Normalize .pot file
msgcat --sort-by-msgid --no-wrap --no-location superset/translations/messages.pot -o superset/translations/messages.pot
cat $LICENSE_TMP superset/translations/messages.pot > messages.pot.tmp \
&& mv messages.pot.tmp superset/translations/messages.pot

View File

@@ -54,6 +54,8 @@ embedDashboard({
// ...
}
},
// optional additional iframe sandbox attributes
iframeSandboxExtras: ['allow-top-navigation', 'allow-popups-to-escape-sandbox']
});
```
@@ -85,8 +87,8 @@ Guest tokens can have Row Level Security rules which filter data for the user ca
The agent making the `POST` request must be authenticated with the `can_grant_guest_token` permission.
Within your app, using the Guest Token will then allow authentication to your Superset instance via creating an Anonymous user object. This guest anonymous user will default to the public role as per this setting `GUEST_ROLE_NAME = "Public"`.
+
+The user parameters in the example below are optional and are provided as a means of passing user attributes that may be accessed in jinja templates inside your charts.
The user parameters in the example below are optional and are provided as a means of passing user attributes that may be accessed in jinja templates inside your charts.
Example `POST /security/guest_token` payload:
@@ -106,3 +108,12 @@ Example `POST /security/guest_token` payload:
]
}
```
### Sandbox iframe
The Embedded SDK creates an iframe with [sandbox](https://developer.mozilla.org/es/docs/Web/HTML/Element/iframe#sandbox) mode by default
which applies certain restrictions to the iframe's content.
To pass additional sandbox attributes you can use `iframeSandboxExtras`:
```js
// optional additional iframe sandbox attributes
iframeSandboxExtras: ['allow-top-navigation', 'allow-popups-to-escape-sandbox']
```

View File

@@ -1,12 +1,12 @@
{
"name": "@superset-ui/embedded-sdk",
"version": "0.1.0-alpha.11",
"version": "0.1.0-alpha.12",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@superset-ui/embedded-sdk",
"version": "0.1.0-alpha.11",
"version": "0.1.0-alpha.12",
"license": "Apache-2.0",
"dependencies": {
"@superset-ui/switchboard": "^0.18.26-0",
@@ -3031,12 +3031,12 @@
"dev": true
},
"node_modules/axios": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
"integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.15.0",
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -10269,12 +10269,12 @@
"dev": true
},
"axios": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
"integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
"dev": true,
"requires": {
"follow-redirects": "^1.15.0",
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
},

View File

@@ -1,6 +1,6 @@
{
"name": "@superset-ui/embedded-sdk",
"version": "0.1.0-alpha.11",
"version": "0.1.0-alpha.12",
"description": "SDK for embedding resources from Superset into your own application",
"access": "public",
"keywords": [

View File

@@ -62,6 +62,8 @@ export type EmbedDashboardParams = {
debug?: boolean
/** The iframe title attribute */
iframeTitle?: string
/** additional iframe sandbox attributes ex (allow-top-navigation, allow-popups-to-escape-sandbox) **/
iframeSandboxExtras?: string[]
}
export type Size = {
@@ -86,6 +88,7 @@ export async function embedDashboard({
dashboardUiConfig,
debug = false,
iframeTitle = "Embedded Dashboard",
iframeSandboxExtras = []
}: EmbedDashboardParams): Promise<EmbeddedDashboard> {
function log(...info: unknown[]) {
if (debug) {
@@ -135,8 +138,10 @@ export async function embedDashboard({
iframe.sandbox.add("allow-downloads"); // for downloading charts as image
iframe.sandbox.add("allow-forms"); // for forms to submit
iframe.sandbox.add("allow-popups"); // for exporting charts as csv
// add these if it turns out we need them:
// iframe.sandbox.add("allow-top-navigation");
// additional sandbox props
iframeSandboxExtras.forEach((key: string) => {
iframe.sandbox.add(key);
});
// add the event listener before setting src, to be 100% sure that we capture the load event
iframe.addEventListener('load', () => {

View File

@@ -1 +1 @@
v18.20.1
v20.16.0

View File

@@ -25,3 +25,5 @@ CHANGELOG/
*.geojson
*-topo.json
storybook-static/
/.nx/workspace-data

View File

@@ -29,7 +29,7 @@ module.exports = {
addons: [
getAbsolutePath('@storybook/addon-essentials'),
getAbsolutePath('@storybook/addon-links'),
getAbsolutePath('storybook-addon-jsx'),
'@mihkeleidast/storybook-addon-source',
getAbsolutePath('@storybook/addon-controls'),
getAbsolutePath('@storybook/addon-mdx-gfm'),
],

View File

@@ -16,8 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
import { jsxDecorator } from 'storybook-addon-jsx';
import { withJsx } from '@mihkeleidast/storybook-addon-source';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
import { AntdThemeProvider } from '../src/components/AntdThemeProvider';
import { combineReducers, createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
@@ -35,10 +36,10 @@ const store = createStore(
const themeDecorator = Story => (
<ThemeProvider theme={supersetTheme}>
<>
<AntdThemeProvider>
<GlobalStyles />
<Story />
</>
</AntdThemeProvider>
</ThemeProvider>
);
@@ -48,7 +49,7 @@ const providerDecorator = Story => (
</Provider>
);
export const decorators = [jsxDecorator, themeDecorator, providerDecorator];
export const decorators = [withJsx, themeDecorator, providerDecorator];
export const parameters = {
paddings: {

View File

@@ -86,16 +86,12 @@ describe('Charts list', () => {
saveChartToDashboard('3 - Sample dashboard');
visitChartList();
cy.getBySel('count-crosslinks').should('be.visible');
cy.getBySel('crosslinks')
.first()
.trigger('mouseover')
.then(() => {
cy.get('.ant-tooltip')
.contains('3 - Sample dashboard')
.invoke('removeAttr', 'target')
.click();
cy.wait('@get');
});
cy.getBySel('crosslinks').first().trigger('mouseover');
cy.get('.ant-tooltip')
.contains('3 - Sample dashboard')
.invoke('removeAttr', 'target')
.click();
cy.wait('@get');
});
});
@@ -293,9 +289,8 @@ describe('Charts list', () => {
// edits in list-view
setGridMode('list');
cy.getBySel('edit-alt').eq(1).click();
cy.getBySel('properties-modal-name-input')
.clear()
.type('1 - Sample chart');
cy.getBySel('properties-modal-name-input').clear();
cy.getBySel('properties-modal-name-input').type('1 - Sample chart');
cy.get('button:contains("Save")').click();
cy.wait('@update');
cy.getBySel('table-row').eq(1).contains('1 - Sample chart');

View File

@@ -43,11 +43,8 @@ const openTableContextMenu = (
cellContent: string,
tableSelector = "[data-test-viz-type='table']",
) => {
cy.get(tableSelector)
.scrollIntoView()
.contains(cellContent)
.first()
.rightclick();
cy.get(tableSelector).scrollIntoView();
cy.get(tableSelector).contains(cellContent).first().rightclick();
};
const drillBy = (targetDrillByColumn: string, isLegacy = false) => {
@@ -94,14 +91,16 @@ const testEchart = (
) => {
cy.get(`[data-test-viz-type='${vizType}'] canvas`).then($canvas => {
// click 'boy'
cy.wrap($canvas)
.scrollIntoView()
.trigger(
'mouseover',
drillClickCoordinates[0][0],
drillClickCoordinates[0][1],
)
.rightclick(drillClickCoordinates[0][0], drillClickCoordinates[0][1]);
cy.wrap($canvas).scrollIntoView();
cy.wrap($canvas).trigger(
'mouseover',
drillClickCoordinates[0][0],
drillClickCoordinates[0][1],
);
cy.wrap($canvas).rightclick(
drillClickCoordinates[0][0],
drillClickCoordinates[0][1],
);
drillBy('state').then(intercepted => {
verifyExpectedFormData(intercepted, {
@@ -139,14 +138,16 @@ const testEchart = (
// further drill
cy.get(`[data-test="drill-by-chart"] canvas`).then($canvas => {
// click 'other'
cy.wrap($canvas)
.scrollIntoView()
.trigger(
'mouseover',
drillClickCoordinates[1][0],
drillClickCoordinates[1][1],
)
.rightclick(drillClickCoordinates[1][0], drillClickCoordinates[1][1]);
cy.wrap($canvas).scrollIntoView();
cy.wrap($canvas).trigger(
'mouseover',
drillClickCoordinates[1][0],
drillClickCoordinates[1][1],
);
cy.wrap($canvas).rightclick(
drillClickCoordinates[1][0],
drillClickCoordinates[1][1],
);
drillBy(furtherDrillDimension).then(intercepted => {
verifyExpectedFormData(intercepted, {
@@ -609,10 +610,9 @@ describe('Drill by modal', () => {
it('Mixed Chart', () => {
cy.get('[data-test-viz-type="mixed_timeseries"] canvas').then($canvas => {
// click 'boy'
cy.wrap($canvas)
.scrollIntoView()
.trigger('mouseover', 70, 93)
.rightclick(70, 93);
cy.wrap($canvas).scrollIntoView();
cy.wrap($canvas).trigger('mouseover', 70, 93);
cy.wrap($canvas).rightclick(70, 93);
drillBy('name').then(intercepted => {
const { queries } = intercepted.request.body;
@@ -644,10 +644,9 @@ describe('Drill by modal', () => {
// further drill
cy.get(`[data-test="drill-by-chart"] canvas`).then($canvas => {
// click second query
cy.wrap($canvas)
.scrollIntoView()
.trigger('mouseover', 246, 114)
.rightclick(246, 114);
cy.wrap($canvas).scrollIntoView();
cy.wrap($canvas).trigger('mouseover', 246, 114);
cy.wrap($canvas).rightclick(246, 114);
drillBy('ds').then(intercepted => {
const { queries } = intercepted.request.body;

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