This is an automated email from the ASF dual-hosted git repository.
elizabeth pushed a change to branch grit/8d87ae06-afaa-469d-abfb-1846398e01eb
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 7f0b7826a4 update tests
discard 68f0ec11f3 lint
discard c341c76c7c [bot] migrate files
add 260d561b9a docs: update security policy and contributing (#25917)
add 843c7ab58a chore: Allow only iterables for BaseDAO.delete() (#25844)
add 2b88225ee1 fix: Flaky test_explore_json_async test (#26059)
add 6359086779 fix: move driver import to method (#26066)
add fef82789b1 build(deps): bump @types/lodash from 4.14.201 to 4.14.202
in /superset-websocket (#26063)
add b1f521263d build(deps-dev): bump @types/node from 20.9.3 to 20.9.4 in
/superset-websocket (#26064)
add 984c278c4c chore: Updates Announce template to include CHANGELOG.md
and UPDATING.md files (#26073)
add 07bcfa9b5f chore(command): Organize Commands according to SIP-92
(#25850)
add 57d61df44d chore: Adds 3.0.2 data to CHANGELOG.md (#26075)
add aad67e43db fix(plugin-chart-echarts): support numerical x-axis (#26087)
add 4fc2758e6a fix: bump node-fetch to 2.6.7 (#26091)
add d20f96f8d0 docs(databases): Update pinot.mdx to incorporate username
and password based connection. (#26000)
add 91a8b69d36 fix: flaky test_explore_json_async test v2 (#26106)
add 849ca64ba8 chore: Adds the 3.1.0 Release Notes (#26058)
add 6447529ee4 docs: update CVEs fixed on 2.1.2 (#26104)
add f3b0706507 build(deps-dev): bump @types/cookie from 0.5.4 to 0.6.0 in
/superset-websocket (#26099)
add 9a13ec6d5f build(deps-dev): bump @types/node from 20.9.4 to 20.10.0 in
/superset-websocket (#26100)
add 0d2e85517c docs: Update Trino Kerberos configuration (#26119)
add 7223633da6 fix: alias column when fetching values (#26120)
add af58784040 feat(deckgl-map): use an arbitraty Mabpox style URL
(#26027) (#26031)
add b9aaf0fc05 docs: add Onebeat to users list (#26112)
add a27a0df1a4 chore(deps): bump pillow deps (#25931)
add ea1a96e8e1 docs: add Increff to users list (#26124)
add 6a5a765689 fix: remove default secret key from helm (#23916)
add ee308fbc64 chore(tags): Allow for lookup via ids vs. name in the API
(#25996)
add f1a6b2f852 docs(drivers): refresh guide on adding a db driver in
docker (#26038)
add d00c17dde2 chore: Rename SET_ACTIVE_TABS action, add a new action
(#26147)
add 79be126189 docs: update CVEs fixed on 3.0.0 (#26149)
add cff473f825 fix(annotations): time grain column (#26140)
add df0f663382 build(deps-dev): bump @types/node from 20.10.0 to 20.10.1
in /superset-websocket (#26143)
add 4f00404805 feat(helm): Add option to deploy extra containers to
remaining deployments (#26123)
add f405ba033e feat: Adds legacy time support for Waterfall chart (#26136)
add b2ea97a984 fix: set label on adhoc column should persist (#26154)
add 1b9e4ff9ab docs: add quickstart (#26129)
add c033ca959d fix(database-import): Support importing a DB connection
with a version set (#26116)
add cdbbd83705 fix(sqllab): table preview has gone (#25977)
add b7a9c220e1 fix(Alerts/Reports): allow use of ";" separator in slack
recipient entry (#25894)
add 8644b1a319 fix: Migration order due to cherry which went astray
(#26160)
add fccde379b8 build(deps-dev): bump @types/node from 20.10.1 to 20.10.3
in /superset-websocket (#26167)
add 248586de6e build(deps-dev): bump eslint-config-prettier from 9.0.0 to
9.1.0 in /superset-websocket (#26166)
add 3ab27c6ec9 chore: Clean up the examples dashboards (#26158)
add 0b477e3f7c chore: harmonize and clean up list views (#25961)
add 86304ab171 fix(menu): Styling active menu in SPA navigation (#25533)
add b287ca7f5b feat: Create db_engine_spec ibmi.py (#26161)
add 386d4e0541 fix(embedded): Hide sensitive payload data from guest users
(#25878)
add 56fa2b29d3 docs: update CHANGELOG for 2.1.2 (#26150)
add d2cce51ddf build(deps-dev): bump eslint from 8.54.0 to 8.55.0 in
/superset-websocket (#26174)
add 4d4b19e8ba fix(init-job): Fix envFrom for init job in helm chart
(#26157)
add c8e69e2f9d feat(docker): Add ARM builds (#26196)
add bf5b18ccb1 chore: Lower giveup log level for retried functions to
warning (#26188)
add f68dd8293f fix(docker): Remove race condition when building image
(#26205)
add 39c6488463 fix: Includes 90° x-axis label rotation (#26207)
add f30f685eb5 fix(sqllab): flaky json explore modal due to over-rendering
(#26156)
add 3a04ac7720 build(deps-dev): bump @types/node from 20.10.3 to 20.10.4
in /superset-websocket (#26204)
add b4a35e624b chore: Adds note about numerical x-axis (#26208)
add 88fb342887 fix(dashboard): use textContent to render hidden title
(#26189)
add d2adc858cb fix: support custom links in markdown (#26211)
add 05d7060d83 fix(chart-filter): Avoid column denormalization if not
enabled (#26199)
add 07e5fe8a66 fix(plugin-chart-echarts): support truncated numeric x-axis
(#26215)
add dbed64a2c6 fix: Use page.locator in Playwright reports (#26224)
add 005cf5947b chore: Moves xAxisLabelRotation to shared controls (#26212)
add fca5b829df chore: lock the databend-sqlalchemy version (#26082)
add 2ac28927a3 fix: bump pyarrow constraints (CVE-2023-47248) (#26187)
add 577565cd82 build(deps-dev): bump ts-node from 10.9.1 to 10.9.2 in
/superset-websocket (#26233)
add 1fbc762efa build(deps): bump ws from 8.14.2 to 8.15.0 in
/superset-websocket (#26234)
add 136ad0ef4f chore: add class component tasklist file (#26078)
add 5df544b6fb fix(plugin-chart-echarts): undefined bounds for bubble
chart (#26243)
add 3a6fe9f105 chore(tests): Add tests to the column denormalization flow
(#26220)
add 46e677823e chore: adding 'no-experimental-fetch' node option by
default (#25628)
add 578a899152 chore: improve CSP add base uri restriction (#26251)
add 334e15997f chore(async queries): sending statsd event for async events
API call (#26259)
add 429e2a33c3 fix: Stacked charts with numerical columns (#26264)
add 67468c46c0 fix(plugin-chart-echarts): use scale for truncating x-axis
(#26269)
add 8437a235c9 feat(telemetry): Adding Scarf based telemetry to Superset
(#26011)
add aa3c3c5aaa fix: Cannot expand initially hidden SQL Lab tab (#26279)
add 38f5e4d490 chore(docs): add troubleshooting guide to alerts & reports
(#26253)
add 51172ca1aa chore(in the wild): Making it even easer to add a name (and
cleanup) (#26280)
add 9c96519b67 chore(docs): fix typo "loader balancer" -> "load balancer"
(#26285)
add 8450cca998 fix: Revert "fix(sqllab): flaky json explore modal due to
over-rendering (#26156)" (#26284)
add aafb54d042 chore: Ensure Mixins are ordered according to the MRO
(#26288)
add eb4b41233b chore(cleanup): removing redundant rendering logic in
telemetry pixel (#26293)
add 6a3db35bb2 build(deps-dev): bump eslint from 8.55.0 to 8.56.0 in
/superset-websocket (#26294)
add 84ac72f550 feat(releasing): adding SHA512 and RSA signature validation
script to verify releases (#26278)
add 04f1c356a5 fix(typings): model_id is a multiple option (#25967)
add 596f5569be chore(sqlalchemy): import from correct path (#26301)
add 9111eb9f30 chore: update changelog for 2.1.3 (#26287)
add 90a3d685a0 build(deps-dev): bump @types/node from 20.10.4 to 20.10.5
in /superset-websocket (#26305)
add 8c32c6da16 docs: update CVEs fixed on 3.0.2 and 2.1.3 (#26308)
add eb65cea971 chore: Disables minor ticks by default (#26310)
add 3f9183a162 chore: Use WEBDRIVER_OPTION_ARGS with Playwright (#26315)
add 9d3796828c fix(sql lab): Use quote_schema instead of quote method to
format schema name (#26281)
add 60abf7e2af fix(redshift): convert_dttm method for redshift dataset and
tests (#26283)
add 5e85f5c81f chore: Add downloadAsImage types, change filter selector
(#26297)
add 5bd7fd7990 chore: Adds a tooltip for the alert's SQL input (#26317)
add 39ac45351b fix(dashboard): Don't switch to first tab when
directPathToChild changes (#26340)
add 5400d30b20 feat(echarts-funnel): Implement % calculation type (#26290)
add 3391e29093 fix(tagging): adding tags containing a “:” to dashboards
(#26324)
add b6d433de32 fix(accessibility): Enable tabbing on sort header of table
chart (#26326)
add 5f5a656835 fix(logging): Add logging of change_dashboard_filter event
for native dashboard filters (#26333)
add fe9fbadade chore(Embedded): Avoid creating a filter key for guest
users (#26312)
add 863f8bbbcd fix(chart): Set max row limit + removed the option to use
an empty row limit value (#26151)
add 4a0312243d chore(docs): point to correct StackOverflow page (#26368)
add f78f33d9aa docs: fix config webdriver snippet in install on K8s
(#26371)
add 3a0391bbb9 fix(databend): databend time grain expression (#26378)
add 29633e7d8c fix: Duplicated plugin registration (#26379)
add 6e443ad1eb build(deps): bump ws from 8.15.0 to 8.16.0 in
/superset-websocket (#26363)
add 24e6ec3dca docs: fix spelling and grammar (#26381)
add 9033e72679 build(deps-dev): bump @types/node from 20.10.5 to 20.10.6
in /superset-websocket (#26386)
add 113a8a381c chore: Add example charts for deck.gl (#25770)
add 77f58fc8fa fix: Removes non-existent columns in the 2018 FCC Survey
dataset (#26380)
add 9432bd88f5 fix: Invalid references in the basic template (#26302)
add a0f0f698f4 fix(SelectControl): select zero value (#26353)
add 9ffcd6410e fix(embed): an error occurred while rendering the
visualization: error: Item with key ... is not registered. (#26398)
add 6f6c37ec26 fix: Reactivates native filters E2E tests (#26362)
add 123db7c208 [bot] migrate files
add c786a42cf1 lint
add d3d32765d1 update tests
add f4b2ecbe5e code style fixes
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (7f0b7826a4)
\
N -- N -- N refs/heads/grit/8d87ae06-afaa-469d-abfb-1846398e01eb
(f4b2ecbe5e)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/SECURITY.md | 4 +-
CHANGELOG.md | 91 +
CODE_OF_CONDUCT.md | 10 +-
CONTRIBUTING.md | 61 +-
Dockerfile | 14 +-
RELEASING/README.md | 16 +
RELEASING/email_templates/announce.j2 | 6 +
RELEASING/release-notes-2-0/README.md | 2 +-
RELEASING/release-notes-3-1/README.md | 166 ++
RELEASING/release-notes-3-1/media/bubble_chart.png | Bin 0 -> 430546 bytes
RELEASING/release-notes-3-1/media/contour.png | Bin 0 -> 1035330 bytes
.../release-notes-3-1/media}/databend.png | Bin
.../release-notes-3-1/media/dataset_selector.png | Bin 0 -> 420784 bytes
RELEASING/release-notes-3-1/media/doris.png | Bin 0 -> 17856 bytes
RELEASING/release-notes-3-1/media/france.png | Bin 0 -> 107828 bytes
RELEASING/release-notes-3-1/media/kazakhstan.png | Bin 0 -> 263828 bytes
.../release-notes-3-1/media/keyboard_shortcuts.png | Bin 0 -> 305917 bytes
RELEASING/release-notes-3-1/media/kyrgyzstan.png | Bin 0 -> 183302 bytes
.../release-notes-3-1/media/sql_formatting.png | Bin 0 -> 473810 bytes
RELEASING/release-notes-3-1/media/tajikistan.png | Bin 0 -> 204499 bytes
RELEASING/release-notes-3-1/media/turkmenistan.png | Bin 0 -> 178477 bytes
RELEASING/release-notes-3-1/media/uzbekistan.png | Bin 0 -> 160917 bytes
.../release-notes-3-1/media/waterfall_chart.png | Bin 0 -> 326362 bytes
RELEASING/validate_this_release.sh | 54 +
RELEASING/verify_release.py | 101 +
RESOURCES/INTHEWILD.md | 8 +-
UPDATING.md | 1 +
docker-compose.yml | 2 +
docs/docs/api.mdx | 2 +-
docs/docs/contributing/_category_.json | 2 +-
docs/docs/databases/_category_.json | 2 +-
docs/docs/databases/docker-add-drivers.mdx | 72 +-
docs/docs/databases/pinot.mdx | 6 +
docs/docs/databases/trino.mdx | 2 +
docs/docs/frequently-asked-questions.mdx | 12 +-
docs/docs/installation/_category_.json | 2 +-
docs/docs/installation/alerts-reports.mdx | 69 +-
docs/docs/installation/event-logging.mdx | 2 +-
.../installing-superset-using-docker-compose.mdx | 4 +-
docs/docs/installation/running-on-kubernetes.mdx | 10 +-
docs/docs/miscellaneous/_category_.json | 2 +-
docs/docs/quickstart.mdx | 86 +
docs/docs/security/_category_.json | 2 +-
docs/docs/security/cves.mdx | 35 +-
docs/docs/security/security.mdx | 2 +-
docs/docusaurus.config.js | 2 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 11 +-
helm/superset/README.md.gotmpl | 6 +
helm/superset/templates/_helpers.tpl | 1 -
helm/superset/templates/deployment-beat.yaml | 3 +
helm/superset/templates/deployment-flower.yaml | 3 +
helm/superset/templates/deployment-ws.yaml | 3 +
helm/superset/templates/init-job.yaml | 2 +-
helm/superset/values.yaml | 8 +
requirements/base.txt | 3 +-
scripts/docker_build_push.sh | 11 +-
.../generate_frontend_class_component_tasklist.js | 73 +
setup.py | 5 +-
.../cypress/e2e/alerts_and_reports/alerts.test.ts | 7 +-
.../cypress/e2e/alerts_and_reports/reports.test.ts | 7 +-
.../cypress/e2e/chart_list/filter.test.ts | 16 +-
.../cypress/e2e/chart_list/list.test.ts | 10 +-
.../cypress/e2e/dashboard/nativeFilters.test.ts | 4 +-
.../cypress/e2e/dashboard/tabs.test.ts | 3 -
.../cypress-base/cypress/e2e/dashboard/utils.ts | 1 -
.../cypress/e2e/dashboard_list/filter.test.ts | 6 +-
.../cypress/e2e/dashboard_list/list.test.ts | 12 +-
.../cypress-base/cypress/support/e2e.ts | 2 +-
superset-frontend/package-lock.json | 222 +-
superset-frontend/package.json | 9 +-
.../superset-ui-chart-controls/src/constants.ts | 2 +
.../src/shared-controls/sharedControls.tsx | 10 +-
.../packages/superset-ui-core/src/chart/index.ts | 2 +-
.../src/components/SafeMarkdown.tsx | 1 +
.../superset-ui-core/src/validator/index.ts | 2 +
.../src/validator/validateMapboxStylesUrl.ts} | 30 +-
.../src/validator/validateMaxValue.ts | 8 +
.../validator/validateMapboxStylesUrl.test.ts} | 37 +-
.../test/validator/validateMaxValue.test.ts} | 40 +-
.../src/controlPanel.ts | 14 +-
.../src/Multi/controlPanel.ts | 3 +-
.../src/Multi/images/example.png | Bin 0 -> 153910 bytes
.../legacy-preset-chart-deckgl/src/Multi/index.ts | 2 +
.../src/layers/Arc/controlPanel.ts | 5 +-
.../src/layers/Arc/images/example.png | Bin 0 -> 71818 bytes
.../src/layers/Arc/index.ts | 2 +
.../src/layers/Contour/controlPanel.ts | 4 +-
.../src/layers/Contour/images/example.png | Bin 0 -> 139128 bytes
.../src/layers/Contour/index.ts | 4 +-
.../src/layers/Geojson/images/example.png | Bin 0 -> 224170 bytes
.../src/layers/Geojson/index.ts | 2 +
.../src/layers/Grid/controlPanel.ts | 3 +-
.../src/layers/Grid/images/example.png | Bin 0 -> 377404 bytes
.../src/layers/Grid/index.ts | 2 +
.../src/layers/Heatmap/controlPanel.ts | 3 +-
.../src/layers/Heatmap/images/example.png | Bin 0 -> 265453 bytes
.../src/layers/Heatmap/index.ts | 2 +
.../src/layers/Hex/controlPanel.ts | 4 +-
.../src/layers/Hex/images/example.png | Bin 0 -> 268797 bytes
.../src/layers/Hex/index.ts | 2 +
.../src/layers/Path/controlPanel.ts | 3 +-
.../src/layers/Path/images/example.png | Bin 0 -> 168591 bytes
.../src/layers/Path/index.ts | 2 +
.../src/layers/Polygon/images/example.png | Bin 0 -> 165278 bytes
.../src/layers/Polygon/index.ts | 2 +
.../src/layers/Scatter/controlPanel.ts | 5 +-
.../src/layers/Scatter/images/example.png | Bin 0 -> 218289 bytes
.../src/layers/Scatter/index.ts | 2 +
.../src/layers/Screengrid/controlPanel.ts | 5 +-
.../src/layers/Screengrid/images/example.png | Bin 0 -> 103782 bytes
.../src/layers/Screengrid/index.ts | 2 +
.../src/utilities/Shared_DeckGL.jsx | 8 +-
.../plugin-chart-echarts/src/Bubble/constants.ts | 5 +-
.../src/Bubble/controlPanel.tsx | 36 +-
.../src/Bubble/transformProps.ts | 17 +-
.../src/Funnel/controlPanel.tsx | 31 +-
.../src/Funnel/transformProps.ts | 51 +-
.../plugin-chart-echarts/src/Funnel/types.ts | 7 +
.../src/MixedTimeseries/controlPanel.tsx | 34 +-
.../src/MixedTimeseries/transformProps.ts | 64 +-
.../src/MixedTimeseries/types.ts | 2 +
.../src/Timeseries/Area/controlPanel.tsx | 29 +-
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 24 +-
.../src/Timeseries/Regular/Line/controlPanel.tsx | 29 +-
.../Timeseries/Regular/Scatter/controlPanel.tsx | 29 +-
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 29 +-
.../src/Timeseries/Step/controlPanel.tsx | 29 +-
.../src/Timeseries/constants.ts | 4 +-
.../src/Timeseries/transformProps.ts | 55 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 3 +
.../src/Waterfall/buildQuery.ts | 7 +-
.../src/Waterfall/controlPanel.tsx | 8 +-
.../plugin-chart-echarts/src/Waterfall/index.ts | 2 +-
.../src/Waterfall/transformProps.ts | 6 +-
.../plugins/plugin-chart-echarts/src/controls.tsx | 61 +
.../plugins/plugin-chart-echarts/src/defaults.ts | 5 +
.../plugin-chart-echarts/src/utils/controls.ts | 3 +-
.../plugin-chart-echarts/src/utils/series.ts | 54 +-
.../test/Bubble/transformProps.test.ts | 49 +-
.../test/Funnel/transformProps.test.ts | 32 +-
.../test/utils/controls.test.ts | 22 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 127 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 13 +
superset-frontend/spec/helpers/shim.tsx | 16 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 6 +-
.../AlteredSliceTag/AlteredSliceTag.test.jsx | 14 +-
.../src/components/AlteredSliceTag/index.jsx | 39 +-
.../src/components/AuditInfo/ModifiedInfo.test.tsx | 42 +
.../src/components/AuditInfo/index.tsx | 30 +
.../DrillDetail/DrillDetailMenuItems.test.tsx | 5 +
.../src/components/Chart/chartAction.js | 9 +-
.../src/components/Chart/chartActions.test.js | 67 +
.../DatabaseSelector/DatabaseSelector.test.tsx | 9 +-
.../src/components/DatabaseSelector/index.tsx | 10 +-
.../src/components/Datasource/DatasourceEditor.jsx | 2 +-
.../src/components/DynamicEditableTitle/index.tsx | 5 +-
.../TelemetryPixel/TelemetryPixel.test.tsx | 49 +
.../src/components/TelemetryPixel/index.tsx | 58 +
.../src/dashboard/actions/dashboardState.js | 9 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 6 +-
.../DashboardBuilder/DashboardContainer.tsx | 13 +-
.../dashboard/components/DashboardBuilder/utils.ts | 13 -
.../dashboard/components/PropertiesModal/index.tsx | 2 +-
.../dashboard/components/gridComponents/Tabs.jsx | 8 +-
.../components/nativeFilters/FilterBar/index.tsx | 13 +-
.../dashboard/containers/DashboardComponent.jsx | 4 +-
.../src/dashboard/containers/DashboardPage.tsx | 2 -
.../src/dashboard/reducers/dashboardState.js | 9 +-
.../src/dashboard/reducers/dashboardState.test.ts | 22 +-
superset-frontend/src/embedded/index.tsx | 3 +
.../ColumnSelectPopover.test.tsx | 77 +
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 39 +-
.../ColumnSelectPopoverTrigger.tsx | 13 +-
.../explore/components/controls/SelectControl.jsx | 2 +-
.../src/features/alerts/AlertReportModal.tsx | 14 +-
.../src/features/annotations/AnnotationModal.tsx | 2 +-
.../src/features/cssTemplates/CssTemplateModal.tsx | 5 +-
.../src/features/cssTemplates/types.ts | 11 +-
superset-frontend/src/features/home/Menu.tsx | 37 +-
superset-frontend/src/features/home/RightMenu.tsx | 6 +
.../src/features/tags/TagModal.test.tsx | 2 +
superset-frontend/src/features/tags/TagModal.tsx | 6 +-
superset-frontend/src/features/tags/tags.ts | 17 +
.../src/hooks/apiResources/dashboards.ts | 1 +
.../src/pages/AlertReportList/index.tsx | 74 +-
superset-frontend/src/pages/AllEntities/index.tsx | 15 +-
.../src/pages/AnnotationLayerList/index.tsx | 89 +-
.../src/pages/AnnotationList/index.tsx | 2 +-
superset-frontend/src/pages/ChartList/index.tsx | 170 +-
.../src/pages/CssTemplateList/index.tsx | 88 +-
.../src/pages/DashboardList/index.tsx | 187 +-
.../src/pages/DatabaseList/DatabaseList.test.jsx | 2 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 80 +-
.../src/pages/DatasetList/DatasetList.test.tsx | 61 +-
superset-frontend/src/pages/DatasetList/index.tsx | 109 +-
.../src/pages/QueryHistoryList/index.tsx | 3 +-
.../RowLevelSecurityList.test.tsx | 6 +-
.../src/pages/RowLevelSecurityList/index.tsx | 39 +-
.../src/pages/SavedQueryList/index.tsx | 136 +-
superset-frontend/src/pages/Tags/index.tsx | 70 +-
superset-frontend/src/types/dom-to-image-more.d.ts | 18 +-
superset-frontend/src/utils/downloadAsImage.ts | 7 +-
.../types.ts => utils/getOwnerName.test.ts} | 23 +-
.../types.ts => utils/getOwnerName.ts} | 20 +-
superset-frontend/src/views/CRUD/types.ts | 11 +-
superset-frontend/webpack.config.js | 1 +
superset-websocket/package-lock.json | 130 +-
superset-websocket/package.json | 14 +-
superset/annotation_layers/annotations/api.py | 28 +-
superset/annotation_layers/api.py | 24 +-
superset/async_events/api.py | 3 +-
superset/charts/api.py | 32 +-
superset/charts/data/api.py | 16 +-
superset/charts/data/query_context_cache_loader.py | 2 +-
superset/cli/importexport.py | 16 +-
superset/cli/thumbnails.py | 8 +-
.../annotation_layer}/__init__.py | 0
.../annotation_layer/annotation}/__init__.py | 0
.../annotation_layer/annotation}/create.py | 6 +-
.../annotation_layer/annotation}/delete.py | 4 +-
.../annotation_layer/annotation}/exceptions.py | 0
.../annotation_layer/annotation}/update.py | 6 +-
.../annotation_layer}/create.py | 4 +-
.../annotation_layer}/delete.py | 4 +-
.../annotation_layer}/exceptions.py | 0
.../annotation_layer}/update.py | 4 +-
.../commands => commands/chart}/__init__.py | 0
.../{charts/commands => commands/chart}/create.py | 4 +-
.../importers => commands/chart/data}/__init__.py | 0
.../chart/data}/create_async_job_command.py | 0
.../chart/data}/get_data_command.py | 4 +-
.../{charts/commands => commands/chart}/delete.py | 4 +-
.../commands => commands/chart}/exceptions.py | 0
.../{charts/commands => commands/chart}/export.py | 4 +-
.../chart/importers}/__init__.py | 0
.../chart}/importers/dispatcher.py | 2 +-
.../chart}/importers/v1/__init__.py | 8 +-
.../chart}/importers/v1/utils.py | 0
.../{charts/commands => commands/chart}/update.py | 4 +-
.../commands => commands/chart}/warm_up_cache.py | 6 +-
.../commands => commands/css}/__init__.py | 0
.../commands => commands/css}/delete.py | 2 +-
.../commands => commands/css}/exceptions.py | 0
.../commands => commands/dashboard}/__init__.py | 0
.../commands => commands/dashboard}/create.py | 8 +-
.../commands => commands/dashboard}/delete.py | 8 +-
.../dashboard/embedded}/__init__.py | 0
.../dashboard/embedded}/exceptions.py | 0
.../commands => commands/dashboard}/exceptions.py | 0
.../commands => commands/dashboard}/export.py | 8 +-
.../dashboard/filter_set}/__init__.py | 0
.../dashboard/filter_set}/base.py | 8 +-
.../dashboard/filter_set}/create.py | 6 +-
.../dashboard/filter_set}/delete.py | 10 +-
.../dashboard/filter_set}/exceptions.py | 0
.../dashboard/filter_set}/update.py | 6 +-
.../dashboard/filter_state}/__init__.py | 0
.../dashboard/filter_state}/create.py | 8 +-
.../dashboard/filter_state}/delete.py | 10 +-
.../dashboard/filter_state}/get.py | 6 +-
.../dashboard/filter_state}/update.py | 10 +-
.../dashboard/filter_state}/utils.py | 6 +-
.../dashboard/importers}/__init__.py | 0
.../dashboard}/importers/dispatcher.py | 2 +-
.../dashboard}/importers/v0.py | 2 +-
.../dashboard}/importers/v1/__init__.py | 14 +-
.../dashboard}/importers/v1/utils.py | 0
.../dashboard/permalink}/__init__.py | 0
.../dashboard/permalink}/base.py | 0
.../dashboard/permalink}/create.py | 4 +-
.../dashboard/permalink}/get.py | 6 +-
.../commands => commands/dashboard}/update.py | 8 +-
.../importers => commands/database}/__init__.py | 0
.../commands => commands/database}/create.py | 12 +-
.../commands => commands/database}/delete.py | 10 +-
.../commands => commands/database}/exceptions.py | 0
.../commands => commands/database}/export.py | 2 +-
.../database/importers}/__init__.py | 0
.../database}/importers/dispatcher.py | 2 +-
.../database}/importers/v1/__init__.py | 6 +-
.../database}/importers/v1/utils.py | 0
.../database/ssh_tunnel}/__init__.py | 0
.../database/ssh_tunnel}/create.py | 6 +-
.../database/ssh_tunnel}/delete.py | 8 +-
.../database/ssh_tunnel}/exceptions.py | 0
.../database/ssh_tunnel}/update.py | 6 +-
.../commands => commands/database}/tables.py | 6 +-
.../database}/test_connection.py | 8 +-
.../commands => commands/database}/update.py | 12 +-
.../commands => commands/database}/validate.py | 4 +-
.../commands => commands/database}/validate_sql.py | 4 +-
.../commands => commands/dataset}/__init__.py | 0
.../dataset/columns}/__init__.py | 0
.../dataset/columns}/delete.py | 10 +-
.../dataset/columns}/exceptions.py | 0
.../commands => commands/dataset}/create.py | 6 +-
.../commands => commands/dataset}/delete.py | 8 +-
.../commands => commands/dataset}/duplicate.py | 10 +-
.../commands => commands/dataset}/exceptions.py | 0
.../commands => commands/dataset}/export.py | 2 +-
.../dataset/importers}/__init__.py | 0
.../dataset}/importers/dispatcher.py | 2 +-
.../commands => commands/dataset}/importers/v0.py | 4 +-
.../dataset}/importers/v1/__init__.py | 6 +-
.../dataset}/importers/v1/utils.py | 4 +-
.../dataset/metrics}/__init__.py | 0
.../dataset/metrics}/delete.py | 10 +-
.../dataset/metrics}/exceptions.py | 0
.../commands => commands/dataset}/refresh.py | 6 +-
.../commands => commands/dataset}/update.py | 8 +-
.../commands => commands/dataset}/warm_up_cache.py | 8 +-
.../commands => commands/explore}/__init__.py | 0
.../explore/form_data}/__init__.py | 0
.../explore/form_data}/create.py | 8 +-
.../explore/form_data}/delete.py | 10 +-
.../commands => commands/explore/form_data}/get.py | 8 +-
.../explore/form_data}/parameters.py | 0
.../explore/form_data}/state.py | 0
.../explore/form_data}/update.py | 12 +-
.../explore/form_data}/utils.py | 8 +-
.../{explore/commands => commands/explore}/get.py | 12 +-
.../commands => commands/explore}/parameters.py | 0
.../explore/permalink}/__init__.py | 0
.../explore/permalink}/base.py | 0
.../explore/permalink}/create.py | 4 +-
.../commands => commands/explore/permalink}/get.py | 6 +-
superset/commands/export/assets.py | 10 +-
superset/commands/importers/v1/assets.py | 20 +-
superset/commands/importers/v1/examples.py | 24 +-
.../commands => commands/key_value}/__init__.py | 0
.../commands => commands/key_value}/create.py | 0
.../commands => commands/key_value}/delete.py | 0
.../key_value}/delete_expired.py | 0
.../commands => commands/key_value}/get.py | 0
.../commands => commands/key_value}/update.py | 0
.../commands => commands/key_value}/upsert.py | 2 +-
.../commands => commands/query}/__init__.py | 0
.../commands => commands/query}/delete.py | 8 +-
.../commands => commands/query}/exceptions.py | 0
.../commands => commands/query}/export.py | 2 +-
.../query}/importers/__init__.py | 0
.../query}/importers/dispatcher.py | 2 +-
.../query}/importers/v1/__init__.py | 8 +-
.../query}/importers/v1/utils.py | 0
.../commands => commands/report}/__init__.py | 0
.../{reports/commands => commands/report}/alert.py | 2 +-
.../{reports/commands => commands/report}/base.py | 6 +-
.../commands => commands/report}/create.py | 10 +-
.../commands => commands/report}/delete.py | 8 +-
.../commands => commands/report}/exceptions.py | 0
.../commands => commands/report}/execute.py | 24 +-
.../commands => commands/report}/log_prune.py | 2 +-
.../commands => commands/report}/update.py | 12 +-
.../commands => commands/security}/__init__.py | 0
.../commands => commands/security}/create.py | 0
.../commands => commands/security}/delete.py | 8 +-
.../commands => commands/security}/exceptions.py | 0
.../commands => commands/security}/update.py | 2 +-
.../commands => commands/sql_lab}/__init__.py | 0
.../commands => commands/sql_lab}/estimate.py | 0
.../commands => commands/sql_lab}/execute.py | 0
.../commands => commands/sql_lab}/export.py | 0
.../commands => commands/sql_lab}/results.py | 0
.../{tags/commands => commands/tag}/__init__.py | 0
superset/{tags/commands => commands/tag}/create.py | 4 +-
superset/{tags/commands => commands/tag}/delete.py | 8 +-
.../{tags/commands => commands/tag}/exceptions.py | 0
superset/{tags/commands => commands/tag}/update.py | 4 +-
superset/{tags/commands => commands/tag}/utils.py | 0
.../temporary_cache}/__init__.py | 0
.../temporary_cache}/create.py | 4 +-
.../temporary_cache}/delete.py | 4 +-
.../commands => commands/temporary_cache}/entry.py | 0
.../temporary_cache}/exceptions.py | 0
.../commands => commands/temporary_cache}/get.py | 4 +-
.../temporary_cache}/parameters.py | 0
.../temporary_cache}/update.py | 4 +-
superset/common/query_context_processor.py | 4 +-
superset/config.py | 18 +-
superset/connectors/sqla/models.py | 6 +-
superset/css_templates/api.py | 12 +-
.../daos/{annotation.py => annotation_layer.py} | 0
superset/daos/base.py | 11 +-
superset/daos/dashboard.py | 4 +-
superset/daos/tag.py | 30 +-
superset/dashboards/api.py | 25 +-
superset/dashboards/filter_sets/api.py | 14 +-
superset/dashboards/filter_state/api.py | 8 +-
superset/dashboards/permalink/api.py | 10 +-
superset/dashboards/schemas.py | 20 +-
superset/databases/api.py | 59 +-
superset/databases/schemas.py | 13 +-
superset/databases/ssh_tunnel/models.py | 2 +-
superset/databases/utils.py | 2 +-
superset/datasets/api.py | 45 +-
superset/datasets/columns/api.py | 8 +-
superset/datasets/metrics/api.py | 8 +-
superset/datasets/models.py | 2 +-
superset/datasource/api.py | 5 +-
superset/db_engine_specs/base.py | 3 +-
superset/db_engine_specs/clickhouse.py | 2 +-
superset/db_engine_specs/databend.py | 27 +-
superset/db_engine_specs/databricks.py | 2 +-
.../commands/state.py => db_engine_specs/ibmi.py} | 16 +-
superset/db_engine_specs/mysql.py | 2 +-
superset/db_engine_specs/postgres.py | 28 +-
superset/db_engine_specs/redshift.py | 8 +-
superset/db_engine_specs/trino.py | 4 +-
superset/embedded/api.py | 6 +-
.../examples/configs/charts/Filter_Segments.yaml | 68 -
.../configs/charts/Filtering_Vaccines.yaml | 53 -
.../configs/charts/Vehicle_Sales_Filter.yaml | 47 -
.../configs/charts/Video_Game_Sales_Filter.yaml | 55 -
.../dashboards/COVID_Vaccine_Dashboard.yaml | 128 +-
.../dashboards/FCC_New_Coder_Survey_2018.yaml | 608 ++--
.../configs/dashboards/Sales_Dashboard.yaml | 300 +-
.../configs/dashboards/Video_Game_Sales.yaml | 389 ++-
.../configs/datasets/examples/FCC_2018_Survey.yaml | 2940 ++++++++++----------
superset/examples/misc_dashboard.py | 148 +-
superset/examples/world_bank.py | 39 +-
superset/explore/api.py | 14 +-
superset/explore/form_data/api.py | 18 +-
superset/explore/permalink/api.py | 10 +-
superset/explore/utils.py | 10 +-
superset/extensions/metastore_cache.py | 10 +-
superset/jinja_context.py | 2 +-
superset/key_value/models.py | 2 +-
superset/key_value/shared_entries.py | 4 +-
superset/migrations/shared/utils.py | 8 +-
...06-27_08-43_27ae655e4247_make_creator_owners.py | 4 +-
...8-07-26_11-10_c82ee8a39623_add_implicit_tags.py | 2 +-
...b56500de1855_add_uuid_column_to_import_mixin.py | 2 +-
...6e99fb176a0_add_import_mixing_to_saved_query.py | 2 +-
...14-38_a9422eeaae74_new_dataset_models_take_2.py | 2 +-
...317970b4400c_added_time_secondary_column_to_.py | 34 +-
...2-01_12-03_b7851ee5522f_replay_317970b4400c.py} | 29 +-
...ff00fe8_add_percent_calculation_type_funnel_.py | 74 +
superset/models/core.py | 2 +-
superset/models/dashboard.py | 2 +-
superset/models/helpers.py | 29 +-
superset/models/sql_lab.py | 8 +-
superset/queries/saved_queries/api.py | 28 +-
superset/reports/api.py | 26 +-
superset/reports/models.py | 2 +-
superset/reports/notifications/slack.py | 11 +-
superset/row_level_security/api.py | 15 +-
superset/row_level_security/schemas.py | 2 +
superset/security/api.py | 2 +-
superset/security/manager.py | 4 +-
superset/sqllab/api.py | 8 +-
superset/sqllab/query_render.py | 2 +-
superset/sqllab/validators.py | 2 +-
superset/tables/models.py | 2 +-
superset/tags/api.py | 33 +-
superset/tags/models.py | 3 +-
superset/tasks/async_queries.py | 2 +-
superset/tasks/scheduler.py | 6 +-
superset/templates/superset/basic.html | 183 +-
superset/temporary_cache/api.py | 8 +-
superset/utils/date_parser.py | 2 +-
superset/utils/retries.py | 3 +
superset/utils/screenshots.py | 2 +-
superset/utils/webdriver.py | 64 +-
superset/views/api.py | 2 +-
superset/views/base_schemas.py | 2 +-
superset/views/core.py | 18 +-
superset/views/database/validators.py | 2 +-
superset/views/datasource/utils.py | 4 +-
superset/views/datasource/views.py | 11 +-
superset/views/utils.py | 2 +-
tests/integration_tests/charts/api_tests.py | 12 +-
tests/integration_tests/charts/commands_tests.py | 18 +-
tests/integration_tests/charts/data/api_tests.py | 2 +-
tests/integration_tests/cli_tests.py | 18 +-
tests/integration_tests/core_tests.py | 21 +-
tests/integration_tests/css_templates/api_tests.py | 25 +-
tests/integration_tests/dashboards/api_tests.py | 45 +-
.../integration_tests/dashboards/commands_tests.py | 36 +-
tests/integration_tests/dashboards/dao_tests.py | 54 -
.../dashboards/filter_state/api_tests.py | 4 +-
.../dashboards/permalink/api_tests.py | 2 +-
.../dashboards/security/security_dataset_tests.py | 2 +-
.../dashboards/security/security_rbac_tests.py | 2 +-
tests/integration_tests/databases/api_tests.py | 39 +-
.../integration_tests/databases/commands_tests.py | 40 +-
.../ssh_tunnel/commands/commands_tests.py | 10 +-
tests/integration_tests/datasets/api_tests.py | 4 +-
tests/integration_tests/datasets/commands_tests.py | 20 +-
tests/integration_tests/datasource/api_tests.py | 46 +-
tests/integration_tests/datasource_tests.py | 2 +-
tests/integration_tests/explore/api_tests.py | 2 +-
.../explore/form_data/api_tests.py | 4 +-
.../explore/form_data/commands_tests.py | 10 +-
.../explore/permalink/commands_tests.py | 10 +-
tests/integration_tests/import_export_tests.py | 6 +-
.../importexport/commands_tests.py | 2 +-
.../key_value/commands/create_test.py | 8 +-
.../key_value/commands/delete_test.py | 6 +-
.../key_value/commands/get_test.py | 10 +-
.../key_value/commands/update_test.py | 6 +-
.../key_value/commands/upsert_test.py | 6 +-
tests/integration_tests/profile_tests.py | 2 +-
.../queries/saved_queries/api_tests.py | 14 +-
.../queries/saved_queries/commands_tests.py | 8 +-
tests/integration_tests/reports/alert_tests.py | 22 +-
.../commands/create_dashboard_report_tests.py | 4 +-
.../commands/execute_dashboard_report_tests.py | 14 +-
tests/integration_tests/reports/commands_tests.py | 30 +-
tests/integration_tests/reports/scheduler_tests.py | 10 +-
tests/integration_tests/sql_lab/api_tests.py | 12 +-
tests/integration_tests/sql_lab/commands_tests.py | 22 +-
tests/integration_tests/tags/commands_tests.py | 16 +-
tests/integration_tests/tags/dao_tests.py | 61 +-
.../integration_tests/tasks/async_queries_tests.py | 4 +-
tests/integration_tests/utils_tests.py | 46 +-
.../charts/commands/importers/v1/import_test.py | 6 +-
.../charts/commands/importers/v1/utils_test.py | 2 +-
.../commands/importers/v1/import_test.py | 6 +-
.../dashboards/commands/importers/v1/utils_test.py | 4 +-
tests/unit_tests/databases/api_test.py | 6 +-
.../databases/commands/importers/v1/import_test.py | 29 +-
.../databases/commands/test_connection_test.py | 2 +-
tests/unit_tests/databases/schema_tests.py | 2 +-
.../databases/ssh_tunnel/commands/create_test.py | 6 +-
.../databases/ssh_tunnel/commands/delete_test.py | 4 +-
.../databases/ssh_tunnel/commands/update_test.py | 6 +-
tests/unit_tests/datasets/commands/export_test.py | 2 +-
.../datasets/commands/importers/v1/import_test.py | 18 +-
tests/unit_tests/db_engine_specs/test_redshift.py | 47 +
tests/unit_tests/explore/utils_test.py | 10 +-
tests/unit_tests/jinja_context_test.py | 2 +-
.../reports/notifications/slack_tests.py | 58 +
tests/unit_tests/tags/commands/create_test.py | 4 +-
tests/unit_tests/tags/commands/update_test.py | 12 +-
tests/unit_tests/tasks/test_async_queries.py | 2 +-
tests/unit_tests/utils/date_parser_tests.py | 2 +-
537 files changed, 6685 insertions(+), 5337 deletions(-)
create mode 100644 RELEASING/release-notes-3-1/README.md
create mode 100644 RELEASING/release-notes-3-1/media/bubble_chart.png
create mode 100644 RELEASING/release-notes-3-1/media/contour.png
copy {superset-frontend/src/assets/images =>
RELEASING/release-notes-3-1/media}/databend.png (100%)
create mode 100644 RELEASING/release-notes-3-1/media/dataset_selector.png
create mode 100644 RELEASING/release-notes-3-1/media/doris.png
create mode 100644 RELEASING/release-notes-3-1/media/france.png
create mode 100644 RELEASING/release-notes-3-1/media/kazakhstan.png
create mode 100644 RELEASING/release-notes-3-1/media/keyboard_shortcuts.png
create mode 100644 RELEASING/release-notes-3-1/media/kyrgyzstan.png
create mode 100644 RELEASING/release-notes-3-1/media/sql_formatting.png
create mode 100644 RELEASING/release-notes-3-1/media/tajikistan.png
create mode 100644 RELEASING/release-notes-3-1/media/turkmenistan.png
create mode 100644 RELEASING/release-notes-3-1/media/uzbekistan.png
create mode 100644 RELEASING/release-notes-3-1/media/waterfall_chart.png
create mode 100755 RELEASING/validate_this_release.sh
create mode 100755 RELEASING/verify_release.py
create mode 100644 docs/docs/quickstart.mdx
create mode 100644 scripts/generate_frontend_class_component_tasklist.js
copy superset-frontend/{plugins/plugin-chart-echarts/src/defaults.ts =>
packages/superset-ui-core/src/validator/validateMapboxStylesUrl.ts} (67%)
create mode 100644
superset-frontend/packages/superset-ui-core/src/validator/validateMaxValue.ts
copy superset-frontend/{src/dashboard/reducers/dashboardState.test.ts =>
packages/superset-ui-core/test/validator/validateMapboxStylesUrl.test.ts} (53%)
copy
superset-frontend/{plugins/legacy-preset-chart-deckgl/src/layers/Path/index.ts
=> packages/superset-ui-core/test/validator/validateMaxValue.test.ts} (53%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/Multi/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Arc/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Contour/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Geojson/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Grid/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Heatmap/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Hex/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Path/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/images/example.png
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/images/example.png
create mode 100644
superset-frontend/src/components/AuditInfo/ModifiedInfo.test.tsx
create mode 100644 superset-frontend/src/components/AuditInfo/index.tsx
create mode 100644
superset-frontend/src/components/TelemetryPixel/TelemetryPixel.test.tsx
create mode 100644 superset-frontend/src/components/TelemetryPixel/index.tsx
create mode 100644
superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.test.tsx
copy superset-frontend/src/{features/cssTemplates/types.ts =>
utils/getOwnerName.test.ts} (73%)
copy superset-frontend/src/{features/cssTemplates/types.ts =>
utils/getOwnerName.ts} (75%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer}/__init__.py (100%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer/annotation}/__init__.py (100%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/create.py (92%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/delete.py (93%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/exceptions.py (100%)
rename superset/{annotation_layers/annotations/commands =>
commands/annotation_layer/annotation}/update.py (93%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/create.py (94%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/delete.py (94%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/exceptions.py (100%)
rename superset/{annotation_layers/commands =>
commands/annotation_layer}/update.py (95%)
rename superset/{charts/commands => commands/chart}/__init__.py (100%)
rename superset/{charts/commands => commands/chart}/create.py (98%)
rename superset/{charts/commands/importers => commands/chart/data}/__init__.py
(100%)
rename superset/{charts/data/commands =>
commands/chart/data}/create_async_job_command.py (100%)
rename superset/{charts/data/commands =>
commands/chart/data}/get_data_command.py (97%)
rename superset/{charts/commands => commands/chart}/delete.py (98%)
rename superset/{charts/commands => commands/chart}/exceptions.py (100%)
rename superset/{charts/commands => commands/chart}/export.py (95%)
rename superset/{charts/data/commands => commands/chart/importers}/__init__.py
(100%)
rename superset/{charts/commands => commands/chart}/importers/dispatcher.py
(98%)
rename superset/{charts/commands => commands/chart}/importers/v1/__init__.py
(93%)
rename superset/{charts/commands => commands/chart}/importers/v1/utils.py
(100%)
rename superset/{charts/commands => commands/chart}/update.py (98%)
rename superset/{charts/commands => commands/chart}/warm_up_cache.py (96%)
rename superset/{css_templates/commands => commands/css}/__init__.py (100%)
rename superset/{css_templates/commands => commands/css}/delete.py (97%)
rename superset/{css_templates/commands => commands/css}/exceptions.py (100%)
rename superset/{dashboards/commands => commands/dashboard}/__init__.py (100%)
rename superset/{dashboards/commands => commands/dashboard}/create.py (98%)
rename superset/{dashboards/commands => commands/dashboard}/delete.py (98%)
rename superset/{dashboards/commands/importers =>
commands/dashboard/embedded}/__init__.py (100%)
rename superset/{embedded_dashboard/commands =>
commands/dashboard/embedded}/exceptions.py (100%)
rename superset/{dashboards/commands => commands/dashboard}/exceptions.py
(100%)
rename superset/{dashboards/commands => commands/dashboard}/export.py (95%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/__init__.py (100%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/base.py (96%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/create.py (95%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/delete.py (90%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/exceptions.py (100%)
rename superset/{dashboards/filter_sets/commands =>
commands/dashboard/filter_set}/update.py (91%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/__init__.py (100%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/create.py (87%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/delete.py (84%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/get.py (89%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/update.py (87%)
rename superset/{dashboards/filter_state/commands =>
commands/dashboard/filter_state}/utils.py (91%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/importers}/__init__.py (100%)
rename superset/{dashboards/commands =>
commands/dashboard}/importers/dispatcher.py (97%)
rename superset/{dashboards/commands => commands/dashboard}/importers/v0.py
(99%)
rename superset/{dashboards/commands =>
commands/dashboard}/importers/v1/__init__.py (94%)
rename superset/{dashboards/commands =>
commands/dashboard}/importers/v1/utils.py (100%)
rename superset/{databases/commands =>
commands/dashboard/permalink}/__init__.py (100%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/base.py (100%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/create.py (94%)
rename superset/{dashboards/permalink/commands =>
commands/dashboard/permalink}/get.py (91%)
rename superset/{dashboards/commands => commands/dashboard}/update.py (98%)
rename superset/{databases/commands/importers =>
commands/database}/__init__.py (100%)
rename superset/{databases/commands => commands/database}/create.py (95%)
rename superset/{databases/commands => commands/database}/delete.py (96%)
rename superset/{databases/commands => commands/database}/exceptions.py (100%)
rename superset/{databases/commands => commands/database}/export.py (98%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/importers}/__init__.py (100%)
rename superset/{databases/commands =>
commands/database}/importers/dispatcher.py (97%)
rename superset/{databases/commands =>
commands/database}/importers/v1/__init__.py (91%)
rename superset/{databases/commands =>
commands/database}/importers/v1/utils.py (100%)
rename superset/{datasets/columns/commands =>
commands/database/ssh_tunnel}/__init__.py (100%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/create.py (98%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/delete.py (94%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/exceptions.py (100%)
rename superset/{databases/ssh_tunnel/commands =>
commands/database/ssh_tunnel}/update.py (97%)
rename superset/{databases/commands => commands/database}/tables.py (98%)
rename superset/{databases/commands => commands/database}/test_connection.py
(98%)
rename superset/{databases/commands => commands/database}/update.py (96%)
rename superset/{databases/commands => commands/database}/validate.py (98%)
rename superset/{databases/commands => commands/database}/validate_sql.py (98%)
rename superset/{datasets/commands => commands/dataset}/__init__.py (100%)
rename superset/{datasets/commands/importers =>
commands/dataset/columns}/__init__.py (100%)
rename superset/{datasets/columns/commands =>
commands/dataset/columns}/delete.py (95%)
copy superset/{datasets/columns/commands =>
commands/dataset/columns}/exceptions.py (100%)
rename superset/{datasets/commands => commands/dataset}/create.py (98%)
rename superset/{datasets/commands => commands/dataset}/delete.py (97%)
rename superset/{datasets/commands => commands/dataset}/duplicate.py (99%)
rename superset/{datasets/commands => commands/dataset}/exceptions.py (100%)
rename superset/{datasets/commands => commands/dataset}/export.py (98%)
rename superset/{datasets/metrics/commands =>
commands/dataset/importers}/__init__.py (100%)
rename superset/{datasets/commands =>
commands/dataset}/importers/dispatcher.py (97%)
rename superset/{datasets/commands => commands/dataset}/importers/v0.py (98%)
rename superset/{datasets/commands =>
commands/dataset}/importers/v1/__init__.py (92%)
rename superset/{datasets/commands => commands/dataset}/importers/v1/utils.py
(98%)
rename superset/{embedded_dashboard/commands =>
commands/dataset/metrics}/__init__.py (100%)
rename superset/{datasets/metrics/commands =>
commands/dataset/metrics}/delete.py (95%)
rename superset/{datasets/metrics/commands =>
commands/dataset/metrics}/exceptions.py (100%)
rename superset/{datasets/commands => commands/dataset}/refresh.py (97%)
rename superset/{datasets/commands => commands/dataset}/update.py (99%)
rename superset/{datasets/commands => commands/dataset}/warm_up_cache.py (89%)
rename superset/{explore/commands => commands/explore}/__init__.py (100%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/__init__.py (100%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/create.py (91%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/delete.py (91%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/get.py (89%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/parameters.py (100%)
copy superset/{explore/form_data/commands =>
commands/explore/form_data}/state.py (100%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/update.py (93%)
rename superset/{explore/form_data/commands =>
commands/explore/form_data}/utils.py (90%)
rename superset/{explore/commands => commands/explore}/get.py (96%)
rename superset/{explore/commands => commands/explore}/parameters.py (100%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/__init__.py (100%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/base.py (100%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/create.py (95%)
rename superset/{explore/permalink/commands =>
commands/explore/permalink}/get.py (93%)
rename superset/{key_value/commands => commands/key_value}/__init__.py (100%)
rename superset/{key_value/commands => commands/key_value}/create.py (100%)
rename superset/{key_value/commands => commands/key_value}/delete.py (100%)
rename superset/{key_value/commands => commands/key_value}/delete_expired.py
(100%)
rename superset/{key_value/commands => commands/key_value}/get.py (100%)
rename superset/{key_value/commands => commands/key_value}/update.py (100%)
rename superset/{key_value/commands => commands/key_value}/upsert.py (98%)
rename superset/{queries/saved_queries/commands => commands/query}/__init__.py
(100%)
rename superset/{queries/saved_queries/commands => commands/query}/delete.py
(96%)
rename superset/{queries/saved_queries/commands =>
commands/query}/exceptions.py (100%)
rename superset/{queries/saved_queries/commands => commands/query}/export.py
(97%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/__init__.py (100%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/dispatcher.py (97%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/v1/__init__.py (91%)
rename superset/{queries/saved_queries/commands =>
commands/query}/importers/v1/utils.py (100%)
rename superset/{reports/commands => commands/report}/__init__.py (100%)
rename superset/{reports/commands => commands/report}/alert.py (99%)
rename superset/{reports/commands => commands/report}/base.py (98%)
rename superset/{reports/commands => commands/report}/create.py (97%)
rename superset/{reports/commands => commands/report}/delete.py (97%)
rename superset/{reports/commands => commands/report}/exceptions.py (100%)
rename superset/{reports/commands => commands/report}/execute.py (99%)
rename superset/{reports/commands => commands/report}/log_prune.py (96%)
rename superset/{reports/commands => commands/report}/update.py (97%)
rename superset/{row_level_security/commands => commands/security}/__init__.py
(100%)
rename superset/{row_level_security/commands => commands/security}/create.py
(100%)
rename superset/{row_level_security/commands => commands/security}/delete.py
(96%)
rename superset/{row_level_security/commands =>
commands/security}/exceptions.py (100%)
rename superset/{row_level_security/commands => commands/security}/update.py
(96%)
rename superset/{sqllab/commands => commands/sql_lab}/__init__.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/estimate.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/execute.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/export.py (100%)
rename superset/{sqllab/commands => commands/sql_lab}/results.py (100%)
rename superset/{tags/commands => commands/tag}/__init__.py (100%)
rename superset/{tags/commands => commands/tag}/create.py (96%)
rename superset/{tags/commands => commands/tag}/delete.py (97%)
rename superset/{tags/commands => commands/tag}/exceptions.py (100%)
rename superset/{tags/commands => commands/tag}/update.py (94%)
rename superset/{tags/commands => commands/tag}/utils.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/__init__.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/create.py (92%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/delete.py (92%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/entry.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/exceptions.py (100%)
rename superset/{temporary_cache/commands => commands/temporary_cache}/get.py
(92%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/parameters.py (100%)
rename superset/{temporary_cache/commands =>
commands/temporary_cache}/update.py (92%)
rename superset/daos/{annotation.py => annotation_layer.py} (100%)
rename superset/{explore/form_data/commands/state.py =>
db_engine_specs/ibmi.py} (72%)
delete mode 100644 superset/examples/configs/charts/Filter_Segments.yaml
delete mode 100644 superset/examples/configs/charts/Filtering_Vaccines.yaml
delete mode 100644 superset/examples/configs/charts/Vehicle_Sales_Filter.yaml
delete mode 100644
superset/examples/configs/charts/Video_Game_Sales_Filter.yaml
rename superset/{datasets/columns/commands/exceptions.py =>
migrations/versions/2023-12-01_12-03_b7851ee5522f_replay_317970b4400c.py} (61%)
create mode 100644
superset/migrations/versions/2023-12-15_17-58_06dd9ff00fe8_add_percent_calculation_type_funnel_.py
create mode 100644 tests/unit_tests/db_engine_specs/test_redshift.py
create mode 100644 tests/unit_tests/reports/notifications/slack_tests.py