This is an automated email from the ASF dual-hosted git repository. hugh pushed a change to branch hugh/SO-1117-modal in repository https://gitbox.apache.org/repos/asf/incubator-superset.git.
from 0c7810a get data for owners dropdown add 9a1fcc7 chore: bump pypi cryptography from 2.4.2 to 3.2.1 (#11511) add 2d61d68 chore: add dependabot.yml config file (#11510) add e3b6dbe chore: run 'npm audit fix', bump react-syntax-highlighter (#11512) add 854a461 feat: make logo link point to welcome page (#11519) add 19f2deb refactor: Replace react-bootstrap Modals with Antd in Explore (#11389) add 5d9448f feat: globally disable underscore for links in menu items (#11491) add 6c6ded1 fix: Update "View In SQL Lab" Flow to render source query from datasource object (#11476) add a874b14 refactor: Replace react-bootstrap Tabs with Antd Tabs in DashboardBuilder (#11160) add d7aa3d7 fix(dashboard): multiple lines and indentation when editing json (#11501) add fac29f9 refactor: rewrite and enhance chart control withVerification (#11435) add fd10c47 chore: remove sanitize (#11532) add edb9619 refactor: reduce number of api calls needed to fetch favorite status for charts and dashboards (#11502) add 5e32235 docs: add Xendit to users list (#11361) add 6f2e36d fix(tests): flaky test with dttm on Query API (#11526) add eef4809 feat: annotation edit modal with antd datepicker (#11500) add 536346f feat: annotation layers delete logic + linking w/ annotation view (#11530) add 15111db refactor: Use Antd Menu in Menu component (#11528) add 1ebeffa chore: remove directory importexport (#11531) add 937f9ca refactor: Replace react-bootstrap dialogs with Antd dialogs (#11527) add ec054e1 docs: add Avesta to users list (#11551) add 094359c fix: add sort option to filters, sort chart list filter options (#11370) add 6981017 style: database modal updates (#11311) add ad98981 refactor: Replace react-bootstrap MenuItems with Antd Menu (#11487) add 128ddfa fix: Pasting text issues in MetricsControl and AdhocFilterControl inputs (#11445) add d999802 Front end for VERSIONED_EXPORT (#11559) add ef7087a fix(dashboard): properly unset mountedTab in reducer (#11558) add 3e35ddd refactor: Replace react-bootstrap MenuItems with Antd Menu (#11555) add 280ba95 chore: Cypress dashboard list selectors refactor (#11314) add 52145f8 build(deps): bump core-js from 3.2.1 to 3.6.5 in /superset-frontend (#11522) add 600a6fa chore(rls): move to feature flag and disable related view (#11575) add 39a4a62 build(deps-dev): bump @storybook/addon-essentials in /superset-frontend (#11573) add 0943603 build(deps): bump @emotion/core in /superset-frontend (#11518) add 091432e Changed top overflow for charts. (#11579) add 1490f307 refactor: Replace react-bootstrap MenuItems with Antd Menu (#11554) add 6d5d92a fix: Issues with filters and metrics popovers (#11578) add bd79bd2 feat: new report schedule models (#11550) add 79a6e9b fix(dashboard): order charts by changed_on (#11594) add 32e52e9 style: Wrap chart titles again (#11602) add a6bf95e fix: Filter and Metric popovers not closing after clicking Save (#11607) add d8373f2 chore(home-screen): fixes for loading states, flicker issue, and reduction of api calls (#11557) add d861173 chore: cleaning out old deckgl controls (#11564) add 849e7e9 build(deps-dev): bump less from 3.9.0 to 3.12.2 in /superset-frontend (#11597) add ea0abbf fix: extended droppable area on the top of dashboards (#11525) add 24ba530 Fixed unstable test (#11583) add 6ab03fe chore: clean up mountedTab (#11569) add 92a9acd fix: minor style touch on dashboards (#11570) add dda95ed feat: annotation delete modal, bulk delete and empty state (#11540) add b9284d3 fix(dashboard): use server-side lastModifiedTime for co-edit check (#11614) add 0c6aeef Fix datetime picker issues (#11621) add 5be1dbe feat(dashboard): leaner filter indicator panel with wrapped text (#11592) add d315dd9 style: fixing tall filter indicators (#11631) add 966a826 fix: js unit test when save dash (#11632) add 4d41cf9 Disabled bubble test (#11630) add 51712bf fix: CommandInvalidError had invalid init (#11635) add cd0198a Chore: simplify Apache Kylin datetime convert (#11521) add 3b89d23 fix: card thumbnails now always show border. (#11638) add cf86889 chore: rename IMPORT_EXPORT_VERSION (#11636) add 777a84c Enabled artifacts for failing tests (#11584) add 98d1c69 refactor: Remove reactable arc (#11535) add 4eff80c chore: enabled cypress test in filter file (#11458) add 14aa729 build(deps-dev): update cypress to 5.5.0, improvements for running locally (#11603) add 339d0d7 feat(sankey-viz): allow sort by metric and bump superset-ui packages (#11626) add 7524517 chore: pin node and npm versions (#11646) add 73cc938 style: various little tweaks to home screen stylin' (#11650) add 329e728 fix(saved-query): handle case where sql_tables in undefined (#11649) add 77dff0e fix(chart-data): ignore orderby on sample result type (#11656) add a9f9c4b [fix] handle null value in date filter (#11655) add 4f21dea feat(dev): dont override asset manifest in dev-server (#11648) add 7cbf21c build: set actions/setup-python to v2 (#11644) add f3b68cb add import icon (#11652) add 4a070cf chore: consolidate dashboard import logic (#11529) add 6ef4d2a Restructure chart header to wrap nicely (#11643) add 45738ff chore: consolidate datasource import logic (#11533) add 302c960 fix: database connection validation when creation (#11653) add 2718909 feat: add ECharts BoxPlot chart (#11199) add 542d2e3 chore: clean up a debug line from #11653 (#11663) add b277f19 keep placeholder on multiselect (#11289) add 4af7264 fix: make higher chart box resizable (#11673) add 0338b48 fix (dashboard): remove default filters parameters in dashboard url (#11661) add 1dc4c47 fix(dashboard): ordering for add chart widget (#11672) add 12cb27f feat: new reports models api (#11606) add 432e5ab feat: Query History CRUD list view (#11574) add 5cb6c25 docs: add support for Google Analytics on superset.apache.org (#11613) add 3ad65bc fix: Dropdown menu not closing on Dashboard view (#11671) add ec8ccd4 feat: keep modal open when saving database failed (#11618) add 95246e8 feat: Adding docker build/push (#11616) add 218f58e fix(saved query): handle null sql field (#11679) add 68693c7 feat: Helm improvements (#11700) add 4cfcaeb feat: rename TABLE_NAMES_CACHE_CONFIG to DATA_CACHE_CONFIG (#11509) add 2b107ed Fix overflow hidden issues in Dashboard Builder tabs (#11691) add 7d27996 chore: remove a few obsolete logic (#11676) add 700c7c5 build(cypress): Fix issue with cypress code-coverage plugin when running locally (#11698) add 2f036e9 chore: V1 charts load cypress tests (#11685) add a16a2b8 chore: statds metrics for cache invalidation (#11701) add 5700f8d Switching Docker compose over to the official image (#11707) add 86651cd fix: default dashboard/chart cards are vector with perfect corners (#11684) add 3e6bcbb Remove "required" from SaveModal Add to dashboard field (#11693) add 871a98a refactor: Load fonts from packages rather than local binaries (#11718) add 7bc353f feat: new import commands for dataset and databases (#11670) add 274420b Fix ModalTriggers styling in SqlLab (#11719) add 8a39f27 Fix "Select all" option in SelectControl (#11692) add c241c6f fix: prior npm font source had a glitch (#11724) add 01d15f5 feat(templating): Safer Jinja template processing (#11704) add b3ead23 chore: remove SIP_34_ANNOTATIONS_UI feature flag (#11727) add cce716a feat: API endpoints to upload dataset/db (#11728) add 1371939 Fix missing styles in FilterScopeSelector modal (#11726) new b8fe70e fix merge conflicts The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .github/dependabot.yml | 17 + .github/workflows/docker.yml | 18 + .github/workflows/docker_build_push.sh | 77 + .github/workflows/superset-e2e.yml | 8 +- .github/workflows/superset-python.yml | 16 +- .github/workflows/superset-translations.yml | 2 +- .github/workflows/test-docker.yml | 22 - .github/workflows/test-hive.yml | 2 +- .github/workflows/test-presto.yml | 2 +- .gitignore | 1 + .rat-excludes | 1 + CONTRIBUTING.md | 35 +- Dockerfile-dev | 32 - INTHEWILD.md | 2 + UPDATING.md | 344 +- docker-compose.yml | 14 +- docs/gatsby-config.js | 11 + docs/installation.rst | 17 +- docs/package-lock.json | 5291 +++++++------- docs/package.json | 36 +- docs/src/pages/docs/installation/caching.mdx | 22 +- helm/superset/templates/_helpers.tpl | 1 + .../{deployment.yaml => deployment-worker.yaml} | 23 +- helm/superset/templates/deployment.yaml | 5 + helm/superset/templates/init-job.yaml | 3 + helm/superset/values.yaml | 22 +- requirements/base.txt | 2 +- setup.py | 2 +- superset-frontend/.nvmrc | 1 + superset-frontend/cypress-base/cypress.json | 3 +- .../integration/chart_list/card_view.test.ts | 3 +- .../cypress/integration/dashboard/controls.test.js | 83 +- .../integration/dashboard/edit_mode.test.js | 5 +- .../integration/dashboard/edit_properties.test.ts | 4 +- .../cypress/integration/dashboard/filter.test.ts | 58 +- .../cypress/integration/dashboard/load.test.js | 34 +- .../cypress/integration/dashboard/markdown.test.ts | 5 + .../cypress/integration/dashboard/tabs.test.js | 27 +- .../integration/dashboard/url_params.test.js | 23 +- .../integration/dashboard_list/card_view.test.ts | 82 +- .../integration/dashboard_list/filter.test.ts | 36 +- .../integration/dashboard_list/list_view.test.ts | 34 +- .../cypress/integration/database/helper.ts} | 2 +- .../cypress/integration/database/modal.test.ts | 73 + .../integration/explore/AdhocFilters.test.ts | 27 +- .../integration/explore/AdhocMetrics.test.ts | 18 + .../cypress/integration/explore/control.test.ts | 4 +- .../cypress/integration/explore/link.test.js | 4 +- .../explore/visualizations/box_plot.test.js | 28 +- .../explore/visualizations/bubble.test.js | 29 +- .../integration/explore/visualizations/pie.test.js | 2 +- .../cypress-base/cypress/support/index.ts | 20 +- .../cypress-base/cypress/utils/vizPlugins.ts | 51 + superset-frontend/cypress-base/package-lock.json | 1443 ++-- superset-frontend/cypress-base/package.json | 8 +- superset-frontend/cypress_build.sh | 9 +- superset-frontend/fonts/FiraCode/specimen.less | 59 - .../fonts/FiraCode/woff/FiraCode-Bold.woff | Bin 159636 -> 0 bytes .../fonts/FiraCode/woff/FiraCode-Light.woff | Bin 144956 -> 0 bytes .../fonts/FiraCode/woff/FiraCode-Medium.woff | Bin 146332 -> 0 bytes .../fonts/FiraCode/woff/FiraCode-Regular.woff | Bin 146868 -> 0 bytes .../fonts/FiraCode/woff/FiraCode-Retina.woff | Bin 145500 -> 0 bytes .../fonts/FiraCode/woff/FiraCode-VF.woff | Bin 130108 -> 0 bytes .../fonts/FiraCode/woff2/FiraCode-Bold.woff2 | Bin 122208 -> 0 bytes .../fonts/FiraCode/woff2/FiraCode-Light.woff2 | Bin 113032 -> 0 bytes .../fonts/FiraCode/woff2/FiraCode-Medium.woff2 | Bin 113720 -> 0 bytes .../fonts/FiraCode/woff2/FiraCode-Regular.woff2 | Bin 114456 -> 0 bytes .../fonts/FiraCode/woff2/FiraCode-Retina.woff2 | Bin 113088 -> 0 bytes .../fonts/FiraCode/woff2/FiraCode-VF.woff2 | Bin 106584 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Black.woff | Bin 140036 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Black.woff2 | Bin 104524 -> 0 bytes .../fonts/InterUI/Inter-BlackItalic.woff | Bin 145924 -> 0 bytes .../fonts/InterUI/Inter-BlackItalic.woff2 | Bin 109900 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Bold.woff | Bin 143708 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Bold.woff2 | Bin 107400 -> 0 bytes .../fonts/InterUI/Inter-BoldItalic.woff | Bin 149420 -> 0 bytes .../fonts/InterUI/Inter-BoldItalic.woff2 | Bin 112580 -> 0 bytes .../fonts/InterUI/Inter-ExtraBold.woff | Bin 143552 -> 0 bytes .../fonts/InterUI/Inter-ExtraBold.woff2 | Bin 107552 -> 0 bytes .../fonts/InterUI/Inter-ExtraBoldItalic.woff | Bin 149196 -> 0 bytes .../fonts/InterUI/Inter-ExtraBoldItalic.woff2 | Bin 112876 -> 0 bytes .../fonts/InterUI/Inter-ExtraLight.woff | Bin 141864 -> 0 bytes .../fonts/InterUI/Inter-ExtraLight.woff2 | Bin 105960 -> 0 bytes .../fonts/InterUI/Inter-ExtraLightItalic.woff | Bin 148688 -> 0 bytes .../fonts/InterUI/Inter-ExtraLightItalic.woff2 | Bin 112056 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Italic.woff | Bin 142744 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Italic.woff2 | Bin 107508 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Light.woff | Bin 141528 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Light.woff2 | Bin 105640 -> 0 bytes .../fonts/InterUI/Inter-LightItalic.woff | Bin 148436 -> 0 bytes .../fonts/InterUI/Inter-LightItalic.woff2 | Bin 111968 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Medium.woff | Bin 142836 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Medium.woff2 | Bin 106720 -> 0 bytes .../fonts/InterUI/Inter-MediumItalic.woff | Bin 149184 -> 0 bytes .../fonts/InterUI/Inter-MediumItalic.woff2 | Bin 112504 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Regular.woff | Bin 134652 -> 0 bytes .../fonts/InterUI/Inter-Regular.woff2 | Bin 100124 -> 0 bytes .../fonts/InterUI/Inter-SemiBold.woff | Bin 143248 -> 0 bytes .../fonts/InterUI/Inter-SemiBold.woff2 | Bin 107232 -> 0 bytes .../fonts/InterUI/Inter-SemiBoldItalic.woff | Bin 149276 -> 0 bytes .../fonts/InterUI/Inter-SemiBoldItalic.woff2 | Bin 112552 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Thin.woff | Bin 136952 -> 0 bytes superset-frontend/fonts/InterUI/Inter-Thin.woff2 | Bin 101408 -> 0 bytes .../fonts/InterUI/Inter-ThinItalic.woff | Bin 144412 -> 0 bytes .../fonts/InterUI/Inter-ThinItalic.woff2 | Bin 107496 -> 0 bytes .../fonts/InterUI/Inter-italic.var.woff2 | Bin 240688 -> 0 bytes .../fonts/InterUI/Inter-roman.var.woff2 | Bin 226368 -> 0 bytes superset-frontend/fonts/InterUI/Inter.var.woff2 | Bin 316604 -> 0 bytes superset-frontend/images/chart-card-fallback.png | Bin 3183 -> 0 bytes superset-frontend/images/chart-card-fallback.svg | 27 + .../images/dashboard-card-fallback.png | Bin 2621 -> 0 bytes .../images/dashboard-card-fallback.svg | 22 + superset-frontend/images/empty-charts.png | Bin 2274 -> 0 bytes superset-frontend/images/empty-charts.svg | 30 + superset-frontend/images/empty-dashboard.png | Bin 1467 -> 0 bytes superset-frontend/images/empty-dashboard.svg | 26 + superset-frontend/images/empty-queries.png | Bin 1791 -> 0 bytes superset-frontend/images/empty-queries.svg | 35 + superset-frontend/images/icons/import.svg | 22 + .../images/icons/{placeholder.svg => offline.svg} | 2 +- .../images/icons/{field_num.svg => queued.svg} | 4 +- superset-frontend/images/icons/running.svg | 21 + superset-frontend/images/star-circle.png | Bin 2705 -> 0 bytes superset-frontend/images/star-circle.svg | 22 + superset-frontend/images/union.png | Bin 1694 -> 3199 bytes superset-frontend/images/{empty.svg => union.svg} | 2 +- superset-frontend/package-lock.json | 7517 +++++++++++--------- superset-frontend/package.json | 78 +- .../spec/javascripts/components/Menu_spec.jsx | 7 +- .../spec/javascripts/components/SubMenu_spec.jsx | 6 +- .../dashboard/components/DashboardBuilder_spec.jsx | 3 +- .../components/HeaderActionsDropdown_spec.jsx | 85 +- .../dashboard/components/PropertiesModal_spec.jsx | 9 +- .../components/gridComponents/Chart_spec.jsx | 2 +- .../components/gridComponents/Header_spec.jsx | 2 +- .../components/gridComponents/Markdown_spec.jsx | 2 +- .../components/gridComponents/Tab_spec.jsx | 38 - .../components/gridComponents/Tabs_spec.jsx | 52 +- .../dashboard/reducers/dashboardState_spec.js | 15 +- .../datasource/DatasourceModal_spec.jsx | 4 +- .../explore/components/AdhocFilterControl_spec.jsx | 14 +- ...AdhocFilterEditPopoverSimpleTabContent_spec.jsx | 12 - .../components/AdhocFilterEditPopover_spec.jsx | 4 +- .../components/AdhocMetricEditPopover_spec.jsx | 4 +- .../explore/components/DateFilterControl_spec.jsx | 13 + .../explore/components/DisplayQueryButton_spec.jsx | 6 +- .../explore/components/MetricsControl_spec.jsx | 26 +- .../explore/components/SaveModal_spec.jsx | 7 +- .../explore/components/SelectControl_spec.jsx | 156 +- .../explore/components/VizTypeControl_spec.jsx | 8 +- .../components/withAsyncVerification_spec.tsx | 142 + .../explore/components/withVerification_spec.jsx | 127 - .../views/CRUD/annotation/AnnotationList_spec.jsx | 58 +- .../AnnotationModal_spec.jsx} | 51 +- .../annotationlayers/AnnotationLayersList_spec.jsx | 50 +- .../views/CRUD/welcome/ActivityTable_spec.tsx | 49 +- .../views/CRUD/welcome/ChartTable_spec.tsx | 9 +- .../views/CRUD/welcome/DashboardTable_spec.tsx | 33 +- .../views/CRUD/welcome/SavedQueries_spec.tsx | 32 +- .../views/CRUD/welcome/Welcome_spec.tsx | 45 +- superset-frontend/src/SqlLab/components/App.jsx | 9 +- .../SqlLab/components/EstimateQueryCostButton.jsx | 100 +- .../SqlLab/components/ExploreCtasResultsButton.jsx | 6 - .../src/SqlLab/components/ExploreResultsButton.jsx | 7 +- superset-frontend/src/SqlLab/main.less | 3 +- superset-frontend/src/chart/Chart.jsx | 2 - superset-frontend/src/chart/chartAction.js | 9 +- .../index.tsx => common/components/DatePicker.tsx} | 7 +- .../src/common/components/InfoTooltip.tsx | 80 + .../src/common/components/Modal/Modal.tsx | 22 +- .../src/common/components/Tabs/Tabs.tsx | 55 +- .../src/common/components/common.stories.tsx | 62 + superset-frontend/src/common/components/index.tsx | 54 +- superset-frontend/src/components/Button/index.tsx | 18 +- .../src/components/CopyToClipboard.jsx | 29 +- .../src/components/FacePile/index.tsx | 4 +- superset-frontend/src/components/FaveStar.tsx | 6 +- superset-frontend/src/components/Icon/index.tsx | 152 +- .../src/components/ListView/Filters.tsx | 1 + .../src/components/ListView/ListView.tsx | 19 +- .../src/components/ListViewCard/ImageLoader.tsx | 7 +- .../ListViewCard/ListViewCard.stories.tsx | 4 +- .../src/components/ListViewCard/index.tsx | 58 +- .../src/components/Menu/LanguagePicker.tsx | 30 +- superset-frontend/src/components/Menu/Menu.tsx | 147 +- .../src/components/Menu/MenuObject.tsx | 37 +- superset-frontend/src/components/Menu/NewMenu.tsx | 16 +- superset-frontend/src/components/Menu/SubMenu.tsx | 23 +- superset-frontend/src/components/ModalTrigger.jsx | 11 - .../src/components/NavDropdown/index.tsx | 9 - .../src/components/Select/Select.stories.tsx | 129 + superset-frontend/src/components/Select/styles.tsx | 49 +- .../src/components/TableView/index.ts | 1 + .../src/components/URLShortLinkButton.jsx | 3 +- .../src/components/URLShortLinkModal.jsx | 2 - .../components/dataViewCommon/TableCollection.tsx | 2 + .../{components/ListView/index.ts => constants.ts} | 5 +- .../src/dashboard/actions/dashboardState.js | 18 +- .../src/dashboard/actions/sliceEntities.js | 43 +- .../src/dashboard/components/CssEditor.jsx | 1 - .../src/dashboard/components/DashboardBuilder.jsx | 10 +- .../src/dashboard/components/DashboardGrid.jsx | 2 +- .../components/FiltersBadge/DetailsPanel.tsx | 42 +- .../dashboard/components/FiltersBadge/Styles.tsx | 31 +- .../dashboard/components/HeaderActionsDropdown.jsx | 172 +- .../src/dashboard/components/PropertiesModal.jsx | 112 +- .../dashboard/components/RefreshIntervalModal.jsx | 1 - .../src/dashboard/components/SaveModal.jsx | 3 - .../src/dashboard/components/SliceAdder.jsx | 38 +- .../dashboard/components/SliceHeaderControls.jsx | 197 +- .../dashboard/components/gridComponents/Chart.jsx | 27 +- .../dashboard/components/gridComponents/Tab.jsx | 54 +- .../dashboard/components/gridComponents/Tabs.jsx | 141 +- .../dashboard/components/menu/PopoverDropdown.jsx | 62 +- .../src/dashboard/containers/DashboardBuilder.jsx | 2 - .../dashboard/containers/DashboardComponent.jsx | 3 +- .../src/dashboard/reducers/dashboardInfo.js | 3 +- .../src/dashboard/reducers/dashboardState.js | 14 +- .../dashboard/stylesheets/components/chart.less | 12 - .../dashboard/stylesheets/components/index.less | 1 - .../dashboard/stylesheets/components/markdown.less | 8 - .../src/dashboard/stylesheets/components/tabs.less | 106 - .../src/dashboard/stylesheets/dashboard.less | 49 +- .../src/dashboard/stylesheets/dnd.less | 23 +- .../stylesheets/filter-scope-selector.less | 1 + .../src/dashboard/stylesheets/popover-menu.less | 6 +- superset-frontend/src/dashboard/util/constants.ts | 3 - .../src/datasource/DatasourceModal.tsx | 30 +- .../src/explore/actions/exploreActions.ts | 3 +- .../explore/components/AdhocFilterEditPopover.jsx | 17 +- .../AdhocFilterEditPopoverSimpleTabContent.jsx | 51 +- .../AdhocFilterEditPopoverSqlTabContent.jsx | 2 +- .../src/explore/components/AdhocFilterOption.jsx | 19 +- .../explore/components/AdhocMetricEditPopover.jsx | 45 +- .../src/explore/components/AdhocMetricOption.jsx | 19 +- .../src/explore/components/Control.tsx | 2 +- .../explore/components/ControlPanelsContainer.jsx | 1 + .../src/explore/components/DisplayQueryButton.jsx | 379 +- .../src/explore/components/ExploreChartHeader.jsx | 96 +- .../explore/components/ExploreViewContainer.jsx | 1 - .../src/explore/components/PropertiesModal.tsx | 106 +- .../src/explore/components/QueryAndSaveBtns.jsx | 1 + .../src/explore/components/SaveModal.jsx | 81 +- .../components/controls/AdhocFilterControl.jsx | 9 +- .../components/controls/AnnotationLayer.jsx | 4 +- .../components/controls/DatasourceControl.jsx | 23 +- .../components/controls/DateFilterControl.jsx | 230 +- .../explore/components/controls/MetricsControl.jsx | 23 +- .../explore/components/controls/SelectControl.jsx | 95 +- .../explore/components/controls/VizTypeControl.jsx | 215 +- .../src/explore/components/controls/index.js | 16 - .../components/controls/withAsyncVerification.tsx | 224 + .../components/controls/withVerification.jsx | 92 - .../src/explore/controlPanels/DeckArc.js | 143 - .../src/explore/controlPanels/DeckGeojson.js | 101 - .../src/explore/controlPanels/DeckGrid.js | 70 - .../src/explore/controlPanels/DeckHex.js | 100 - .../src/explore/controlPanels/DeckMulti.js | 66 - .../src/explore/controlPanels/DeckPath.js | 74 - .../src/explore/controlPanels/DeckPolygon.js | 166 - .../src/explore/controlPanels/DeckScatter.js | 165 - .../src/explore/controlPanels/DeckScreengrid.js | 75 - .../src/explore/controlPanels/Shared_DeckGL.jsx | 377 - superset-frontend/src/featureFlags.ts | 2 + .../src/messageToasts/actions/index.ts | 47 +- .../src/messageToasts/reducers/index.js | 6 +- superset-frontend/src/messageToasts/types.ts | 3 + superset-frontend/src/setup/setupPlugins.ts | 20 +- .../src/utils/getClientErrorObject.ts | 2 + superset-frontend/src/views/App.tsx | 6 + .../src/views/CRUD/annotation/AnnotationList.tsx | 222 +- .../src/views/CRUD/annotation/AnnotationModal.tsx | 336 + .../src/views/CRUD/annotation/types.ts | 10 +- .../CRUD/annotationlayers/AnnotationLayerModal.tsx | 4 +- .../CRUD/annotationlayers/AnnotationLayersList.tsx | 155 +- .../src/views/CRUD/chart/ChartCard.tsx | 94 +- .../src/views/CRUD/chart/ChartList.tsx | 106 +- .../src/views/CRUD/dashboard/DashboardCard.tsx | 96 +- .../src/views/CRUD/dashboard/DashboardList.tsx | 48 +- superset-frontend/src/views/CRUD/data/common.ts | 7 + .../src/views/CRUD/data/database/DatabaseList.tsx | 67 +- .../src/views/CRUD/data/database/DatabaseModal.tsx | 103 +- .../src/views/CRUD/data/dataset/DatasetList.tsx | 63 +- .../src/views/CRUD/data/query/QueryList.test.tsx | 100 + .../src/views/CRUD/data/query/QueryList.tsx | 349 + .../views/CRUD/data/savedquery/SavedQueryList.tsx | 18 +- .../data/savedquery/SavedQueryPreviewModal.tsx | 2 +- superset-frontend/src/views/CRUD/hooks.ts | 139 +- superset-frontend/src/views/CRUD/types.ts | 16 +- superset-frontend/src/views/CRUD/utils.tsx | 89 +- .../src/views/CRUD/welcome/ActivityTable.tsx | 114 +- .../src/views/CRUD/welcome/ChartTable.tsx | 48 +- .../src/views/CRUD/welcome/DashboardTable.tsx | 67 +- .../src/views/CRUD/welcome/EmptyState.tsx | 107 +- .../src/views/CRUD/welcome/SavedQueries.tsx | 135 +- .../src/views/CRUD/welcome/Welcome.tsx | 97 +- .../src/visualizations/FilterBox/FilterBox.less | 6 +- .../src/visualizations/presets/MainPreset.js | 4 +- .../stylesheets/less/font_specimens/fira_code.less | 63 - .../stylesheets/less/font_specimens/inter_ui.less | 225 - superset-frontend/stylesheets/less/fonts.less | 9 +- superset-frontend/stylesheets/less/variables.less | 2 +- superset-frontend/stylesheets/superset.less | 6 - superset-frontend/webpack.config.js | 30 +- superset/__init__.py | 4 +- superset/annotation_layers/annotations/api.py | 2 + superset/app.py | 13 +- superset/cachekeys/api.py | 6 + superset/charts/api.py | 52 +- superset/charts/commands/export.py | 9 +- superset/charts/dao.py | 15 + superset/charts/schemas.py | 94 +- superset/cli.py | 41 +- superset/commands/exceptions.py | 2 +- .../commands/base.py => commands/export.py} | 4 +- .../commands/importers/exceptions.py | 11 +- .../commands/importers/v1}/__init__.py | 0 superset/commands/importers/v1/utils.py | 67 + superset/common/query_context.py | 12 +- superset/config.py | 45 +- superset/connectors/druid/models.py | 58 +- superset/connectors/sqla/models.py | 97 +- superset/connectors/sqla/views.py | 1 - superset/constants.py | 1 + superset/dao/base.py | 4 +- superset/dashboards/api.py | 52 + superset/dashboards/commands/export.py | 9 +- .../dashboards/commands/importers}/__init__.py | 0 superset/dashboards/commands/importers/v0.py | 338 + superset/dashboards/dao.py | 17 + superset/dashboards/schemas.py | 13 + superset/databases/api.py | 56 + superset/databases/commands/create.py | 9 +- superset/databases/commands/export.py | 13 +- .../databases/commands/importers}/__init__.py | 0 .../databases/commands/importers/dispatcher.py | 68 + .../databases/commands/importers/v1/__init__.py | 116 + .../commands/importers/v1/utils.py} | 26 +- superset/databases/schemas.py | 30 +- superset/datasets/api.py | 56 + superset/datasets/commands/export.py | 13 +- .../datasets/commands/importers}/__init__.py | 0 superset/datasets/commands/importers/dispatcher.py | 73 + superset/datasets/commands/importers/v0.py | 321 + .../datasets/commands/importers/v1/__init__.py | 121 + .../{filters.py => commands/importers/v1/utils.py} | 31 +- superset/datasets/schemas.py | 45 + superset/db_engine_specs/hive.py | 5 +- superset/db_engine_specs/kylin.py | 6 +- superset/db_engine_specs/presto.py | 6 +- superset/extensions.py | 39 +- superset/jinja_context.py | 187 +- .../versions/49b5a32daba5_add_report_schedules.py | 133 + superset/models/core.py | 35 +- superset/models/dashboard.py | 221 +- superset/models/helpers.py | 2 +- superset/models/reports.py | 180 + superset/models/slice.py | 47 +- superset/queries/api.py | 3 +- superset/queries/saved_queries/commands/export.py | 15 +- {tests/security => superset/reports}/__init__.py | 0 superset/{annotation_layers => reports}/api.py | 209 +- .../reports/commands}/__init__.py | 0 superset/reports/commands/base.py | 63 + .../commands/bulk_delete.py | 22 +- superset/reports/commands/create.py | 98 + .../annotations => reports}/commands/delete.py | 26 +- superset/reports/commands/exceptions.py | 112 + superset/reports/commands/update.py | 101 + superset/reports/dao.py | 137 + .../annotations => reports}/filters.py | 11 +- .../security => superset/reports/logs}/__init__.py | 0 superset/reports/logs/api.py | 196 + superset/{queries => reports/logs}/schemas.py | 9 +- superset/reports/schemas.py | 209 + superset/security/manager.py | 2 + superset/stats_logger.py | 16 +- superset/utils/cache.py | 140 +- superset/utils/cache_manager.py | 30 +- superset/utils/core.py | 10 + superset/utils/dashboard_import_export.py | 67 - superset/utils/decorators.py | 91 - superset/utils/dict_import_export.py | 42 +- superset/utils/import_datasource.py | 105 - superset/utils/pandas_postprocessing.py | 179 +- superset/utils/screenshots.py | 2 +- superset/views/annotations.py | 10 +- superset/views/base.py | 31 +- superset/views/base_api.py | 25 +- superset/views/core.py | 35 +- superset/views/database/views.py | 4 +- superset/viz.py | 113 +- superset/viz_sip38.py | 18 +- tests/annotation_layers/api_tests.py | 1 + tests/cache_tests.py | 51 +- tests/charts/api_tests.py | 31 +- tests/charts/commands_tests.py | 6 +- .../cockroachdb.py => tests/commands_test.py | 12 +- tests/core_tests.py | 93 +- tests/dashboard_tests.py | 3 +- tests/dashboards/api_tests.py | 31 +- tests/dashboards/commands_tests.py | 27 +- tests/databases/api_tests.py | 134 +- tests/databases/commands_tests.py | 209 +- tests/datasets/api_tests.py | 106 +- tests/datasets/commands_tests.py | 161 +- tests/fixtures/dataframes.py | 10 + tests/fixtures/importexport.py | 90 + tests/fixtures/query_context.py | 2 +- tests/import_export_tests.py | 62 +- tests/jinja_context_tests.py | 197 +- tests/pandas_postprocessing_tests.py | 114 +- tests/queries/api_tests.py | 8 +- tests/queries/saved_queries/commands_tests.py | 6 +- tests/{security => reports}/__init__.py | 0 tests/reports/api_tests.py | 864 +++ tests/stats_logger_tests.py | 4 +- tests/superset_test_config.py | 14 +- tox.ini | 63 +- 419 files changed, 19637 insertions(+), 13188 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/docker.yml create mode 100755 .github/workflows/docker_build_push.sh delete mode 100644 .github/workflows/test-docker.yml delete mode 100644 Dockerfile-dev copy helm/superset/templates/{deployment.yaml => deployment-worker.yaml} (81%) create mode 100644 superset-frontend/.nvmrc copy superset-frontend/{spec/__mocks__/styleMock.js => cypress-base/cypress/integration/database/helper.ts} (94%) create mode 100644 superset-frontend/cypress-base/cypress/integration/database/modal.test.ts create mode 100644 superset-frontend/cypress-base/cypress/utils/vizPlugins.ts delete mode 100644 superset-frontend/fonts/FiraCode/specimen.less delete mode 100644 superset-frontend/fonts/FiraCode/woff/FiraCode-Bold.woff delete mode 100644 superset-frontend/fonts/FiraCode/woff/FiraCode-Light.woff delete mode 100644 superset-frontend/fonts/FiraCode/woff/FiraCode-Medium.woff delete mode 100644 superset-frontend/fonts/FiraCode/woff/FiraCode-Regular.woff delete mode 100644 superset-frontend/fonts/FiraCode/woff/FiraCode-Retina.woff delete mode 100644 superset-frontend/fonts/FiraCode/woff/FiraCode-VF.woff delete mode 100644 superset-frontend/fonts/FiraCode/woff2/FiraCode-Bold.woff2 delete mode 100644 superset-frontend/fonts/FiraCode/woff2/FiraCode-Light.woff2 delete mode 100644 superset-frontend/fonts/FiraCode/woff2/FiraCode-Medium.woff2 delete mode 100644 superset-frontend/fonts/FiraCode/woff2/FiraCode-Regular.woff2 delete mode 100644 superset-frontend/fonts/FiraCode/woff2/FiraCode-Retina.woff2 delete mode 100644 superset-frontend/fonts/FiraCode/woff2/FiraCode-VF.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Black.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Black.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-BlackItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-BlackItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Bold.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Bold.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-BoldItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-BoldItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraBold.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraBold.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraBoldItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraBoldItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraLight.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraLight.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraLightItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-ExtraLightItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Italic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Italic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Light.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Light.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-LightItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-LightItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Medium.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Medium.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-MediumItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-MediumItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Regular.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Regular.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-SemiBold.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-SemiBold.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-SemiBoldItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-SemiBoldItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-Thin.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-Thin.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-ThinItalic.woff delete mode 100644 superset-frontend/fonts/InterUI/Inter-ThinItalic.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-italic.var.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter-roman.var.woff2 delete mode 100644 superset-frontend/fonts/InterUI/Inter.var.woff2 delete mode 100644 superset-frontend/images/chart-card-fallback.png create mode 100644 superset-frontend/images/chart-card-fallback.svg delete mode 100644 superset-frontend/images/dashboard-card-fallback.png create mode 100644 superset-frontend/images/dashboard-card-fallback.svg delete mode 100644 superset-frontend/images/empty-charts.png create mode 100644 superset-frontend/images/empty-charts.svg delete mode 100644 superset-frontend/images/empty-dashboard.png create mode 100644 superset-frontend/images/empty-dashboard.svg delete mode 100644 superset-frontend/images/empty-queries.png create mode 100644 superset-frontend/images/empty-queries.svg create mode 100644 superset-frontend/images/icons/import.svg copy superset-frontend/images/icons/{placeholder.svg => offline.svg} (93%) copy superset-frontend/images/icons/{field_num.svg => queued.svg} (75%) create mode 100644 superset-frontend/images/icons/running.svg delete mode 100644 superset-frontend/images/star-circle.png create mode 100644 superset-frontend/images/star-circle.svg copy superset-frontend/images/{empty.svg => union.svg} (84%) create mode 100644 superset-frontend/spec/javascripts/explore/components/withAsyncVerification_spec.tsx delete mode 100644 superset-frontend/spec/javascripts/explore/components/withVerification_spec.jsx copy superset-frontend/spec/javascripts/views/CRUD/{csstemplates/CssTemplateModal_spec.jsx => annotation/AnnotationModal_spec.jsx} (58%) copy superset-frontend/src/{SqlLab/index.tsx => common/components/DatePicker.tsx} (83%) create mode 100644 superset-frontend/src/common/components/InfoTooltip.tsx create mode 100644 superset-frontend/src/components/Select/Select.stories.tsx copy superset-frontend/src/{components/ListView/index.ts => constants.ts} (88%) delete mode 100644 superset-frontend/src/dashboard/stylesheets/components/tabs.less create mode 100644 superset-frontend/src/explore/components/controls/withAsyncVerification.tsx delete mode 100644 superset-frontend/src/explore/components/controls/withVerification.jsx delete mode 100644 superset-frontend/src/explore/controlPanels/DeckArc.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckGeojson.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckGrid.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckHex.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckMulti.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckPath.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckPolygon.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckScatter.js delete mode 100644 superset-frontend/src/explore/controlPanels/DeckScreengrid.js delete mode 100644 superset-frontend/src/explore/controlPanels/Shared_DeckGL.jsx create mode 100644 superset-frontend/src/views/CRUD/annotation/AnnotationModal.tsx create mode 100644 superset-frontend/src/views/CRUD/data/query/QueryList.test.tsx create mode 100644 superset-frontend/src/views/CRUD/data/query/QueryList.tsx delete mode 100644 superset-frontend/stylesheets/less/font_specimens/fira_code.less delete mode 100644 superset-frontend/stylesheets/less/font_specimens/inter_ui.less rename superset/{importexport/commands/base.py => commands/export.py} (95%) copy tests/superset_test_config_sqllab_backend_persist.py => superset/commands/importers/exceptions.py (82%) copy {tests/security => superset/commands/importers/v1}/__init__.py (100%) create mode 100644 superset/commands/importers/v1/utils.py copy {tests/security => superset/dashboards/commands/importers}/__init__.py (100%) create mode 100644 superset/dashboards/commands/importers/v0.py copy {tests/security => superset/databases/commands/importers}/__init__.py (100%) create mode 100644 superset/databases/commands/importers/dispatcher.py create mode 100644 superset/databases/commands/importers/v1/__init__.py copy superset/{utils/hashing.py => databases/commands/importers/v1/utils.py} (56%) copy {tests/security => superset/datasets/commands/importers}/__init__.py (100%) create mode 100644 superset/datasets/commands/importers/dispatcher.py create mode 100644 superset/datasets/commands/importers/v0.py create mode 100644 superset/datasets/commands/importers/v1/__init__.py copy superset/datasets/{filters.py => commands/importers/v1/utils.py} (54%) create mode 100644 superset/migrations/versions/49b5a32daba5_add_report_schedules.py create mode 100644 superset/models/reports.py copy {tests/security => superset/reports}/__init__.py (100%) copy superset/{annotation_layers => reports}/api.py (63%) copy {tests/security => superset/reports/commands}/__init__.py (100%) create mode 100644 superset/reports/commands/base.py copy superset/{queries/saved_queries => reports}/commands/bulk_delete.py (72%) create mode 100644 superset/reports/commands/create.py copy superset/{annotation_layers/annotations => reports}/commands/delete.py (70%) create mode 100644 superset/reports/commands/exceptions.py create mode 100644 superset/reports/commands/update.py create mode 100644 superset/reports/dao.py copy superset/{annotation_layers/annotations => reports}/filters.py (77%) copy {tests/security => superset/reports/logs}/__init__.py (100%) create mode 100644 superset/reports/logs/api.py copy superset/{queries => reports/logs}/schemas.py (74%) create mode 100644 superset/reports/schemas.py delete mode 100644 superset/utils/import_datasource.py copy superset/db_engine_specs/cockroachdb.py => tests/commands_test.py (71%) create mode 100644 tests/fixtures/importexport.py copy tests/{security => reports}/__init__.py (100%) create mode 100644 tests/reports/api_tests.py