You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by di...@apache.org on 2023/04/04 10:55:26 UTC

[superset] branch feat/sqllab-natural-language updated (184c6277f6 -> eef940d186)

This is an automated email from the ASF dual-hosted git repository.

diegopucci pushed a change to branch feat/sqllab-natural-language
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 184c6277f6 Use cosine similarity
     add 39f15b8d95 test: Fix act errors in DatabaseList test (#22970)
     add 4970df0a65 test: Clean up QueryList test warnings (#22972)
     add 32d497785a fix(native-filters): Don't include description icon in truncation calc (#22941)
     add b63ea6386f fix: Prevents last temporal filter removal (#22982)
     add 5d550f449a fix(explore): Mark time range dashboard filter with warning icon (#22984)
     add a299b4789b docs(alerts & reports): clarify nature of "-dev" labeled container images (#22988)
     add ae155611dc chore: bump python version to 3.8.16 in Dockerfile (#22934)
     add c9b9b7404a fix: Form data was not being passed to save/update slice (#22989)
     add cf395ac2d8 feat(ssh_tunnel): SSH Tunnel Switch extension (#22967)
     add 5bafb5c950 chore: Fix grammar (#22831)
     add 79114bcd29 docs: added Orange inside the inthewild.md doc (#22986)
     add 7a0f350028 fix: add new config to allow for specific import data urls (#22942)
     add 2dff0009e9 build(deps): bump pre-commit from 2.20.0 to 3.0.4 in /requirements (#22996)
     add 7d5c86b44c fix(explore): Save button incorrectly disabled when adding new metric with dnd (#23000)
     add aa0a07859e build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 in /docs (#22956)
     add 9dfaad772d fix: Make cte_alias a property of db engine spec (#22947)
     add a2c3ef8130 fix(migrations): Flask-Migrate output is not logged during alembic migrations #17991 (#22991)
     add efe6d22d4a fix(dashboard): export & import chart description and certification details (#22471)
     add ce6dd158a1 chore: updating link to sandbox.js (#23005)
     add a1b7eb3870 fix(sqllab): clean unwanted scrollbar (#22990)
     add 773d2a54a3 chore: Localization of superset pt. 3 (#22938)
     add c5b25ebf17 chore(deps): bump ajv and react-jsonschema-form in /superset-frontend (#21809)
     add 1a34876e35 build(deps-dev): bump eslint-config-prettier from 7.2.0 to 8.6.0 in /superset-websocket (#22767)
     add b12bb568ac build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 in /superset-frontend/cypress-base (#22955)
     add 50f1e2ee29 build(deps-dev): bump @types/node from 18.11.13 to 18.11.19 in /superset-websocket (#22997)
     add 32fac77b5f feat(datasets): Populate Usage tab in Edit Dataset view (#22670)
     add 4f590befae build(deps-dev): bump @typescript-eslint/parser from 5.48.1 to 5.51.0 in /superset-websocket (#23013)
     add 438cd1c150 build(deps-dev): bump typescript from 4.9.4 to 4.9.5 in /superset-websocket (#22933)
     add 183c5f9589 chore(tests): Cypress optimizations to help with fails (#23023)
     add 493181c977 chore: refactor SliceAdder for react 17 and react 18 (#23009)
     add 98bf878d6e fix(explore): Enable saving metric after changing title (#23020)
     add 7bb9b810ee fix: dataset import error message (#23025)
     add ddd8d17aa4 fix(ssh_tunnel): Fix bug on database edition for databases with ssh tunnels (#23006)
     add 5e64211bdb fix: Handles disabled options on Select All (#22830)
     add 684b8888b1 fix(dashboard): Stop updating chart owners for charts removed from dashboard (#21720)
     add 85f07798bf docs(teradata): fix connection string (#23051)
     add 464ddee4b4 fix: Time Column on Generic X-axis (#23021)
     add 17fbb2dbb2 fix: Menu items are not disappearing when deleting a dashboard (#23039)
     add a7bb14e433 fix(i18n): improve Russian translation (#22939)
     add d3d59ee0ae fix(sqllab): Invalid schema fetch by deprecated value (#22968)
     add 49aa9b4ca8 chore: Removes icon warnings from tests (#23054)
     add 4980621902 feat(sqllab): Add event logger (#23040)
     add f3bdcdc79b chore(datasets): Refactor DatasetDAO update to leverage bulk logic for create, update, and delete operations (#22957)
     add 65fffe974b chore: remove db_engines (#22444)
     add a307223857 feat(helm): allow persisting nodePort for services (#22713)
     add 52da9fcbe7 build(deps-dev): bump @typescript-eslint/eslint-plugin from 5.49.0 to 5.52.0 in /superset-websocket (#23073)
     add 50ae48103e build(deps): bump hot-shots from 9.3.0 to 10.0.0 in /superset-websocket (#23031)
     add c59a77e3ca build(deps-dev): bump prettier from 2.8.3 to 2.8.4 in /superset-websocket (#23030)
     add 0ec1e6e0b4 build(deps-dev): bump @types/node from 18.11.19 to 18.13.0 in /superset-websocket (#23029)
     add e755b4f417 fix: cache warmup solution non legacy charts. (#23012)
     add 7d7e3e4ade docs: remove duplicate navbar item (#22486)
     add 3fae7dbc34 chore: Migrate get_or_create_table endpoint to api v1 (#22931)
     add e5a4c78dc7 chore: Migrate /superset/csv/<client_id> to API v1 (#22913)
     add c39cf36d27 fix: css template permissions for gamma role (#23083)
     add f46aacae71 build(deps): bump ws from 8.12.0 to 8.12.1 in /superset-websocket (#23080)
     add a7dac13ded build(deps-dev): bump eslint from 8.33.0 to 8.34.0 in /superset-websocket (#23079)
     add 1324135697 chore(style): make brand icon max width customizable (#23081)
     add 76f7a3fb4e chore: Remove dependency warnings from SqlEditorLeftBar/index.tsx (#22975)
     add 861ecf65d4 chore: Remove dependency warnings from SqlEditor/index.jsx (#22974)
     add 5b5b534e89 chore: Remove dependency warnings from DatasetList.tsx (#22973)
     add b1296a195c test: Convert DatasetList test from jsx to tsx (#22971)
     add f6c304437a test: Clean up SelectAsyncControl test warnings (#22969)
     add 4ddf67fc14 chore: move dashboard screenshot standalone logic (#23003)
     add 21dd1601bf fix: dict bug on QueryContextFactory (#23093)
     add f4ffed24ba chore: Improve greeting message (#23077)
     add 92b9c06e59 chore: Updating connection URI for MS SQL Server (#22903)
     add 434b445e31 chore: increment statsd as warn (#23041)
     add 75495d1601 fix: removing pyproject.toml (#23101)
     add 7160daecf3 chore: change AlertQueryError to 400 (#23102)
     add 4b03d2553c fix: missing __init__ on module sqllab commands (#23107)
     add dec6ac49f6 chore(backend): Spelling (#19677)
     add 22a648755b chore: Remove yarn.lock from the root folder (#23108)
     add f851e992cf chore(sqla): Address performance tradeoff with eager loading (#23113)
     add 5482f78a9c fix(ci): explicity set yaml Loader (#23126)
     add c7823e32ff fix: Validate jinja rendered query (#22851)
     add d4362a3676 fix: reorganize role permissions (#23096)
     add 8f8fba2056 fix: gamma sql_json test (#23135)
     add eb8386e3f0 fix(dashboard): Chart's empty state not centered (#23022)
     add a40c12d63e feat: Frontend tagging (#20876)
     add fbf10c35a9 feat: return UUID on database creation (#23143)
     add a0ca0c04ff chore: Add docs for ssh tunneling (#23131)
     add 871cab8cbe feat: Enable cross fitlers in WorldMap and Graph charts (#22886)
     add 95eb8d79d0 chore: Bump cryptography to 39.0.1 (#23158)
     add ee1952e488 feat(dashboard): Add cross filter from context menu (#23141)
     add 6338ea5d42 chore: revert "feat(native_filter_migration): add transition mode (#16992)" (#23144)
     add 9a4839f45c build: Add helm chart option to deploy sidecars with node and worker (#23160)
     add 89576f8a87 fix(rbac): show objects accessible by database access perm (#23118)
     add f0f27a486d fix: bump FAB to 4.3.0 (#23184)
     add d0c54cddb0 fix(clickhouse): add clickhouse connect driver (#23185)
     add 967383853c fix(clickhouse): add missing default format (#23192)
     add 3484e8ea7b feat(ssh_tunnel): Import/Export Databases with SSHTunnel credentials (#23099)
     add a70b7ac3b0 chore: refactor SparklineCell for react 17 and react 18 upgrade (#23145)
     add 218de6e6a4 fix(ssh_tunnel): Display SSHTunnel Switch when editing a DB that was created with the Dynamic Form (#23195)
     add 196e3eac8b fix(sshtunnel): argument params to properly setting `server_port` (#23196)
     add cb9bff72d6 fix(ssh-tunnel): add password to `from_private_key` function (#23175)
     add 6a484b1553 fix: Pagination of VirtualTable (#23130)
     add 7d4aee956e fix(dashboard): Focusing charts and native filters from filters badge (#23190)
     add 9e9f9dcae5 fix(docs): Change postgres to postgresql in brew install command (#23202)
     add 718f6877d1 build(deps-dev): bump @typescript-eslint/parser from 5.51.0 to 5.53.0 in /superset-websocket (#23133)
     add a9fe40d38b build(deps-dev): bump @types/node from 18.13.0 to 18.14.1 in /superset-websocket (#23180)
     add 9f97c7d028 test: Remove test playgrounds (#23203)
     add c80d6b1451 build(deps-dev): bump @typescript-eslint/eslint-plugin from 5.52.0 to 5.53.0 in /superset-websocket (#23132)
     add 64ad70cc8d build(deps): bump express and @applitools/eyes-cypress in /superset-frontend/cypress-base (#22342)
     add 37766b9527 docs: fix typo (#23207)
     add dcd3e00f39 feat: Cross Filters in FilterBar (#23138)
     add ad5ee1ce38 fix(dashboard): Page crashing when cross filter applied on adhoc column (#23215)
     add 79274eb5bc fix: memoized decorator memory leak (#23139)
     add 62634bd77b build(deps-dev): bump @types/uuid from 9.0.0 to 9.0.1 in /superset-websocket (#23152)
     add 14879d93fb build(deps-dev): bump eslint from 8.34.0 to 8.35.0 in /superset-websocket (#23211)
     add 8f972d6875 chore: adding code owners for github actions/workflows (#23201)
     add 88167772e9 build(deps): bump ua-parser-js from 0.7.28 to 0.7.33 in /superset-frontend (#22859)
     add 42db7e562d build(deps): bump pre-commit from 3.0.4 to 3.1.0 in /requirements (#23168)
     add b479e93b49 fix: add disallowed query params for engines specs (#23217)
     add 0a7016df2e chore: Add statsd logger for ssh tunneling creation (#23225)
     add 473a69a704 fix(dashboard): Don't show cross filters checkbox to users without write permissions (#23237)
     add ae8aa60844 docs: update installation docs to include frontend asset build (#23199)
     add aba6900994 build(deps): bump pip-compile-multi from 2.6.1 to 2.6.2 in /requirements (#23122)
     add 7196e87833 fix(dashboard): Cross-filters not working properly for new dashboards (#23194)
     add b180319bbf fix: refuse to start with default secret on non debug envs (#23186)
     add 5a099e0762 fix(dao): use explicit id filter (#23246)
     add 6076457b90 fix(explore): Dashboard filters on adhoc cols not working in Explore (#23239)
     add d16eda6e56 refactor: Organizes the pages in their own folder (#23241)
     add 022df93422 fix: Video Game Sales dashboard default filters (#23242)
     add 5f0c320415 chore: Deprecate show_native_filters (#23228)
     add 134acba99a chore: Remove the ability to add filter-box charts when DASHBOARD_NATIVE_FILTERS feature is enabled (#23142)
     add 2ba9d1b79e fix(dashboard): Cross-filter search icon in filter bar (#23250)
     add d3e698eb54 chore(webdriver): Tuning the Webdriver logging a bit (#23255)
     add 1f3eb56688 fix: customize tab on heatmap chart is blank (#23243)
     add 9d0eea9600 fix(dashboard): Missing filter card styles (#23256)
     add 7d8383cbd5 fix: ignore ts warnings from older typescript versions (#23262)
     add 006f3dd88c chore(cache): Tuning logging in cache manager (#23266)
     add 42980a69a7 fix(dashboard): Charts crashing when cross filter on adhoc column is applied (#23238)
     add 71a9d0d403 fix(plugin-chart-echarts): render horizontal categories from top (#23273)
     add 1b139d0748 feat(generic-x-axis): add x sorting on series limit metric (#23274)
     add d16512b775 fix(dashboard): Allow selecting text in cells in Table and PivotTable without triggering cross filters (#23283)
     add f7e7652270 fix(migration): Address issue in #23228 (#23276)
     add ed11123709 chore(dashboard): Cleanup example dashboard filter scopes (#23260)
     add a3d49ca335 fix(dashboard): Infinite load when filter with default first value is out of scope (#23299)
     add e0d976dcca fix(clickhouse):  Update to working clickhouse-connect version (#23296)
     add 376ad39576 chore: upgrade @ant-design/icons for react upgrade (#22890)
     add dae6a9f701 docs: typo 'admnistrators' in security.mdx (#23166)
     add 9df7812e9c build(deps-dev): bump eslint-config-prettier from 8.6.0 to 8.7.0 in /superset-websocket (#23292)
     add 56380027f4 build(deps-dev): bump @types/node from 18.14.1 to 18.14.6 in /superset-websocket (#23281)
     add 0a588d11a5 chore: bump docusaurus to latest stable (#23317)
     add eb3d5602c2 docs: add lost _filters param docs (#23316)
     add 57db8f938b feat(docs): adds BugHerd to documentation site. (#23287)
     add 989fe27a0f chore: log different selenium timeout errors differently (#23290)
     add 33b758d716 docs: improve API v1 migration documentation (#23298)
     add 2cf75cc0ce docs(alerts and reports): Update ExecutorType class (#23323)
     add 6311b40329 build(deps-dev): bump @typescript-eslint/parser from 5.53.0 to 5.54.1 in /superset-websocket (#23294)
     add c2b282ac71 feat(dashboard): Refactor FiltersBadge (#23286)
     add a8d5cb89a8 chore: use util test env for init check (#23325)
     add a591130e0b fix(trino): normalize non-iso timestamps (#23339)
     add 78ee60e227 fix(dashboard): Cross filters with time shifted series (#23347)
     add f3055fcaff feat(dashboard): Change default opacity of icon in FiltersBadge (#23350)
     add b99d38dfef fix: dashboard DAO small code improvement (#23348)
     add 82cadccced chore: Remove Cross Filter scoping modal (#23216)
     add 3919ca6060 fix(dashboard): deepmerge htmlSchemaOverrides (#23329)
     add e83f4e6f79 fix(trino): Disallow alias to source column (#23324)
     add d415eed717 fix(examples): Cleanup granularity_sqla column (#23322)
     add 9ae81b7c33 fix(sqllab): empty large query results from localStorage (#23302)
     add b820eb8235 chore: Update pre-commit packages (#23173)
     add b90a11191f fix(safari): remove autocomplete in table select (#23361)
     add 63513a5873 fix(chart-controls): Error if x_axis_sort and timeseries_limit_metric are included in main metrics (#23365)
     add db95a93f43 feat(native-filters): allow cascading from time and numeric filters (#23319)
     add df9a5bb6df build(deps-dev): bump @types/node from 18.14.6 to 18.15.3 in /superset-websocket (#23360)
     add d2c1fb95ec fix(native-filters): Caching scope (#23314)
     add 1b95da7487 fix: table schema permissions (#23356)
     add 1874f9a3b6 fix: dataset_macro (#23376)
     add 9920ab3fd9 chore: Migrate /superset/schemas_access_for_file_upload to v1 (#23227)
     add 24c472a4a3 chore: Add code-owners to Select, MetadataBar and DropdownContainer (#23371)
     add ec6318b379 fix: permission checks on import (#23200)
     add da3791ad3d fix: Table sorting reset (#23318)
     add 0c454c6442 feat(plugin-chart-echarts): add series sorting (#23392)
     add 870bf6d0b9 fix: revert back to use security manager authz for dashboard when get by uuid (#23330)
     add ad72cd3171 chore(dashboard): Disable 'Set filter mapping' when appropriate (#23261)
     add a17028c7de build(deps): bump @sideway/formula from 3.0.0 to 3.0.1 in /docs (#23369)
     add fe4f9d6232 build(deps-dev): bump @typescript-eslint/parser from 5.54.1 to 5.55.0 in /superset-websocket (#23379)
     add 635ac8e8a8 build(deps-dev): bump webpack from 5.67.0 to 5.76.0 in /superset-embedded-sdk (#23367)
     add e13fa27074 build(deps-dev): bump webpack from 5.64.0 to 5.76.0 in /docs (#23368)
     add e3a7d2014d fix(webdriver): default WEBDRIVER_OPTION_ARGS and update Firefox deps (#23388)
     add 2fe695d3cf fix: Select all issue with "Dynamically search all filter values" in FilterBar (#23400)
     add d4657f6198 fix(docker): multi-architecture image build (#23409)
     add 42e8d1b498 chore: improve schema security (#23385)
     add 2feb599a0e chore(docs): three typos (#23403)
     add 7b1ba673f2 build(deps): bump ws from 8.12.1 to 8.13.0 in /superset-websocket (#23343)
     add 067c2e35b2 build(deps-dev): bump webpack from 5.52.1 to 5.76.0 in /superset-frontend (#23366)
     add d950eb85d7 build(deps-dev): bump @typescript-eslint/eslint-plugin from 5.53.0 to 5.55.0 in /superset-websocket (#23359)
     add 022213972b fix(dashboard): `show_native_filters` leftover (#23389)
     add 8fa77adf9a chore: Hugh/migrate estimate query cost to v1 (#23226)
     add f4035e096f chore: update releasing process for testing (#23331)
     add 2c6f581fa6 feat(postgresql): dynamic schema (#23401)
     add a5c31b2426 feat(chart): Added  SriLanka country map (#23338)
     add b0d83e8c50 feat(echarts): Implement stream graph for Echarts Timeseries (#23410)
     add 3277ea83ea feat(sqllab): log error_detail on fetch failed (#23377)
     add ffc0a81e85 chore(native-filters): Fetch only the required dataset fields (#23303)
     add b021f6e05d feat: add new cache_query_by_user key (#23415)
     add b511d2c624 docs(security): note the need to set TALISMAN_ENABLED = True (#23431)
     add 7160dcb054 build(deps-dev): bump eslint from 8.35.0 to 8.36.0 in /superset-websocket (#23342)
     add aec91850e5 build(deps): bump pre-commit from 3.1.0 to 3.2.0 in /requirements (#23422)
     add 65a3a4d908 fix: database dropdown keys (#23433)
     add 2fa8f989ae chore: Update typing for `Table` component (#23398)
     add 7ef06b0a60 chore: Add DRILL_BY feature flag (#23430)
     add 226b60bc4f fix: safe check when computing chart thumbnail (#23432)
     add d01cf4300c fix: schedule query option showing up (#23386)
     add 45f045def2 fix: prevent ForeignKeyViolation error on delete (#23414)
     add 8ecf0b1c20 feat(echarts): Add x axis sort by to all series charts (#23450)
     add 9626a0d884 build(deps-dev): bump prettier from 2.8.4 to 2.8.6 in /superset-websocket (#23451)
     add fb270cbbd5 build(deps-dev): bump @types/node from 18.15.3 to 18.15.5 in /superset-websocket (#23438)
     add 8588f81855 feat(DB engine spec): `get_catalog_names` (#23447)
     add 499754a52e fix: Allow setting ingress hosts directly through yaml (#23446)
     add fae3ad0462 docs(contributing): added note for creating SECRET_KEY (#23417)
     add b1526c14e0 fix(sqllab): dedupe active_tab in tabHistory (#23265)
     add ca4dd26648 chore(sqllab): Remove schemaOptions from redux store (#23257)
     add 832e8fb0ac fix(Pivot Table v2): resolved full width issue (#23393)
     add 88684caba8 build(deps-dev): bump eslint-config-prettier from 8.7.0 to 8.8.0 in /superset-websocket (#23437)
     add 212b7330d6 docs(contributing): How create or change SECRET_KEY (#23420)
     add b0773145d6 feat: Allows reload on default filter value error (#23459)
     add 07a632891c fix(chart): non existent time grain no longer breaks the application (#23441)
     add a15e833128 fix(chart): add missing toleration for init-job (#23452)
     add 8f846b7ad0 fix: broken helm chart ingress (#23471)
     add d1947f7354 fix(sqllab): throw errors of commented out query (#23378)
     add be2eb3157c perf(postprocessing): improve pivot postprocessing operation (#23465)
     add 8c374f391d chore: Dataset specific MetadataBar (#23429)
     add 4530542ac4 fix: Chart crashing if timeseries_limit_metric is an empty array (#23480)
     add 0fa421271e feat(helm): add nodeselector and tolerations to init job (#23416)
     add 21578f74b7 chore: Changes the inputs of native filters modal to have the same width (#23477)
     add a3ffc67238 docs: Adds notes to Superset plugin generator about TypeScript errors (#23501)
     add 0cebe8bf18 fix(legacy-plugin-chart-heatmap): fix adhoc column tooltip (#23507)
     add 8db5cb18c0 fix(generic-x-axis): skip initial time filter for legacy charts (#23506)
     add 439d687e1f fix(dashboard): Add remark plugin on markdown (#23502)
     add 80d1e4ffa3 fix: Preserves selected scopes when toggling between scope types (#23475)
     add 5d910aa2e2 fix(plugin-chart-table): Invalid d3Formatter on String column (#23515)
     add 542bf25729 fix(dashboards): apply tag filter correctly (#23521)
     add 9fbfd1c1d8 feat: Implement context menu for drill by (#23454)
     add 4220d32f3d fix: Dashboard not loading with default first value in filter (#23512)
     add 97b5cdd588 feat: drill by modal (#23458)
     add f2be53dd53 chore: Migrate /superset/favstar to API v1 (#23165)
     add de42c11f99 fix(plugin-generator): Addresses linter errors in newly generated Superset plugin (#23513)
     add 41ad9442c0 fix(word cloud): series label format fixed for custom sql queries (#23517)
     add 63751c6c0f chore: Adds a tooltip to pre-filter in native filters modal (#23481)
     add ce3ba67cf6 fix(conditional formatting): controls looses on save (#23137)
     add 81b32d1045 chore: allow logs to show error levels for ssh tunnel (#23536)
     add 068163e2a1 fix(tags): convert postgres enum type to varchar (#23526)
     add 330e79bc5d ci: disable flaky async test (#23527)
     add db9ca20737 fix(area chart legacy): tool tip shows actual value rather than y axi… (#23469)
     add f6b5b658e5 chore(welcome): harmonize submenu with other routes (#22803)
     add 500d90058f feat: add ability to disable cache (#23439)
     add 09757dc518 fix: moved alerts and reports default values to config (#22880)
     add bc2ec044b8 feat(cross-filters): using verbose map in applied cross-filters (#23509)
     add ee9ef24509 perf(sqla): avoid unnecessary type check on adhoc column (#23491)
     add 1ced7cdbbb fix: Removes Redux state mutations - iteration 1 (#23522)
     add b52efe0599 fix(sqllab): dedupe table_schemas in active_tab (#23514)
     add a18e33b3bc fix: Hide FilterBar for Reports (#23543)
     add bd0609df58 fix(sqllab): undefined issue_codes on query error (#23549)
     add 13ffb4b7c2 fix(plugin-chart-table): Include time control (#23533)
     add cdc7af11bf chore: Migrate /superset/user_slices and /superset/fave_slices to API v1 (#22964)
     add 3bc496040d fix: Filter values are not updating when dependencies are set (#23566)
     add 95db6c04aa fix: Add default empty array to filter dependencies (#23565)
     new eef940d186 Merge

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/CODEOWNERS                                 |   10 +-
 .github/workflows/superset-python-unittest.yml     |    2 +
 .github/workflows/welcome-new-users.yml            |    3 +-
 .pre-commit-config.yaml                            |    9 +-
 Dockerfile                                         |   16 +-
 RELEASING/Dockerfile.from_local_tarball            |    3 +-
 RELEASING/changelog.py                             |    2 +-
 RELEASING/from_tarball_entrypoint.sh               |    1 +
 RESOURCES/FEATURE_FLAGS.md                         |    2 +-
 RESOURCES/INTHEWILD.md                             |    1 +
 UPDATING.md                                        |   15 +
 docker/.env-non-dev                                |    1 +
 docs/docs/contributing/local-backend.mdx           |    2 +
 .../creating-your-first-dashboard.mdx              |    2 +-
 .../docs/databases/installing-database-drivers.mdx |    4 +-
 docs/docs/databases/teradata.mdx                   |    2 +-
 docs/docs/installation/alerts-reports.mdx          |   16 +-
 docs/docs/installation/cache.mdx                   |    3 +
 docs/docs/installation/configuring-superset.mdx    |   12 +-
 .../installing-superset-from-scratch.mdx           |   10 +-
 docs/docs/installation/setup-ssh-tunneling.mdx     |   21 +
 docs/docs/installation/sql-templating.mdx          |   47 +-
 docs/docs/miscellaneous/chart-params.mdx           |    2 +-
 docs/docs/security.mdx                             |   18 +-
 docs/docusaurus.config.js                          |   13 +-
 docs/package.json                                  |   16 +-
 docs/static/resources/openapi.json                 |  352 +-
 docs/yarn.lock                                     | 4429 ++++-----
 helm/superset/Chart.yaml                           |    2 +-
 helm/superset/README.md                            |   11 +-
 helm/superset/templates/deployment-worker.yaml     |    3 +
 helm/superset/templates/deployment.yaml            |    3 +
 helm/superset/templates/ingress.yaml               |    3 +
 helm/superset/templates/init-job.yaml              |   26 +
 helm/superset/templates/service.yaml               |    9 +
 helm/superset/values.yaml                          |   24 +-
 pyproject.toml                                     |   19 -
 requirements/base.txt                              |    4 +-
 requirements/integration.txt                       |   22 +-
 setup.py                                           |    6 +-
 superset-embedded-sdk/package-lock.json            |  100 +-
 superset-embedded-sdk/package.json                 |    2 +-
 superset-embedded-sdk/src/index.ts                 |    2 +
 superset-frontend/.storybook/main.js               |    5 +-
 .../cypress/integration/chart_list/list.test.ts    |    8 +-
 .../cypress/integration/dashboard/load.test.ts     |    5 +-
 .../integration/dashboard/nativeFilters.test.ts    |   27 +-
 .../cypress/integration/dashboard/utils.ts         |    9 +-
 superset-frontend/cypress-base/package-lock.json   | 6610 +++++++++----
 superset-frontend/cypress-base/package.json        |    2 +-
 superset-frontend/jest.config.js                   |    3 +
 superset-frontend/package-lock.json                | 2125 ++++-
 superset-frontend/package.json                     |   14 +-
 .../generators/plugin-chart/templates/README.erb   |   25 +
 .../generators/plugin-chart/templates/package.erb  |    2 +-
 .../plugin-chart/templates/src/MyChart.erb         |   11 +-
 .../templates/src/plugin/controlPanel.erb          |    6 +-
 .../plugin-chart/templates/src/types.erb           |    6 +-
 .../templates/test/plugin/transformProps.test.erb  |    3 +-
 .../superset-ui-chart-controls/package.json        |    2 +-
 .../src/components/ColumnOption.tsx                |    8 +-
 .../src/components/MetricOption.tsx                |    8 +-
 .../src/operators/pivotOperator.ts                 |    6 +-
 .../src/operators/sortOperator.ts                  |    4 +-
 .../src/operators/utils/extractExtraMetrics.ts}    |   39 +-
 .../src/operators/utils/index.ts                   |    1 +
 .../src/shared-controls/customControls.tsx         |   81 +-
 .../src/shared-controls/mixins.tsx                 |    4 +-
 .../src/utils/D3Formatting.ts                      |    7 +
 .../test/operators/pivotOperator.test.ts           |   30 +
 .../test/operators/sortOperator.test.ts            |   25 +
 .../operators/utils/extractExtraMetrics.test.ts    |  136 +
 .../packages/superset-ui-core/package.json         |    2 +
 .../superset-ui-core/src/chart/types/Base.ts       |   16 +-
 .../src/components/SafeMarkdown.tsx                |   23 +-
 .../superset-ui-core/src/hooks}/index.ts           |    5 +
 .../src/hooks/useChangeEffect/index.ts             |    0
 .../hooks/useChangeEffect/useChangeEffect.test.ts  |    0
 .../src/hooks/useChangeEffect/useChangeEffect.ts   |    0
 .../src/hooks/useComponentDidMount/index.ts        |    0
 .../useComponentDidMount.test.ts                   |    0
 .../useComponentDidMount/useComponentDidMount.ts   |    0
 .../src/hooks/useComponentDidUpdate/index.ts       |    0
 .../useComponentDidUpdate.test.ts                  |    0
 .../useComponentDidUpdate/useComponentDidUpdate.ts |    0
 .../src/hooks/useElementOnScreen}/index.ts         |    2 +-
 .../useElementOnScreen/useElementOnScreen.test.ts  |  111 +
 .../useElementOnScreen/useElementOnScreen.ts}      |    0
 .../src/hooks/usePrevious/index.ts                 |    0
 .../src/hooks/usePrevious/usePrevious.test.ts      |    0
 .../src/hooks/usePrevious/usePrevious.ts           |    0
 .../src/hooks/useTruncation/index.ts               |    0
 .../useTruncation/useCSSTextTruncation.test.tsx    |   62 +
 .../hooks/useTruncation/useCSSTextTruncation.ts    |    0
 .../useChildElementTruncation.test.ts              |  102 +
 .../useTruncation/useChildElementTruncation.ts     |    0
 .../packages/superset-ui-core/src/index.ts         |    1 +
 .../src/query/buildQueryContext.ts                 |   17 +-
 .../src/query/extractQueryFields.ts                |    3 +-
 .../packages/superset-ui-core/src/style/index.tsx  |    1 +
 .../superset-ui-core/src/time-format/index.ts      |    2 +
 .../src/time-format/utils/normalizeTimestamp.ts}   |   21 +-
 .../src/ui-overrides/ExtensionsRegistry.ts         |   11 +
 .../superset-ui-core/src/utils/featureFlags.ts     |    3 +-
 .../superset-ui-core/src/utils/getSelectedText.ts} |    3 +-
 .../packages/superset-ui-core/src/utils/index.ts   |    1 +
 .../test/components/SafeMarkdown.test.ts}          |   35 +-
 .../test/query/buildQueryContext.test.ts           |   37 -
 .../time-format/utils/normalizeTimestamp.test.ts   |   43 +
 .../test/utils/getSelectedText.test.ts}            |   22 +-
 .../src/countries.ts                               |    2 +
 .../src/countries/srilanka.geojson                 | 9838 ++++++++++++++++++++
 .../legacy-plugin-chart-heatmap/src/Heatmap.js     |   15 +-
 .../legacy-plugin-chart-world-map/src/WorldMap.js  |  112 +-
 .../legacy-plugin-chart-world-map/src/index.js     |    6 +-
 .../src/transformProps.js                          |   17 +-
 .../src/utilities/Shared_DeckGL.jsx                |    4 +-
 .../src/Pie/controlPanel.ts                        |    8 +-
 .../plugins/legacy-preset-chart-nvd3/src/utils.js  |    2 +-
 .../src/BigNumber/BigNumberViz.tsx                 |    6 +-
 .../plugin-chart-echarts/src/BigNumber/types.ts    |    4 +-
 .../src/BoxPlot/EchartsBoxPlot.tsx                 |   51 +-
 .../src/BoxPlot/controlPanel.ts                    |    5 +-
 .../plugin-chart-echarts/src/BoxPlot/index.ts      |    8 +-
 .../src/Funnel/EchartsFunnel.tsx                   |   51 +-
 .../src/Funnel/controlPanel.tsx                    |    6 +-
 .../plugin-chart-echarts/src/Funnel/index.ts       |    6 +-
 .../src/Gauge/EchartsGauge.tsx                     |   51 +-
 .../plugin-chart-echarts/src/Gauge/index.ts        |    6 +-
 .../src/Graph/EchartsGraph.tsx                     |  110 +-
 .../plugin-chart-echarts/src/Graph/index.ts        |    8 +-
 .../src/Graph/transformProps.ts                    |   24 +-
 .../plugin-chart-echarts/src/Graph/types.ts        |    1 +
 .../src/MixedTimeseries/EchartsMixedTimeseries.tsx |  167 +-
 .../src/MixedTimeseries/index.ts                   |    6 +-
 .../plugin-chart-echarts/src/Pie/EchartsPie.tsx    |   51 +-
 .../plugin-chart-echarts/src/Pie/controlPanel.tsx  |    5 +-
 .../plugins/plugin-chart-echarts/src/Pie/index.ts  |    6 +-
 .../src/Radar/EchartsRadar.tsx                     |   52 +-
 .../src/Radar/controlPanel.tsx                     |    5 +-
 .../plugin-chart-echarts/src/Radar/index.ts        |    6 +-
 .../src/Sunburst/EchartsSunburst.tsx               |   99 +-
 .../src/Sunburst/controlPanel.tsx                  |    5 +-
 .../plugin-chart-echarts/src/Sunburst/index.ts     |    8 +-
 .../src/Timeseries/Area/controlPanel.tsx           |   16 +-
 .../src/Timeseries/Area/index.ts                   |    6 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |  154 +-
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |   15 +-
 .../src/Timeseries/Regular/Bar/index.ts            |    6 +-
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |   13 +-
 .../src/Timeseries/Regular/Line/index.ts           |    6 +-
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |   13 +-
 .../src/Timeseries/Regular/Scatter/index.ts        |    6 +-
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |   13 +-
 .../src/Timeseries/Regular/SmoothLine/index.ts     |    6 +-
 .../src/Timeseries/Step/controlPanel.tsx           |   10 +-
 .../src/Timeseries/Step/index.ts                   |    6 +-
 .../src/Timeseries/buildQuery.ts                   |   35 +-
 .../src/Timeseries/constants.ts                    |    9 +
 .../plugin-chart-echarts/src/Timeseries/index.ts   |    6 +-
 .../src/Timeseries/transformProps.ts               |  109 +-
 .../src/Timeseries/transformers.ts                 |   94 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    1 +
 .../src/Treemap/EchartsTreemap.tsx                 |  119 +-
 .../src/Treemap/controlPanel.tsx                   |    5 +-
 .../plugin-chart-echarts/src/Treemap/index.ts      |    6 +-
 .../src/components/ExtraControls.tsx               |    4 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |   25 +-
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   54 +-
 .../plugins/plugin-chart-echarts/src/types.ts      |   28 +-
 .../src/utils/eventHandlers.ts                     |  107 +-
 .../plugin-chart-echarts/src/utils/series.ts       |  115 +-
 .../test/Graph/transformProps.test.ts              |    6 +
 .../test/Timeseries/transformProps.test.ts         |  175 +
 .../plugin-chart-echarts/test/utils/series.test.ts |   52 +-
 .../plugins/plugin-chart-pivot-table/package.json  |    2 +-
 .../src/PivotTableChart.tsx                        |  103 +-
 .../src/plugin/controlPanel.tsx                    |    4 +-
 .../plugin-chart-pivot-table/src/plugin/index.ts   |   10 +-
 .../src/react-pivottable/Styles.js                 |    1 +
 .../src/react-pivottable/TableRenderers.jsx        |   12 +
 .../plugins/plugin-chart-pivot-table/src/types.ts  |    4 +-
 .../plugins/plugin-chart-table/package.json        |    1 +
 .../plugin-chart-table/src/DataTable/DataTable.tsx |   25 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |  229 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   32 +-
 .../plugins/plugin-chart-table/src/index.ts        |    8 +-
 .../plugin-chart-table/src/transformProps.ts       |    3 +-
 .../plugins/plugin-chart-table/src/types.ts        |    4 +-
 .../src/utils/DateWithFormatter.ts                 |   21 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |    1 +
 .../plugins/plugin-chart-table/test/testData.ts    |   14 +
 .../src/legacyPlugin/transformProps.ts             |    7 +-
 .../src/legacyPlugin/types.ts                      |    4 +-
 .../plugins/plugin-chart-word-cloud/src/types.ts   |    4 +-
 superset-frontend/spec/fixtures/mockCharts.ts      |   55 +
 .../spec/fixtures/mockDashboardState.js            |    2 +-
 superset-frontend/spec/helpers/shim.tsx            |   30 +
 superset-frontend/src/SqlLab/App.jsx               |   11 +-
 superset-frontend/src/SqlLab/actions/sqlLab.js     |   70 +-
 .../src/SqlLab/actions/sqlLab.test.js              |   53 +-
 .../SqlLab/components/AceEditorWrapper/index.tsx   |   35 +-
 .../src/SqlLab/components/App/App.test.jsx         |   49 +-
 .../src/SqlLab/components/App/index.jsx            |   17 +-
 .../components/ExploreCtasResultsButton/index.tsx  |    6 +-
 .../QueryLimitSelect/QueryLimitSelect.test.tsx     |    3 -
 .../src/SqlLab/components/QueryTable/index.tsx     |   15 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |    7 +-
 .../components/RunQueryActionButton/index.tsx      |    5 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |    1 -
 .../SqlLab/components/ShareSqlLabQuery/index.tsx   |    4 +-
 .../src/SqlLab/components/SouthPane/index.tsx      |    4 +-
 .../src/SqlLab/components/SqlEditor/index.jsx      |  122 +-
 .../SqlEditorLeftBar/SqlEditorLeftBar.test.jsx     |   82 +-
 .../SqlLab/components/SqlEditorLeftBar/index.tsx   |   54 +-
 .../SqlLab/components/TabbedSqlEditors/index.jsx   |    4 +-
 .../src/SqlLab/components/TableElement/index.tsx   |    3 +-
 superset-frontend/src/SqlLab/constants.ts          |    1 +
 superset-frontend/src/SqlLab/fixtures.ts           |    7 -
 .../hooks/useQueryEditor/useQueryEditor.test.ts    |    9 +-
 .../src/SqlLab/reducers/getInitialState.js         |   30 +-
 .../src/SqlLab/reducers/getInitialState.test.ts    |   73 +-
 superset-frontend/src/SqlLab/reducers/sqlLab.js    |   14 +-
 superset-frontend/src/SqlLab/types.ts              |    1 -
 .../src/SqlLab/utils/emptyQueryResults.test.js     |   43 +-
 .../SqlLab/utils/reduxStateToLocalStorageHelper.js |   21 +-
 .../src/assets/images/icons/filter.svg             |    5 +-
 .../AlteredSliceTag/AlteredSliceTag.test.jsx       |    2 -
 superset-frontend/src/components/Chart/Chart.jsx   |   36 +-
 .../src/components/Chart/ChartContextMenu.tsx      |  151 +-
 .../src/components/Chart/ChartRenderer.jsx         |    3 +-
 .../DisabledMenuItemTooltip.tsx}                   |   45 +-
 .../Chart/DrillBy/DrillByMenuItems.test.tsx        |  190 +
 .../components/Chart/DrillBy/DrillByMenuItems.tsx  |  243 +
 .../components/Chart/DrillBy/DrillByModal.test.tsx |   88 +
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |  108 +
 .../Chart/DrillDetail/DrillDetailMenuItems.tsx     |   76 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |  107 +-
 .../components/Chart/MenuItemWithTruncation.tsx    |   58 +
 .../src/components/Chart/chartAction.js            |    4 +-
 .../src/components/Chart/chartReducer.ts           |    4 +-
 .../src/components/Chart/utils.test.ts             |    3 +
 superset-frontend/src/components/Chart/utils.ts    |   38 +-
 .../DatabaseSelector/DatabaseSelector.test.tsx     |  283 +-
 .../src/components/DatabaseSelector/index.tsx      |   89 +-
 .../src/components/Datasource/DatasourceEditor.jsx |   12 +-
 .../Datasource/DatasourceEditor.test.jsx           |   13 -
 .../src/components/Datasource/DatasourceModal.tsx  |    8 +-
 .../src/components/DropdownContainer/index.tsx     |    3 +-
 .../src/components/DynamicPlugins/index.tsx        |    3 +-
 .../src/components/EmptyState/index.tsx            |   24 +-
 .../ErrorBoundary/ErrorBoundary.test.tsx           |    2 -
 .../src/components/FaveStar/FaveStar.test.tsx      |    4 +-
 .../src/components/FaveStar/index.tsx              |   11 +-
 .../src/components/FlashProvider/index.tsx         |    2 +-
 .../components/ImportModal/ImportModal.test.tsx    |   47 +
 .../src/components/ImportModal/index.tsx           |  188 +-
 .../src/components/ListView/CrossLinks.tsx         |    3 +-
 .../src/components/ListView/ListView.test.jsx      |    6 -
 superset-frontend/src/components/ListView/types.ts |    3 +
 .../src/components/MessageToasts/Toast.test.jsx    |    2 -
 .../PageHeaderWithActions.test.tsx                 |    2 -
 .../HeaderReportDropdown/index.test.tsx            |    6 -
 .../ReportModal/HeaderReportDropdown/index.tsx     |    2 +-
 .../components/ReportModal/ReportModal.test.tsx    |    6 -
 .../src/components/Select/AsyncSelect.tsx          |    4 +-
 .../src/components/Select/CustomTag.tsx            |    3 +-
 .../src/components/Select/Select.test.tsx          |   59 +-
 superset-frontend/src/components/Select/Select.tsx |  100 +-
 superset-frontend/src/components/Select/types.ts   |    5 +
 superset-frontend/src/components/Select/utils.tsx  |   18 +
 .../src/components/Table/Table.stories.tsx         |    6 +-
 .../src/components/Table/VirtualTable.tsx          |   25 +-
 .../Table/cell-renderers/NullCell/index.tsx        |    8 +-
 superset-frontend/src/components/Table/index.tsx   |  126 +-
 .../TableSelector/TableSelector.test.tsx           |  103 +-
 .../src/components/TableSelector/index.tsx         |   42 +-
 .../src/components/TableView/TableView.test.tsx    |    2 -
 .../utils.test.ts => components/Tags/Tag.test.tsx} |   27 +-
 superset-frontend/src/components/Tags/Tag.tsx      |   86 +
 .../Tags/TagsList.stories.tsx}                     |   54 +-
 .../src/components/Tags/TagsList.test.tsx          |   78 +
 superset-frontend/src/components/Tags/TagsList.tsx |  112 +
 .../index.ts => components/Tags/index.tsx}         |    3 +-
 superset-frontend/src/components/Tags/utils.tsx    |   93 +
 .../src/components/TruncatedList/index.tsx         |  159 +
 superset-frontend/src/constants.ts                 |    8 -
 .../src/dashboard/actions/dashboardState.js        |   50 +-
 superset-frontend/src/dashboard/actions/hydrate.js |  132 +-
 .../src/dashboard/actions/sliceEntities.js         |   43 +-
 .../src/dashboard/actions/sliceEntities.test.js    |    4 +-
 .../CrossFilterScopingForm.test.tsx                |   60 -
 .../CrossFilterScopingForm/index.tsx               |   57 -
 .../CrossFilterScopingModal.tsx                    |  112 -
 .../DashboardBuilder/DashboardBuilder.test.tsx     |    7 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |   40 +-
 .../DashboardBuilder/DashboardContainer.tsx        |    2 +-
 .../dashboard/components/DashboardBuilder/state.ts |   19 +-
 .../DetailsPanel/DetailsPanel.test.tsx             |   82 +-
 .../components/FiltersBadge/DetailsPanel/index.tsx |  213 +-
 .../FilterIndicator/FilterIndicator.test.tsx       |    2 +-
 .../FiltersBadge/FilterIndicator/index.tsx         |   51 +-
 .../components/FiltersBadge/FiltersBadge.test.tsx  |   79 +-
 .../dashboard/components/FiltersBadge/Styles.tsx   |  147 +-
 .../dashboard/components/FiltersBadge/index.tsx    |  114 +-
 .../HeaderActionsDropdown.test.tsx                 |   70 +-
 .../Header/HeaderActionsDropdown/index.jsx         |   17 +-
 .../src/dashboard/components/Header/index.jsx      |   37 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |   14 +-
 .../dashboard/components/PropertiesModal/index.tsx |  127 +-
 .../components/RefreshIntervalModal.test.tsx       |    1 -
 .../src/dashboard/components/SliceAdder.jsx        |   48 +-
 .../src/dashboard/components/SliceHeader/index.tsx |   40 +-
 .../SliceHeaderControls.test.tsx                   |    2 +-
 .../components/SliceHeaderControls/index.tsx       |   41 +-
 .../dashboard/components/gridComponents/Chart.jsx  |   24 +-
 .../components/gridComponents/Markdown.jsx         |    1 +
 .../dashboard/components/gridComponents/Tabs.jsx   |   13 +-
 .../FilterBar/CrossFilters/CrossFilter.test.tsx    |   82 +
 .../FilterBar/CrossFilters/CrossFilter.tsx         |  114 +
 .../FilterBar/CrossFilters/CrossFilterTag.test.tsx |   84 +
 .../FilterBar/CrossFilters/CrossFilterTag.tsx      |   99 +
 .../CrossFilters/CrossFilterTitle.test.tsx}        |   54 +-
 .../FilterBar/CrossFilters/CrossFilterTitle.tsx    |   95 +
 .../FilterBar/CrossFilters/Vertical.tsx            |   49 +
 .../CrossFilters/VerticalCollapse.test.tsx         |  107 +
 .../FilterBar/CrossFilters/VerticalCollapse.tsx    |  102 +
 .../FilterBar/CrossFilters/selectors.ts            |   53 +
 .../FilterBar/CrossFilters/styles.ts}              |   12 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |    3 +-
 .../FilterBarSettings/FilterBarSettings.test.tsx   |    1 -
 .../FilterBar/FilterBarSettings/index.tsx          |    2 +-
 .../FilterBar/FilterControls/FilterControl.tsx     |    9 +-
 .../FilterBar/FilterControls/FilterControls.tsx    |  143 +-
 .../FilterBar/FilterControls/FilterDivider.tsx     |    8 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   58 +-
 .../FilterBar/FiltersDropdownContent/index.tsx     |   30 +-
 .../FiltersOutOfScopeCollapsible/index.tsx         |   13 +-
 .../nativeFilters/FilterBar/Horizontal.tsx         |   40 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |  193 +-
 .../components/nativeFilters/FilterBar/index.tsx   |   70 +-
 .../components/nativeFilters/FilterBar/state.ts    |   29 +-
 .../components/nativeFilters/FilterBar/types.ts    |    9 +-
 .../FilterBar/useFilterControlFactory.tsx          |    9 +-
 .../nativeFilters/FilterBar/useFilterOutlined.ts}  |   31 +-
 .../components/nativeFilters/FilterBar/utils.ts    |   18 +
 .../nativeFilters/FilterCard/DependenciesRow.tsx   |    7 +-
 .../nativeFilters/FilterCard/FilterCard.test.tsx   |    6 +-
 .../nativeFilters/FilterCard/NameRow.tsx           |   21 +-
 .../nativeFilters/FilterCard/ScopeRow.tsx          |    3 +-
 .../FiltersConfigModal/FilterConfigurePane.tsx     |    3 +-
 .../FiltersConfigForm/ColumnSelect.test.tsx        |    6 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |   28 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |   12 +-
 .../FiltersConfigForm/DefaultValue.tsx             |   13 +-
 .../FiltersConfigForm/DependencyList.tsx           |   15 +-
 .../FilterScope/FilterScope.test.tsx               |    2 +-
 .../FiltersConfigForm/FilterScope/FilterScope.tsx  |   27 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  197 +-
 .../FiltersConfigForm/constants.ts}                |   26 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |   14 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |   17 +-
 .../nativeFilters/FiltersConfigModal/state.ts      |    3 +-
 .../{FiltersBadge => nativeFilters}/selectors.ts   |  202 +-
 .../src/dashboard/containers/Chart.jsx             |    1 -
 .../src/dashboard/containers/DashboardHeader.jsx   |    1 -
 .../src/dashboard/containers/DashboardPage.tsx     |  139 +-
 .../src/dashboard/containers/SliceAdder.jsx        |    1 -
 superset-frontend/src/dashboard/styles.ts          |    7 +
 superset-frontend/src/dashboard/types.ts           |    1 -
 .../src/dashboard/util/crossFilters.test.ts        |  207 +
 .../src/dashboard/util/crossFilters.ts             |   64 +-
 .../util/filterboxMigrationHelper.test.ts          |  142 -
 .../src/dashboard/util/filterboxMigrationHelper.ts |  423 -
 .../src/dashboard/util/getSliceHeaderTooltip.tsx   |    2 +-
 .../dashboard/util/updateComponentParentsList.js   |   15 +-
 superset-frontend/src/dataMask/actions.ts          |    9 +-
 .../src/explore/actions/exploreActions.ts          |   21 +-
 .../src/explore/actions/hydrateExplore.ts          |   20 +
 .../src/explore/components/Control.tsx             |    8 +-
 .../src/explore/components/ControlHeader.tsx       |   12 +-
 .../components/ControlPanelsContainer.test.tsx     |   39 +
 .../explore/components/ControlPanelsContainer.tsx  |   54 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |    4 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    2 +-
 .../explore/components/DatasourcePanel/index.tsx   |    7 +-
 .../src/explore/components/ExploreChartPanel.jsx   |    7 +-
 .../ExploreViewContainer.test.tsx                  |    4 +-
 .../components/ExploreViewContainer/index.jsx      |   14 +-
 .../explore/components/PropertiesModal/index.tsx   |  130 +-
 .../src/explore/components/SaveModal.tsx           |   73 +-
 .../AnnotationLayerControl/AnnotationLayer.jsx     |   66 +-
 .../AnnotationLayer.test.tsx                       |    8 +-
 .../ConditionalFormattingControl.tsx               |   30 +-
 .../controls/ConditionalFormattingControl/types.ts |    1 +
 .../DatasourceControl/DatasourceControl.test.tsx   |   19 -
 .../controls/DateFilterControl/DateFilterLabel.tsx |    2 +-
 .../DndFilterSelect.test.tsx                       |    5 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |   41 +-
 .../DndMetricSelect.test.tsx                       |    8 -
 .../DndColumnSelectControl/DndMetricSelect.tsx     |    3 +-
 .../FilterControl/AdhocFilter/AdhocFilter.test.js  |    6 +-
 .../controls/FilterControl/AdhocFilter/index.js    |   51 +-
 .../AdhocFilterControl/AdhocFilterControl.test.jsx |    6 +-
 .../FilterControl/AdhocFilterControl/index.jsx     |   34 +-
 .../AdhocFilterEditPopover.test.jsx                |    6 +-
 .../FilterControl/AdhocFilterEditPopover/index.jsx |    5 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |    6 +-
 .../index.tsx                                      |   17 +-
 .../AdhocFilterEditPopoverSqlTabContent.test.jsx   |    6 +-
 .../AdhocFilterEditPopoverSqlTabContent/index.jsx  |    6 +-
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |   14 +-
 .../AdhocFilterPopoverTrigger.test.tsx             |    6 +-
 .../controls/FilterControl/adhocFilterType.js      |    2 +-
 .../components/controls/FilterControl}/types.ts    |   12 +-
 .../controls/FilterControl/utils/translateToSQL.ts |   76 +
 .../utils/useGetTimeRangeLabel.test.ts             |    3 +-
 .../FilterControl/utils/useGetTimeRangeLabel.tsx   |    3 +-
 .../controls/MetricControl/AdhocMetric.js          |    4 -
 .../controls/MetricControl/AdhocMetric.test.js     |    6 -
 .../AdhocMetricEditPopover.test.tsx                |   22 +-
 .../MetricControl/AdhocMetricEditPopover/index.jsx |   40 +-
 .../MetricControl/AdhocMetricPopoverTrigger.tsx    |    6 +
 .../MetricControl/MetricDefinitionValue.jsx        |    2 +-
 .../controls/MetricControl/MetricsControl.jsx      |    9 +-
 .../controls/MetricControl/MetricsControl.test.jsx |    1 -
 .../SelectAsyncControl/SelectAsyncControl.test.tsx |   16 +-
 .../controls/VizTypeControl/FastVizSwitcher.tsx    |   11 +-
 .../components/controls/VizTypeControl/index.tsx   |   24 +-
 .../useExploreAdditionalActionsMenu/index.jsx      |    4 +-
 superset-frontend/src/explore/constants.ts         |   10 -
 .../getFormDataFromDashboardContext.test.ts        |   37 +
 .../getFormDataWithDashboardContext.ts             |   55 +-
 superset-frontend/src/featureFlags.ts              |    5 +-
 .../metadataBar/DatasetMetadataBar.stories.tsx     |   89 +
 .../metadataBar/useDatasetMetadataBar.test.tsx     |   93 +
 .../datasets/metadataBar/useDatasetMetadataBar.tsx |  107 +
 .../components/Select/SelectFilterPlugin.tsx       |   85 +-
 superset-frontend/src/filters/utils.ts             |    8 +-
 superset-frontend/src/hooks/apiResources/index.ts  |    1 +
 .../src/hooks/apiResources/schemas.test.ts         |  138 +
 .../hooks/apiResources/{tables.ts => schemas.ts}   |   72 +-
 .../src/hooks/apiResources/tables.test.ts          |  186 +-
 superset-frontend/src/hooks/apiResources/tables.ts |   17 +-
 superset-frontend/src/logger/LogUtils.ts           |    5 +
 superset-frontend/src/middleware/asyncEvent.ts     |    3 +-
 .../src/middleware/loggerMiddleware.js             |   12 +-
 .../AlertReportList/AlertReportList.test.jsx}      |    2 +-
 .../AlertReportList/index.tsx}                     |    4 +-
 superset-frontend/src/pages/AllEntities/index.tsx  |   94 +
 .../AnnotationLayerList.test.jsx}                  |    2 +-
 .../AnnotationLayerList/index.tsx}                 |    4 +-
 .../AnnotationList}/AnnotationList.test.jsx        |    2 +-
 .../AnnotationList/index.tsx}                      |    4 +-
 .../ExplorePage.tsx => pages/Chart/index.tsx}      |   14 +-
 .../src/pages/ChartCreation/index.tsx              |   24 +-
 superset-frontend/src/pages/ChartList/index.tsx    |   95 +-
 .../CssTemplateList/CssTemplateList.test.jsx}      |    2 +-
 .../CssTemplateList/index.tsx}                     |    4 +-
 .../Dashboard/index.tsx}                           |    2 +-
 .../DashboardList}/DashboardList.test.jsx          |    2 +-
 .../DashboardList/index.tsx}                       |  113 +-
 .../DatabaseList}/DatabaseList.test.jsx            |   22 +-
 .../DatabaseList/index.tsx}                        |    9 +-
 .../DatasetCreation/DatasetCreation.test.tsx}      |    2 +-
 .../AddDataset => pages/DatasetCreation}/index.tsx |   18 +-
 .../DatasetList/DatasetList.test.tsx}              |    9 +-
 .../DatasetList/index.tsx}                         |   32 +-
 .../ExecutionLogList/ExecutionLogList.test.jsx}    |    2 +-
 .../ExecutionLogList/index.tsx}                    |    2 +-
 .../Welcome.test.tsx => pages/Home/Home.test.tsx}  |    4 +-
 .../welcome/Welcome.tsx => pages/Home/index.tsx}   |  206 +-
 .../QueryHistoryList/QueryHistoryList.test.tsx}    |    2 +-
 .../QueryHistoryList/index.tsx}                    |    2 +-
 .../SavedQueryList}/SavedQueryList.test.jsx        |    2 +-
 .../SavedQueryList/index.tsx}                      |   47 +-
 superset-frontend/src/pages/Tags/index.tsx         |  331 +
 .../src/profile/components/Favorites.tsx           |   31 +-
 superset-frontend/src/profile/types.ts             |    9 +
 superset-frontend/src/tags.ts                      |  186 +
 superset-frontend/src/types/Chart.ts               |   16 +
 .../types.ts => types/TagType.ts}                  |   16 +-
 .../types.ts => types/TaggedObject.ts}             |   11 +-
 .../types.ts => utils/cachedSupersetGet.ts}        |   13 +-
 superset-frontend/src/utils/hostNamesConfig.js     |    7 +-
 .../src/views/CRUD/alert/AlertReportModal.tsx      |   79 +-
 superset-frontend/src/views/CRUD/alert/types.ts    |    5 +
 .../views/CRUD/allentities/AllEntitiesTable.tsx    |  125 +
 .../ChartList => views/CRUD/chart}/ChartCard.tsx   |    4 +-
 .../src/views/CRUD/dashboard/DashboardCard.tsx     |   55 +-
 .../data/database/DatabaseModal/ExtraOptions.tsx   |    4 +-
 .../data/database/DatabaseModal/SSHTunnelForm.tsx  |  317 +-
 .../database/DatabaseModal/SSHTunnelSwitch.tsx     |   58 +
 .../data/database/DatabaseModal/index.test.tsx     |   72 +-
 .../CRUD/data/database/DatabaseModal/index.tsx     |  445 +-
 .../src/views/CRUD/data/database/types.ts          |    1 +
 .../EditDataset/UsageTab/UsageTab.test.tsx         |  405 +
 .../AddDataset/EditDataset/UsageTab/index.tsx      |  263 +
 .../data/dataset/AddDataset/EditDataset/index.tsx  |    6 +-
 .../AddDataset/LeftPanel/LeftPanel.test.tsx        |   16 +-
 superset-frontend/src/views/CRUD/hooks.ts          |   70 +-
 superset-frontend/src/views/CRUD/tags/TagCard.tsx  |  123 +
 superset-frontend/src/views/CRUD/types.ts          |    7 +
 superset-frontend/src/views/CRUD/utils.test.tsx    |  163 +
 superset-frontend/src/views/CRUD/utils.tsx         |   70 +-
 .../src/views/CRUD/welcome/ActivityTable.tsx       |    2 +-
 .../src/views/CRUD/welcome/ChartTable.tsx          |    4 +-
 .../src/views/CRUD/welcome/DashboardTable.tsx      |   36 +-
 .../src/views/CRUD/welcome/EmptyState.tsx          |   18 +-
 .../src/views/CRUD/welcome/SavedQueries.tsx        |    2 +-
 superset-frontend/src/views/components/Menu.tsx    |    9 +-
 superset-frontend/src/views/routes.test.tsx        |    4 +-
 superset-frontend/src/views/routes.tsx             |  117 +-
 .../src/visualizations/TimeTable/SparklineCell.tsx |  298 +-
 .../src/visualizations/TimeTable/TimeTable.jsx     |   20 +-
 .../src/visualizations/TimeTable/transformProps.ts |    2 +
 superset-websocket/package-lock.json               |  873 +-
 superset-websocket/package.json                    |   20 +-
 superset/charts/api.py                             |  163 +-
 superset/charts/commands/delete.py                 |    7 +-
 superset/charts/commands/export.py                 |    3 +-
 superset/charts/commands/importers/v1/utils.py     |    9 +-
 superset/charts/dao.py                             |   30 +
 superset/charts/filters.py                         |   77 +-
 superset/charts/schemas.py                         |   10 +-
 superset/cli/importexport.py                       |    2 +-
 superset/cli/test.py                               |    1 -
 superset/cli/thumbnails.py                         |    9 +-
 superset/cli/update.py                             |    2 +-
 superset/commands/export/assets.py                 |    1 -
 superset/commands/export/models.py                 |    1 -
 superset/commands/importers/v1/__init__.py         |   20 +-
 superset/commands/importers/v1/assets.py           |   17 +-
 superset/commands/importers/v1/examples.py         |   21 +-
 superset/commands/importers/v1/utils.py            |   60 +
 ...uthrized_object.py => not_authorized_object.py} |    0
 superset/common/query_actions.py                   |   26 +-
 superset/common/query_context.py                   |    5 +-
 superset/common/query_context_factory.py           |   96 +-
 superset/common/query_context_processor.py         |   14 +-
 superset/common/query_object.py                    |   34 +-
 superset/common/utils/query_cache_manager.py       |   19 +-
 superset/config.py                                 |    2 +-
 superset/connectors/sqla/models.py                 |  100 +-
 superset/connectors/sqla/utils.py                  |    7 +-
 superset/connectors/sqla/views.py                  |    2 -
 superset/constants.py                              |   10 +
 superset/dao/base.py                               |    6 +-
 superset/dashboards/api.py                         |  173 +-
 superset/dashboards/commands/export.py             |    1 -
 superset/dashboards/commands/importers/v1/utils.py |   17 +-
 superset/dashboards/commands/update.py             |    2 +-
 superset/dashboards/dao.py                         |   69 +-
 superset/dashboards/filter_sets/commands/base.py   |    2 +-
 superset/dashboards/filters.py                     |   35 +-
 superset/dashboards/permalink/commands/create.py   |    4 +-
 superset/dashboards/schemas.py                     |   27 +-
 superset/databases/api.py                          |  105 +-
 superset/databases/commands/create.py              |   11 +-
 superset/databases/commands/export.py              |   11 +-
 superset/databases/commands/importers/v1/utils.py  |   21 +-
 superset/databases/commands/test_connection.py     |    1 -
 superset/databases/schemas.py                      |   85 +-
 .../databases/ssh_tunnel/commands/exceptions.py    |    8 +
 superset/databases/ssh_tunnel/models.py            |   13 +
 superset/datasets/api.py                           |  112 +
 superset/datasets/commands/delete.py               |    7 +-
 superset/datasets/commands/exceptions.py           |    4 +
 superset/datasets/commands/export.py               |   12 +-
 superset/datasets/commands/importers/v1/utils.py   |   41 +-
 superset/datasets/dao.py                           |  123 +-
 superset/datasets/schemas.py                       |   11 +
 superset/datasource/dao.py                         |    1 -
 superset/db_engine_specs/aurora.py                 |    2 -
 superset/db_engine_specs/base.py                   |  156 +-
 superset/db_engine_specs/clickhouse.py             |  315 +-
 superset/db_engine_specs/crate.py                  |    1 -
 superset/db_engine_specs/databricks.py             |    1 -
 superset/db_engine_specs/dremio.py                 |    1 -
 superset/db_engine_specs/drill.py                  |   29 +-
 superset/db_engine_specs/elasticsearch.py          |    2 -
 superset/db_engine_specs/gsheets.py                |    1 -
 superset/db_engine_specs/hive.py                   |   90 +-
 superset/db_engine_specs/impala.py                 |    2 +-
 superset/db_engine_specs/kylin.py                  |    4 +-
 superset/db_engine_specs/mysql.py                  |   32 +-
 superset/db_engine_specs/netezza.py                |    1 -
 superset/db_engine_specs/postgres.py               |   92 +
 superset/db_engine_specs/presto.py                 |   49 +-
 superset/db_engine_specs/rockset.py                |    1 -
 superset/db_engine_specs/snowflake.py              |   41 +-
 superset/db_engine_specs/trino.py                  |    1 +
 superset/db_engines/hive.py                        |   67 -
 .../configs/charts/Video_Game_Sales_Filter.yaml    |    2 +-
 .../dashboards/COVID_Vaccine_Dashboard.yaml        |    6 +-
 .../dashboards/FCC_New_Coder_Survey_2018.yaml      |    8 +-
 .../configs/dashboards/Sales_Dashboard.yaml        |    6 +-
 .../configs/dashboards/Video_Game_Sales.yaml       |   10 +-
 .../configs/datasets/examples/FCC_2018_Survey.yaml |    6 +-
 superset/examples/multiformat_time_series.py       |    2 +-
 superset/examples/utils.py                         |    6 +-
 superset/examples/world_bank.py                    |    1 -
 superset/exceptions.py                             |    6 +-
 superset/explore/permalink/api.py                  |    2 +-
 superset/extensions/ssh.py                         |   12 +-
 superset/importexport/api.py                       |   47 +-
 superset/initialization/__init__.py                |   43 +-
 superset/jinja_context.py                          |   12 +-
 superset/migrations/alembic.ini                    |    7 +-
 .../versions/2017-10-03_14-37_4736ec66ce19_.py     |    9 +-
 ...8c4473c581_allow_multi_schema_metadata_fetch.py |    1 -
 .../versions/2018-03-20_19-47_f231d82b9b26_.py     |    2 -
 ...-07-20_16-08_937d04c16b64_update_datasources.py |    2 -
 .../2019-10-10_13-52_1495eb914ad3_time_range.py    |    1 -
 ...29_09-24_620241d1153f_update_time_grain_sqla.py |    2 -
 ...27_08-25_31b2a1039d4a_drop_tables_constraint.py |    1 -
 ...3605f370a_fix_schemas_allowed_for_csv_upload.py |    1 -
 ...cbaac5_change_datatype_of_type_in_basecolumn.py |    1 -
 ...e5f1dacd_rename_to_schemas_allowed_for_file_.py |    1 -
 ...14-38_a9422eeaae74_new_dataset_models_take_2.py |   10 +-
 ...-46_c0a3ea245b61_remove_show_native_filters.py} |   52 +-
 ...ac08bb5b83_invert_horizontal_bar_chart_order.py |  126 +
 ...7_13-24_b5ea9d343307_bar_chart_stack_options.py |   95 +
 ...af1b_drop_postgres_enum_constrains_for_tags.py} |   35 +-
 superset/models/core.py                            |   76 +-
 superset/models/dashboard.py                       |   35 +-
 superset/models/datasource_access_request.py       |    2 -
 superset/models/helpers.py                         |   23 +-
 superset/models/slice.py                           |   28 +-
 superset/models/sql_lab.py                         |   12 +-
 superset/queries/api.py                            |    2 +-
 superset/queries/saved_queries/api.py              |   61 +-
 superset/queries/saved_queries/commands/export.py  |    1 -
 superset/queries/saved_queries/filters.py          |   12 +-
 superset/reports/commands/base.py                  |    1 -
 superset/reports/commands/exceptions.py            |    7 +-
 superset/reports/commands/execute.py               |   11 +-
 superset/reports/notifications/email.py            |    8 +-
 superset/reports/notifications/slack.py            |    8 +-
 superset/security/manager.py                       |   80 +-
 superset/sql_parse.py                              |    4 +-
 superset/sqllab/api.py                             |  126 +-
 .../{db_engines => sqllab/commands}/__init__.py    |    0
 superset/sqllab/commands/estimate.py               |  106 +
 superset/sqllab/commands/execute.py                |    6 +-
 superset/sqllab/commands/export.py                 |  134 +
 superset/sqllab/commands/results.py                |    3 +-
 superset/sqllab/exceptions.py                      |   12 +-
 superset/sqllab/query_render.py                    |    3 +-
 superset/sqllab/schemas.py                         |    9 +
 superset/sqllab/sql_json_executer.py               |    3 +-
 superset/tags/api.py                               |  386 +
 .../commands}/__init__.py                          |    0
 superset/tags/commands/create.py                   |   65 +
 superset/tags/commands/delete.py                   |  115 +
 superset/tags/commands/exceptions.py               |   65 +
 .../__init__.py => tags/commands/utils.py}         |   13 +
 superset/tags/dao.py                               |  260 +
 .../{db_engines/__init__.py => tags/exceptions.py} |   13 +
 superset/tags/models.py                            |   19 +-
 superset/tags/schemas.py                           |   59 +
 superset/tasks/async_queries.py                    |   12 +-
 superset/tasks/thumbnails.py                       |    5 +-
 .../form_view/database_schemas_selector.html       |    5 +-
 superset/translations/en/LC_MESSAGES/messages.json |    4 +-
 superset/translations/en/LC_MESSAGES/messages.po   |    6 +-
 superset/translations/messages.pot                 |    4 +-
 superset/translations/ru/LC_MESSAGES/messages.json |  212 +-
 superset/translations/ru/LC_MESSAGES/messages.po   | 3204 ++++---
 superset/translations/utils.py                     |    2 +-
 superset/utils/celery.py                           |    1 +
 superset/utils/core.py                             |   15 +-
 .../utils/dashboard_filter_scopes_converter.py     |    2 +-
 superset/utils/date_parser.py                      |    8 +-
 superset/utils/decorators.py                       |   12 +-
 superset/{views/chart => utils}/filters.py         |   33 +-
 superset/utils/machine_auth.py                     |    2 +-
 superset/utils/memoized.py                         |   81 -
 .../utils/pandas_postprocessing/contribution.py    |    2 +-
 superset/utils/pandas_postprocessing/pivot.py      |    9 +-
 superset/utils/pandas_postprocessing/prophet.py    |    2 +-
 superset/utils/screenshots.py                      |   20 +-
 superset/utils/urls.py                             |    4 +-
 superset/utils/webdriver.py                        |   78 +-
 superset/views/all_entities.py                     |   71 +
 superset/views/base.py                             |   43 +-
 superset/views/base_api.py                         |   32 +-
 superset/views/base_schemas.py                     |    2 +-
 superset/views/chart/filters.py                    |    9 +-
 superset/views/chart/mixin.py                      |    1 -
 superset/views/core.py                             |  106 +-
 superset/views/dashboard/mixin.py                  |    1 -
 superset/views/dashboard/views.py                  |    8 -
 superset/views/database/views.py                   |   24 +-
 superset/views/tags.py                             |  248 +-
 superset/viz.py                                    |   60 +-
 tests/common/logger_utils.py                       |    1 -
 tests/integration_tests/base_tests.py              |    8 +
 tests/integration_tests/charts/api_tests.py        |  115 +-
 tests/integration_tests/charts/commands_tests.py   |   64 +-
 tests/integration_tests/charts/data/api_tests.py   |   45 +-
 tests/integration_tests/cli_tests.py               |   23 +-
 tests/integration_tests/conftest.py                |    2 +-
 tests/integration_tests/csv_upload_tests.py        |    7 +-
 tests/integration_tests/dashboards/api_tests.py    |  165 +
 .../integration_tests/dashboards/commands_tests.py |   12 +-
 .../dashboards/permalink/api_tests.py              |    3 +-
 tests/integration_tests/databases/api_tests.py     |  495 +-
 .../integration_tests/databases/commands_tests.py  |  309 +-
 tests/integration_tests/datasets/api_tests.py      |  127 +-
 tests/integration_tests/datasets/commands_tests.py |   68 +-
 .../db_engine_specs/base_engine_spec_tests.py      |    3 +-
 .../db_engine_specs/bigquery_tests.py              |    1 +
 .../db_engine_specs/postgres_tests.py              |   18 +
 tests/integration_tests/event_logger_tests.py      |    6 +-
 .../integration_tests/fixtures/energy_dashboard.py |    1 -
 tests/integration_tests/fixtures/importexport.py   |  107 +
 tests/integration_tests/fixtures/users.py          |   48 +
 tests/integration_tests/queries/api_tests.py       |    6 +-
 .../queries/saved_queries/api_tests.py             |    2 +-
 .../queries/saved_queries/commands_tests.py        |   10 +-
 tests/integration_tests/reports/alert_tests.py     |    2 -
 tests/integration_tests/reports/api_tests.py       |    4 -
 tests/integration_tests/reports/commands_tests.py  |   49 +-
 tests/integration_tests/reports/scheduler_tests.py |    2 -
 .../security/row_level_security_tests.py           |    1 -
 tests/integration_tests/security_tests.py          |   24 +-
 tests/integration_tests/sql_lab/api_tests.py       |  106 +-
 tests/integration_tests/sql_lab/commands_tests.py  |  315 +-
 tests/integration_tests/sqllab_tests.py            |   38 +
 tests/integration_tests/tagging_tests.py           |   12 -
 .../integration_tests/tags}/__init__.py            |    0
 tests/integration_tests/tags/api_tests.py          |  377 +
 tests/integration_tests/tags/commands_tests.py     |  175 +
 tests/integration_tests/tags/dao_tests.py          |  299 +
 tests/integration_tests/thumbnails_tests.py        |    1 -
 tests/integration_tests/utils/decorators_tests.py  |   61 -
 tests/integration_tests/utils_tests.py             |    1 +
 .../charts/commands/importers/v1/import_test.py    |   45 +-
 tests/unit_tests/charts/dao/dao_tests.py           |   35 +-
 .../commands/importers/v1/assets_test.py           |   16 +-
 .../commands/importers/v1/import_test.py           |   46 +-
 tests/unit_tests/dashboards/dao_tests.py           |   79 +
 tests/unit_tests/databases/api_test.py             |    4 +
 .../databases/commands/importers/v1/import_test.py |   44 +-
 .../datasets/commands/importers/v1/import_test.py  |  162 +-
 .../unit_tests/db_engine_specs/test_clickhouse.py  |  162 +-
 tests/unit_tests/db_engine_specs/test_drill.py     |   16 +
 tests/unit_tests/db_engine_specs/test_hive.py      |   15 +
 tests/unit_tests/db_engine_specs/test_mssql.py     |    4 +-
 tests/unit_tests/db_engine_specs/test_mysql.py     |   34 +
 tests/unit_tests/db_engine_specs/test_postgres.py  |   66 +
 tests/unit_tests/db_engine_specs/test_presto.py    |   24 +
 tests/unit_tests/db_engine_specs/test_snowflake.py |   32 +
 tests/unit_tests/explore/utils_test.py             |   19 +-
 tests/unit_tests/fixtures/assets_configs.py        |    2 -
 tests/unit_tests/importexport/api_test.py          |    8 +-
 tests/unit_tests/jinja_context_test.py             |   41 +-
 tests/unit_tests/memoized_tests.py                 |   96 -
 tests/unit_tests/models/core_test.py               |    4 +-
 .../pandas_postprocessing/test_flatten.py          |    8 +-
 .../unit_tests/queries}/__init__.py                |    0
 tests/unit_tests/queries/query_object_test.py      |  345 +
 .../unit_tests/security}/__init__.py               |    0
 tests/unit_tests/security/manager_test.py          |   90 +
 tests/unit_tests/utils/test_decorators.py          |   87 +
 tests/unit_tests/utils/urls_tests.py               |    5 +
 yarn.lock                                          |    2 -
 768 files changed, 42677 insertions(+), 14078 deletions(-)
 create mode 100644 docs/docs/installation/setup-ssh-tunneling.mdx
 delete mode 100644 pyproject.toml
 copy superset-frontend/{src/hooks/useChangeEffect/useChangeEffect.ts => packages/superset-ui-chart-controls/src/operators/utils/extractExtraMetrics.ts} (56%)
 create mode 100644 superset-frontend/packages/superset-ui-chart-controls/test/operators/utils/extractExtraMetrics.test.ts
 copy superset-frontend/{src/hooks/useComponentDidUpdate => packages/superset-ui-core/src/hooks}/index.ts (82%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useChangeEffect/index.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useChangeEffect/useChangeEffect.test.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useChangeEffect/useChangeEffect.ts (100%)
 copy superset-frontend/{ => packages/superset-ui-core}/src/hooks/useComponentDidMount/index.ts (100%)
 copy superset-frontend/{ => packages/superset-ui-core}/src/hooks/useComponentDidMount/useComponentDidMount.test.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useComponentDidMount/useComponentDidMount.ts (100%)
 copy superset-frontend/{ => packages/superset-ui-core}/src/hooks/useComponentDidUpdate/index.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useComponentDidUpdate/useComponentDidUpdate.test.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useComponentDidUpdate/useComponentDidUpdate.ts (100%)
 copy superset-frontend/{src/hooks/usePrevious => packages/superset-ui-core/src/hooks/useElementOnScreen}/index.ts (95%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/hooks/useElementOnScreen/useElementOnScreen.test.ts
 rename superset-frontend/{src/hooks/useElementOnScreen/index.ts => packages/superset-ui-core/src/hooks/useElementOnScreen/useElementOnScreen.ts} (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/usePrevious/index.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/usePrevious/usePrevious.test.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/usePrevious/usePrevious.ts (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useTruncation/index.ts (100%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/hooks/useTruncation/useCSSTextTruncation.test.tsx
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useTruncation/useCSSTextTruncation.ts (100%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/hooks/useTruncation/useChildElementTruncation.test.ts
 rename superset-frontend/{ => packages/superset-ui-core}/src/hooks/useTruncation/useChildElementTruncation.ts (100%)
 rename superset-frontend/{src/dashboard/components/CrossFilterScopingModal/utils/index.ts => packages/superset-ui-core/src/time-format/utils/normalizeTimestamp.ts} (75%)
 rename superset-frontend/{src/hooks/useComponentDidMount/index.ts => packages/superset-ui-core/src/utils/getSelectedText.ts} (91%)
 copy superset-frontend/{src/views/routes.test.tsx => packages/superset-ui-core/test/components/SafeMarkdown.test.ts} (54%)
 create mode 100644 superset-frontend/packages/superset-ui-core/test/time-format/utils/normalizeTimestamp.test.ts
 rename superset-frontend/{src/hooks/useComponentDidMount/useComponentDidMount.test.ts => packages/superset-ui-core/test/utils/getSelectedText.test.ts} (60%)
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/srilanka.geojson
 create mode 100644 superset-frontend/spec/fixtures/mockCharts.ts
 copy superset-frontend/src/components/{Table/cell-renderers/NullCell/index.tsx => Chart/DisabledMenuItemTooltip.tsx} (56%)
 create mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.test.tsx
 create mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.tsx
 create mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillByModal.test.tsx
 create mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
 create mode 100644 superset-frontend/src/components/Chart/MenuItemWithTruncation.tsx
 rename superset-frontend/src/{dashboard/components/CrossFilterScopingModal/utils/utils.test.ts => components/Tags/Tag.test.tsx} (66%)
 create mode 100644 superset-frontend/src/components/Tags/Tag.tsx
 copy superset-frontend/src/{views/routes.test.tsx => components/Tags/TagsList.stories.tsx} (55%)
 create mode 100644 superset-frontend/src/components/Tags/TagsList.test.tsx
 create mode 100644 superset-frontend/src/components/Tags/TagsList.tsx
 rename superset-frontend/src/{hooks/useComponentDidUpdate/index.ts => components/Tags/index.tsx} (90%)
 create mode 100644 superset-frontend/src/components/Tags/utils.tsx
 create mode 100644 superset-frontend/src/components/TruncatedList/index.tsx
 delete mode 100644 superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingForm/CrossFilterScopingForm.test.tsx
 delete mode 100644 superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingForm/index.tsx
 delete mode 100644 superset-frontend/src/dashboard/components/CrossFilterScopingModal/CrossFilterScopingModal.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
 copy superset-frontend/src/{components/ErrorBoundary/ErrorBoundary.test.tsx => dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.test.tsx} (52%)
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/Vertical.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/VerticalCollapse.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/VerticalCollapse.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/selectors.ts
 copy superset-frontend/src/dashboard/components/{CrossFilterScopingModal/types.ts => nativeFilters/FilterBar/CrossFilters/styles.ts} (80%)
 copy superset-frontend/src/{components/Table/cell-renderers/NullCell/index.tsx => dashboard/components/nativeFilters/FilterBar/useFilterOutlined.ts} (58%)
 copy superset-frontend/src/dashboard/{containers/DashboardRoute.tsx => components/nativeFilters/FiltersConfigModal/FiltersConfigForm/constants.ts} (60%)
 rename superset-frontend/src/dashboard/components/{FiltersBadge => nativeFilters}/selectors.ts (68%)
 create mode 100644 superset-frontend/src/dashboard/util/crossFilters.test.ts
 delete mode 100644 superset-frontend/src/dashboard/util/filterboxMigrationHelper.test.ts
 delete mode 100644 superset-frontend/src/dashboard/util/filterboxMigrationHelper.ts
 copy superset-frontend/src/{dashboard/components/CrossFilterScopingModal => explore/components/controls/FilterControl}/types.ts (85%)
 create mode 100644 superset-frontend/src/explore/components/controls/FilterControl/utils/translateToSQL.ts
 create mode 100644 superset-frontend/src/features/datasets/metadataBar/DatasetMetadataBar.stories.tsx
 create mode 100644 superset-frontend/src/features/datasets/metadataBar/useDatasetMetadataBar.test.tsx
 create mode 100644 superset-frontend/src/features/datasets/metadataBar/useDatasetMetadataBar.tsx
 create mode 100644 superset-frontend/src/hooks/apiResources/schemas.test.ts
 copy superset-frontend/src/hooks/apiResources/{tables.ts => schemas.ts} (55%)
 rename superset-frontend/src/{views/CRUD/alert/AlertList.test.jsx => pages/AlertReportList/AlertReportList.test.jsx} (98%)
 rename superset-frontend/src/{views/CRUD/alert/AlertList.tsx => pages/AlertReportList/index.tsx} (99%)
 create mode 100644 superset-frontend/src/pages/AllEntities/index.tsx
 rename superset-frontend/src/{views/CRUD/annotationlayers/AnnotationLayersList.test.jsx => pages/AnnotationLayerList/AnnotationLayerList.test.jsx} (98%)
 rename superset-frontend/src/{views/CRUD/annotationlayers/AnnotationLayersList.tsx => pages/AnnotationLayerList/index.tsx} (98%)
 rename superset-frontend/src/{views/CRUD/annotation => pages/AnnotationList}/AnnotationList.test.jsx (98%)
 rename superset-frontend/src/{views/CRUD/annotation/AnnotationList.tsx => pages/AnnotationList/index.tsx} (98%)
 rename superset-frontend/src/{explore/ExplorePage.tsx => pages/Chart/index.tsx} (89%)
 rename superset-frontend/src/{views/CRUD/csstemplates/CssTemplatesList.test.jsx => pages/CssTemplateList/CssTemplateList.test.jsx} (98%)
 rename superset-frontend/src/{views/CRUD/csstemplates/CssTemplatesList.tsx => pages/CssTemplateList/index.tsx} (98%)
 rename superset-frontend/src/{dashboard/containers/DashboardRoute.tsx => pages/Dashboard/index.tsx} (93%)
 rename superset-frontend/src/{views/CRUD/dashboard => pages/DashboardList}/DashboardList.test.jsx (99%)
 rename superset-frontend/src/{views/CRUD/dashboard/DashboardList.tsx => pages/DashboardList/index.tsx} (85%)
 rename superset-frontend/src/{views/CRUD/data/database => pages/DatabaseList}/DatabaseList.test.jsx (93%)
 rename superset-frontend/src/{views/CRUD/data/database/DatabaseList.tsx => pages/DatabaseList/index.tsx} (98%)
 rename superset-frontend/src/{views/CRUD/data/dataset/AddDataset/AddDataset.test.tsx => pages/DatasetCreation/DatasetCreation.test.tsx} (96%)
 rename superset-frontend/src/{views/CRUD/data/dataset/AddDataset => pages/DatasetCreation}/index.tsx (86%)
 rename superset-frontend/src/{views/CRUD/data/dataset/DatasetList.test.jsx => pages/DatasetList/DatasetList.test.tsx} (97%)
 rename superset-frontend/src/{views/CRUD/data/dataset/DatasetList.tsx => pages/DatasetList/index.tsx} (95%)
 rename superset-frontend/src/{views/CRUD/alert/ExecutionLog.test.jsx => pages/ExecutionLogList/ExecutionLogList.test.jsx} (98%)
 rename superset-frontend/src/{views/CRUD/alert/ExecutionLog.tsx => pages/ExecutionLogList/index.tsx} (98%)
 rename superset-frontend/src/{views/CRUD/welcome/Welcome.test.tsx => pages/Home/Home.test.tsx} (98%)
 rename superset-frontend/src/{views/CRUD/welcome/Welcome.tsx => pages/Home/index.tsx} (72%)
 rename superset-frontend/src/{views/CRUD/data/query/QueryList.test.tsx => pages/QueryHistoryList/QueryHistoryList.test.tsx} (98%)
 rename superset-frontend/src/{views/CRUD/data/query/QueryList.tsx => pages/QueryHistoryList/index.tsx} (99%)
 rename superset-frontend/src/{views/CRUD/data/savedquery => pages/SavedQueryList}/SavedQueryList.test.jsx (99%)
 rename superset-frontend/src/{views/CRUD/data/savedquery/SavedQueryList.tsx => pages/SavedQueryList/index.tsx} (91%)
 create mode 100644 superset-frontend/src/pages/Tags/index.tsx
 create mode 100644 superset-frontend/src/tags.ts
 copy superset-frontend/src/{dashboard/components/CrossFilterScopingModal/types.ts => types/TagType.ts} (72%)
 copy superset-frontend/src/{dashboard/components/CrossFilterScopingModal/types.ts => types/TaggedObject.ts} (84%)
 rename superset-frontend/src/{dashboard/components/CrossFilterScopingModal/types.ts => utils/cachedSupersetGet.ts} (74%)
 create mode 100644 superset-frontend/src/views/CRUD/allentities/AllEntitiesTable.tsx
 rename superset-frontend/src/{pages/ChartList => views/CRUD/chart}/ChartCard.tsx (97%)
 create mode 100644 superset-frontend/src/views/CRUD/data/database/DatabaseModal/SSHTunnelSwitch.tsx
 create mode 100644 superset-frontend/src/views/CRUD/data/dataset/AddDataset/EditDataset/UsageTab/UsageTab.test.tsx
 create mode 100644 superset-frontend/src/views/CRUD/data/dataset/AddDataset/EditDataset/UsageTab/index.tsx
 create mode 100644 superset-frontend/src/views/CRUD/tags/TagCard.tsx
 rename superset/common/{not_authrized_object.py => not_authorized_object.py} (100%)
 delete mode 100644 superset/db_engines/hive.py
 copy superset/migrations/versions/{2021-07-27_08-25_31b2a1039d4a_drop_tables_constraint.py => 2023-02-28_14-46_c0a3ea245b61_remove_show_native_filters.py} (50%)
 create mode 100644 superset/migrations/versions/2023-03-05_10-06_d0ac08bb5b83_invert_horizontal_bar_chart_order.py
 create mode 100644 superset/migrations/versions/2023-03-17_13-24_b5ea9d343307_bar_chart_stack_options.py
 copy superset/migrations/versions/{2018-07-20_16-08_937d04c16b64_update_datasources.py => 2023-03-29_20-30_07f9a902af1b_drop_postgres_enum_constrains_for_tags.py} (55%)
 copy superset/{db_engines => sqllab/commands}/__init__.py (100%)
 create mode 100644 superset/sqllab/commands/estimate.py
 create mode 100644 superset/sqllab/commands/export.py
 create mode 100644 superset/tags/api.py
 copy superset/{advanced_data_type => tags/commands}/__init__.py (100%)
 create mode 100644 superset/tags/commands/create.py
 create mode 100644 superset/tags/commands/delete.py
 create mode 100644 superset/tags/commands/exceptions.py
 copy superset/{db_engines/__init__.py => tags/commands/utils.py} (68%)
 create mode 100644 superset/tags/dao.py
 rename superset/{db_engines/__init__.py => tags/exceptions.py} (68%)
 create mode 100644 superset/tags/schemas.py
 copy superset/{views/chart => utils}/filters.py (52%)
 delete mode 100644 superset/utils/memoized.py
 create mode 100644 superset/views/all_entities.py
 create mode 100644 tests/integration_tests/fixtures/users.py
 copy {superset/advanced_data_type => tests/integration_tests/tags}/__init__.py (100%)
 create mode 100644 tests/integration_tests/tags/api_tests.py
 create mode 100644 tests/integration_tests/tags/commands_tests.py
 create mode 100644 tests/integration_tests/tags/dao_tests.py
 delete mode 100644 tests/integration_tests/utils/decorators_tests.py
 create mode 100644 tests/unit_tests/dashboards/dao_tests.py
 delete mode 100644 tests/unit_tests/memoized_tests.py
 copy {superset/advanced_data_type => tests/unit_tests/queries}/__init__.py (100%)
 create mode 100644 tests/unit_tests/queries/query_object_test.py
 copy {superset/advanced_data_type => tests/unit_tests/security}/__init__.py (100%)
 create mode 100644 tests/unit_tests/security/manager_test.py
 create mode 100644 tests/unit_tests/utils/test_decorators.py
 delete mode 100644 yarn.lock


[superset] 01/01: Merge

Posted by di...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

diegopucci pushed a commit to branch feat/sqllab-natural-language
in repository https://gitbox.apache.org/repos/asf/superset.git

commit eef940d186edf45364a917e97513808fbf71b47b
Merge: 184c6277f6 95db6c04aa
Author: geido <di...@gmail.com>
AuthorDate: Tue Apr 4 12:55:04 2023 +0200

    Merge

 .github/CODEOWNERS                                 |   10 +-
 .github/workflows/superset-python-unittest.yml     |    2 +
 .github/workflows/welcome-new-users.yml            |    3 +-
 .pre-commit-config.yaml                            |    9 +-
 Dockerfile                                         |   16 +-
 RELEASING/Dockerfile.from_local_tarball            |    3 +-
 RELEASING/changelog.py                             |    2 +-
 RELEASING/from_tarball_entrypoint.sh               |    1 +
 RESOURCES/FEATURE_FLAGS.md                         |    2 +-
 RESOURCES/INTHEWILD.md                             |    1 +
 UPDATING.md                                        |   15 +
 docker/.env-non-dev                                |    1 +
 docs/docs/contributing/local-backend.mdx           |    2 +
 .../creating-your-first-dashboard.mdx              |    2 +-
 .../docs/databases/installing-database-drivers.mdx |    4 +-
 docs/docs/databases/teradata.mdx                   |    2 +-
 docs/docs/installation/alerts-reports.mdx          |   16 +-
 docs/docs/installation/cache.mdx                   |    3 +
 docs/docs/installation/configuring-superset.mdx    |   12 +-
 .../installing-superset-from-scratch.mdx           |   10 +-
 docs/docs/installation/setup-ssh-tunneling.mdx     |   21 +
 docs/docs/installation/sql-templating.mdx          |   47 +-
 docs/docs/miscellaneous/chart-params.mdx           |    2 +-
 docs/docs/security.mdx                             |   18 +-
 docs/docusaurus.config.js                          |   13 +-
 docs/package.json                                  |   16 +-
 docs/static/resources/openapi.json                 |  352 +-
 docs/yarn.lock                                     | 4429 ++++-----
 helm/superset/Chart.yaml                           |    2 +-
 helm/superset/README.md                            |   11 +-
 helm/superset/templates/deployment-worker.yaml     |    3 +
 helm/superset/templates/deployment.yaml            |    3 +
 helm/superset/templates/ingress.yaml               |    3 +
 helm/superset/templates/init-job.yaml              |   26 +
 helm/superset/templates/service.yaml               |    9 +
 helm/superset/values.yaml                          |   24 +-
 pyproject.toml                                     |   19 -
 requirements/base.txt                              |    4 +-
 requirements/integration.txt                       |   22 +-
 setup.py                                           |    6 +-
 superset-embedded-sdk/package-lock.json            |  100 +-
 superset-embedded-sdk/package.json                 |    2 +-
 superset-embedded-sdk/src/index.ts                 |    2 +
 superset-frontend/.storybook/main.js               |    5 +-
 .../cypress/integration/chart_list/list.test.ts    |    8 +-
 .../cypress/integration/dashboard/load.test.ts     |    5 +-
 .../integration/dashboard/nativeFilters.test.ts    |   27 +-
 .../cypress/integration/dashboard/utils.ts         |    9 +-
 superset-frontend/cypress-base/package-lock.json   | 6610 +++++++++----
 superset-frontend/cypress-base/package.json        |    2 +-
 superset-frontend/jest.config.js                   |    3 +
 superset-frontend/package-lock.json                | 2125 ++++-
 superset-frontend/package.json                     |   14 +-
 .../generators/plugin-chart/templates/README.erb   |   25 +
 .../generators/plugin-chart/templates/package.erb  |    2 +-
 .../plugin-chart/templates/src/MyChart.erb         |   11 +-
 .../templates/src/plugin/controlPanel.erb          |    6 +-
 .../plugin-chart/templates/src/types.erb           |    6 +-
 .../templates/test/plugin/transformProps.test.erb  |    3 +-
 .../superset-ui-chart-controls/package.json        |    2 +-
 .../src/components/ColumnOption.tsx                |    8 +-
 .../src/components/MetricOption.tsx                |    8 +-
 .../src/operators/pivotOperator.ts                 |    6 +-
 .../src/operators/sortOperator.ts                  |    4 +-
 .../src/operators/utils/extractExtraMetrics.ts}    |   39 +-
 .../src/operators/utils/index.ts                   |    1 +
 .../src/shared-controls/customControls.tsx         |   81 +-
 .../src/shared-controls/mixins.tsx                 |    4 +-
 .../src/utils/D3Formatting.ts                      |    7 +
 .../test/operators/pivotOperator.test.ts           |   30 +
 .../test/operators/sortOperator.test.ts            |   25 +
 .../operators/utils/extractExtraMetrics.test.ts    |  136 +
 .../packages/superset-ui-core/package.json         |    2 +
 .../superset-ui-core/src/chart/types/Base.ts       |   16 +-
 .../src/components/SafeMarkdown.tsx                |   23 +-
 .../superset-ui-core/src/hooks}/index.ts           |    5 +
 .../src/hooks/useChangeEffect/index.ts             |    0
 .../hooks/useChangeEffect/useChangeEffect.test.ts  |    0
 .../src/hooks/useChangeEffect/useChangeEffect.ts   |    0
 .../src/hooks/useComponentDidMount/index.ts        |    0
 .../useComponentDidMount.test.ts                   |    0
 .../useComponentDidMount/useComponentDidMount.ts   |    0
 .../src/hooks/useComponentDidUpdate/index.ts       |    0
 .../useComponentDidUpdate.test.ts                  |    0
 .../useComponentDidUpdate/useComponentDidUpdate.ts |    0
 .../src/hooks/useElementOnScreen}/index.ts         |    2 +-
 .../useElementOnScreen/useElementOnScreen.test.ts  |  111 +
 .../useElementOnScreen/useElementOnScreen.ts}      |    0
 .../src/hooks/usePrevious/index.ts                 |    0
 .../src/hooks/usePrevious/usePrevious.test.ts      |    0
 .../src/hooks/usePrevious/usePrevious.ts           |    0
 .../src/hooks/useTruncation/index.ts               |    0
 .../useTruncation/useCSSTextTruncation.test.tsx    |   62 +
 .../hooks/useTruncation/useCSSTextTruncation.ts    |    0
 .../useChildElementTruncation.test.ts              |  102 +
 .../useTruncation/useChildElementTruncation.ts     |    0
 .../packages/superset-ui-core/src/index.ts         |    1 +
 .../src/query/buildQueryContext.ts                 |   17 +-
 .../src/query/extractQueryFields.ts                |    3 +-
 .../packages/superset-ui-core/src/style/index.tsx  |    1 +
 .../superset-ui-core/src/time-format/index.ts      |    2 +
 .../src/time-format/utils/normalizeTimestamp.ts}   |   21 +-
 .../src/ui-overrides/ExtensionsRegistry.ts         |   11 +
 .../superset-ui-core/src/utils/featureFlags.ts     |    3 +-
 .../superset-ui-core/src/utils/getSelectedText.ts} |    3 +-
 .../packages/superset-ui-core/src/utils/index.ts   |    1 +
 .../test/components/SafeMarkdown.test.ts}          |   35 +-
 .../test/query/buildQueryContext.test.ts           |   37 -
 .../time-format/utils/normalizeTimestamp.test.ts   |   43 +
 .../test/utils/getSelectedText.test.ts}            |   22 +-
 .../src/countries.ts                               |    2 +
 .../src/countries/srilanka.geojson                 | 9838 ++++++++++++++++++++
 .../legacy-plugin-chart-heatmap/src/Heatmap.js     |   15 +-
 .../legacy-plugin-chart-world-map/src/WorldMap.js  |  112 +-
 .../legacy-plugin-chart-world-map/src/index.js     |    6 +-
 .../src/transformProps.js                          |   17 +-
 .../src/utilities/Shared_DeckGL.jsx                |    4 +-
 .../src/Pie/controlPanel.ts                        |    8 +-
 .../plugins/legacy-preset-chart-nvd3/src/utils.js  |    2 +-
 .../src/BigNumber/BigNumberViz.tsx                 |    6 +-
 .../plugin-chart-echarts/src/BigNumber/types.ts    |    4 +-
 .../src/BoxPlot/EchartsBoxPlot.tsx                 |   51 +-
 .../src/BoxPlot/controlPanel.ts                    |    5 +-
 .../plugin-chart-echarts/src/BoxPlot/index.ts      |    8 +-
 .../src/Funnel/EchartsFunnel.tsx                   |   51 +-
 .../src/Funnel/controlPanel.tsx                    |    6 +-
 .../plugin-chart-echarts/src/Funnel/index.ts       |    6 +-
 .../src/Gauge/EchartsGauge.tsx                     |   51 +-
 .../plugin-chart-echarts/src/Gauge/index.ts        |    6 +-
 .../src/Graph/EchartsGraph.tsx                     |  110 +-
 .../plugin-chart-echarts/src/Graph/index.ts        |    8 +-
 .../src/Graph/transformProps.ts                    |   24 +-
 .../plugin-chart-echarts/src/Graph/types.ts        |    1 +
 .../src/MixedTimeseries/EchartsMixedTimeseries.tsx |  167 +-
 .../src/MixedTimeseries/index.ts                   |    6 +-
 .../plugin-chart-echarts/src/Pie/EchartsPie.tsx    |   51 +-
 .../plugin-chart-echarts/src/Pie/controlPanel.tsx  |    5 +-
 .../plugins/plugin-chart-echarts/src/Pie/index.ts  |    6 +-
 .../src/Radar/EchartsRadar.tsx                     |   52 +-
 .../src/Radar/controlPanel.tsx                     |    5 +-
 .../plugin-chart-echarts/src/Radar/index.ts        |    6 +-
 .../src/Sunburst/EchartsSunburst.tsx               |   99 +-
 .../src/Sunburst/controlPanel.tsx                  |    5 +-
 .../plugin-chart-echarts/src/Sunburst/index.ts     |    8 +-
 .../src/Timeseries/Area/controlPanel.tsx           |   16 +-
 .../src/Timeseries/Area/index.ts                   |    6 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |  154 +-
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |   15 +-
 .../src/Timeseries/Regular/Bar/index.ts            |    6 +-
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |   13 +-
 .../src/Timeseries/Regular/Line/index.ts           |    6 +-
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |   13 +-
 .../src/Timeseries/Regular/Scatter/index.ts        |    6 +-
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |   13 +-
 .../src/Timeseries/Regular/SmoothLine/index.ts     |    6 +-
 .../src/Timeseries/Step/controlPanel.tsx           |   10 +-
 .../src/Timeseries/Step/index.ts                   |    6 +-
 .../src/Timeseries/buildQuery.ts                   |   35 +-
 .../src/Timeseries/constants.ts                    |    9 +
 .../plugin-chart-echarts/src/Timeseries/index.ts   |    6 +-
 .../src/Timeseries/transformProps.ts               |  109 +-
 .../src/Timeseries/transformers.ts                 |   94 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    1 +
 .../src/Treemap/EchartsTreemap.tsx                 |  119 +-
 .../src/Treemap/controlPanel.tsx                   |    5 +-
 .../plugin-chart-echarts/src/Treemap/index.ts      |    6 +-
 .../src/components/ExtraControls.tsx               |    4 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |   25 +-
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   54 +-
 .../plugins/plugin-chart-echarts/src/types.ts      |   28 +-
 .../src/utils/eventHandlers.ts                     |  107 +-
 .../plugin-chart-echarts/src/utils/series.ts       |  115 +-
 .../test/Graph/transformProps.test.ts              |    6 +
 .../test/Timeseries/transformProps.test.ts         |  175 +
 .../plugin-chart-echarts/test/utils/series.test.ts |   52 +-
 .../plugins/plugin-chart-pivot-table/package.json  |    2 +-
 .../src/PivotTableChart.tsx                        |  103 +-
 .../src/plugin/controlPanel.tsx                    |    4 +-
 .../plugin-chart-pivot-table/src/plugin/index.ts   |   10 +-
 .../src/react-pivottable/Styles.js                 |    1 +
 .../src/react-pivottable/TableRenderers.jsx        |   12 +
 .../plugins/plugin-chart-pivot-table/src/types.ts  |    4 +-
 .../plugins/plugin-chart-table/package.json        |    1 +
 .../plugin-chart-table/src/DataTable/DataTable.tsx |   25 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |  229 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   32 +-
 .../plugins/plugin-chart-table/src/index.ts        |    8 +-
 .../plugin-chart-table/src/transformProps.ts       |    3 +-
 .../plugins/plugin-chart-table/src/types.ts        |    4 +-
 .../src/utils/DateWithFormatter.ts                 |   21 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |    1 +
 .../plugins/plugin-chart-table/test/testData.ts    |   14 +
 .../src/legacyPlugin/transformProps.ts             |    7 +-
 .../src/legacyPlugin/types.ts                      |    4 +-
 .../plugins/plugin-chart-word-cloud/src/types.ts   |    4 +-
 superset-frontend/spec/fixtures/mockCharts.ts      |   55 +
 .../spec/fixtures/mockDashboardState.js            |    2 +-
 superset-frontend/spec/helpers/shim.tsx            |   30 +
 superset-frontend/src/SqlLab/App.jsx               |   11 +-
 superset-frontend/src/SqlLab/actions/sqlLab.js     |   70 +-
 .../src/SqlLab/actions/sqlLab.test.js              |   53 +-
 .../SqlLab/components/AceEditorWrapper/index.tsx   |   35 +-
 .../src/SqlLab/components/App/App.test.jsx         |   49 +-
 .../src/SqlLab/components/App/index.jsx            |   17 +-
 .../components/ExploreCtasResultsButton/index.tsx  |    6 +-
 .../QueryLimitSelect/QueryLimitSelect.test.tsx     |    3 -
 .../src/SqlLab/components/QueryTable/index.tsx     |   15 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |    7 +-
 .../components/RunQueryActionButton/index.tsx      |    5 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |    1 -
 .../SqlLab/components/ShareSqlLabQuery/index.tsx   |    4 +-
 .../src/SqlLab/components/SouthPane/index.tsx      |    4 +-
 .../src/SqlLab/components/SqlEditor/index.jsx      |  122 +-
 .../SqlEditorLeftBar/SqlEditorLeftBar.test.jsx     |   82 +-
 .../SqlLab/components/SqlEditorLeftBar/index.tsx   |   54 +-
 .../SqlLab/components/TabbedSqlEditors/index.jsx   |    4 +-
 .../src/SqlLab/components/TableElement/index.tsx   |    3 +-
 superset-frontend/src/SqlLab/constants.ts          |    1 +
 superset-frontend/src/SqlLab/fixtures.ts           |    7 -
 .../hooks/useQueryEditor/useQueryEditor.test.ts    |    9 +-
 .../src/SqlLab/reducers/getInitialState.js         |   30 +-
 .../src/SqlLab/reducers/getInitialState.test.ts    |   73 +-
 superset-frontend/src/SqlLab/reducers/sqlLab.js    |   14 +-
 superset-frontend/src/SqlLab/types.ts              |    1 -
 .../src/SqlLab/utils/emptyQueryResults.test.js     |   43 +-
 .../SqlLab/utils/reduxStateToLocalStorageHelper.js |   21 +-
 .../src/assets/images/icons/filter.svg             |    5 +-
 .../AlteredSliceTag/AlteredSliceTag.test.jsx       |    2 -
 superset-frontend/src/components/Chart/Chart.jsx   |   36 +-
 .../src/components/Chart/ChartContextMenu.tsx      |  151 +-
 .../src/components/Chart/ChartRenderer.jsx         |    3 +-
 .../DisabledMenuItemTooltip.tsx}                   |   45 +-
 .../Chart/DrillBy/DrillByMenuItems.test.tsx        |  190 +
 .../components/Chart/DrillBy/DrillByMenuItems.tsx  |  243 +
 .../components/Chart/DrillBy/DrillByModal.test.tsx |   88 +
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |  108 +
 .../Chart/DrillDetail/DrillDetailMenuItems.tsx     |   76 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |  107 +-
 .../components/Chart/MenuItemWithTruncation.tsx    |   58 +
 .../src/components/Chart/chartAction.js            |    4 +-
 .../src/components/Chart/chartReducer.ts           |    4 +-
 .../src/components/Chart/utils.test.ts             |    3 +
 superset-frontend/src/components/Chart/utils.ts    |   38 +-
 .../DatabaseSelector/DatabaseSelector.test.tsx     |  283 +-
 .../src/components/DatabaseSelector/index.tsx      |   89 +-
 .../src/components/Datasource/DatasourceEditor.jsx |   12 +-
 .../Datasource/DatasourceEditor.test.jsx           |   13 -
 .../src/components/Datasource/DatasourceModal.tsx  |    8 +-
 .../src/components/DropdownContainer/index.tsx     |    3 +-
 .../src/components/DynamicPlugins/index.tsx        |    3 +-
 .../src/components/EmptyState/index.tsx            |   24 +-
 .../ErrorBoundary/ErrorBoundary.test.tsx           |    2 -
 .../src/components/FaveStar/FaveStar.test.tsx      |    4 +-
 .../src/components/FaveStar/index.tsx              |   11 +-
 .../src/components/FlashProvider/index.tsx         |    2 +-
 .../components/ImportModal/ImportModal.test.tsx    |   47 +
 .../src/components/ImportModal/index.tsx           |  188 +-
 .../src/components/ListView/CrossLinks.tsx         |    3 +-
 .../src/components/ListView/ListView.test.jsx      |    6 -
 superset-frontend/src/components/ListView/types.ts |    3 +
 .../src/components/MessageToasts/Toast.test.jsx    |    2 -
 .../PageHeaderWithActions.test.tsx                 |    2 -
 .../HeaderReportDropdown/index.test.tsx            |    6 -
 .../ReportModal/HeaderReportDropdown/index.tsx     |    2 +-
 .../components/ReportModal/ReportModal.test.tsx    |    6 -
 .../src/components/Select/AsyncSelect.tsx          |    4 +-
 .../src/components/Select/CustomTag.tsx            |    3 +-
 .../src/components/Select/Select.test.tsx          |   59 +-
 superset-frontend/src/components/Select/Select.tsx |  100 +-
 superset-frontend/src/components/Select/types.ts   |    5 +
 superset-frontend/src/components/Select/utils.tsx  |   18 +
 .../src/components/Table/Table.stories.tsx         |    6 +-
 .../src/components/Table/VirtualTable.tsx          |   25 +-
 .../Table/cell-renderers/NullCell/index.tsx        |    8 +-
 superset-frontend/src/components/Table/index.tsx   |  126 +-
 .../TableSelector/TableSelector.test.tsx           |  103 +-
 .../src/components/TableSelector/index.tsx         |   42 +-
 .../src/components/TableView/TableView.test.tsx    |    2 -
 .../utils.test.ts => components/Tags/Tag.test.tsx} |   27 +-
 superset-frontend/src/components/Tags/Tag.tsx      |   86 +
 .../Tags/TagsList.stories.tsx}                     |   54 +-
 .../src/components/Tags/TagsList.test.tsx          |   78 +
 superset-frontend/src/components/Tags/TagsList.tsx |  112 +
 .../index.ts => components/Tags/index.tsx}         |    3 +-
 superset-frontend/src/components/Tags/utils.tsx    |   93 +
 .../src/components/TruncatedList/index.tsx         |  159 +
 superset-frontend/src/constants.ts                 |    8 -
 .../src/dashboard/actions/dashboardState.js        |   50 +-
 superset-frontend/src/dashboard/actions/hydrate.js |  132 +-
 .../src/dashboard/actions/sliceEntities.js         |   43 +-
 .../src/dashboard/actions/sliceEntities.test.js    |    4 +-
 .../CrossFilterScopingForm.test.tsx                |   60 -
 .../CrossFilterScopingForm/index.tsx               |   57 -
 .../CrossFilterScopingModal.tsx                    |  112 -
 .../DashboardBuilder/DashboardBuilder.test.tsx     |    7 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |   40 +-
 .../DashboardBuilder/DashboardContainer.tsx        |    2 +-
 .../dashboard/components/DashboardBuilder/state.ts |   19 +-
 .../DetailsPanel/DetailsPanel.test.tsx             |   82 +-
 .../components/FiltersBadge/DetailsPanel/index.tsx |  213 +-
 .../FilterIndicator/FilterIndicator.test.tsx       |    2 +-
 .../FiltersBadge/FilterIndicator/index.tsx         |   51 +-
 .../components/FiltersBadge/FiltersBadge.test.tsx  |   79 +-
 .../dashboard/components/FiltersBadge/Styles.tsx   |  147 +-
 .../dashboard/components/FiltersBadge/index.tsx    |  114 +-
 .../HeaderActionsDropdown.test.tsx                 |   70 +-
 .../Header/HeaderActionsDropdown/index.jsx         |   17 +-
 .../src/dashboard/components/Header/index.jsx      |   37 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |   14 +-
 .../dashboard/components/PropertiesModal/index.tsx |  127 +-
 .../components/RefreshIntervalModal.test.tsx       |    1 -
 .../src/dashboard/components/SliceAdder.jsx        |   48 +-
 .../src/dashboard/components/SliceHeader/index.tsx |   40 +-
 .../SliceHeaderControls.test.tsx                   |    2 +-
 .../components/SliceHeaderControls/index.tsx       |   41 +-
 .../dashboard/components/gridComponents/Chart.jsx  |   24 +-
 .../components/gridComponents/Markdown.jsx         |    1 +
 .../dashboard/components/gridComponents/Tabs.jsx   |   13 +-
 .../FilterBar/CrossFilters/CrossFilter.test.tsx    |   82 +
 .../FilterBar/CrossFilters/CrossFilter.tsx         |  114 +
 .../FilterBar/CrossFilters/CrossFilterTag.test.tsx |   84 +
 .../FilterBar/CrossFilters/CrossFilterTag.tsx      |   99 +
 .../CrossFilters/CrossFilterTitle.test.tsx}        |   54 +-
 .../FilterBar/CrossFilters/CrossFilterTitle.tsx    |   95 +
 .../FilterBar/CrossFilters/Vertical.tsx            |   49 +
 .../CrossFilters/VerticalCollapse.test.tsx         |  107 +
 .../FilterBar/CrossFilters/VerticalCollapse.tsx    |  102 +
 .../FilterBar/CrossFilters/selectors.ts            |   53 +
 .../FilterBar/CrossFilters/styles.ts}              |   12 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |    3 +-
 .../FilterBarSettings/FilterBarSettings.test.tsx   |    1 -
 .../FilterBar/FilterBarSettings/index.tsx          |    2 +-
 .../FilterBar/FilterControls/FilterControl.tsx     |    9 +-
 .../FilterBar/FilterControls/FilterControls.tsx    |  143 +-
 .../FilterBar/FilterControls/FilterDivider.tsx     |    8 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   58 +-
 .../FilterBar/FiltersDropdownContent/index.tsx     |   30 +-
 .../FiltersOutOfScopeCollapsible/index.tsx         |   13 +-
 .../nativeFilters/FilterBar/Horizontal.tsx         |   40 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |  193 +-
 .../components/nativeFilters/FilterBar/index.tsx   |   70 +-
 .../components/nativeFilters/FilterBar/state.ts    |   29 +-
 .../components/nativeFilters/FilterBar/types.ts    |    9 +-
 .../FilterBar/useFilterControlFactory.tsx          |    9 +-
 .../nativeFilters/FilterBar/useFilterOutlined.ts}  |   31 +-
 .../components/nativeFilters/FilterBar/utils.ts    |   18 +
 .../nativeFilters/FilterCard/DependenciesRow.tsx   |    7 +-
 .../nativeFilters/FilterCard/FilterCard.test.tsx   |    6 +-
 .../nativeFilters/FilterCard/NameRow.tsx           |   21 +-
 .../nativeFilters/FilterCard/ScopeRow.tsx          |    3 +-
 .../FiltersConfigModal/FilterConfigurePane.tsx     |    3 +-
 .../FiltersConfigForm/ColumnSelect.test.tsx        |    6 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |   28 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |   12 +-
 .../FiltersConfigForm/DefaultValue.tsx             |   13 +-
 .../FiltersConfigForm/DependencyList.tsx           |   15 +-
 .../FilterScope/FilterScope.test.tsx               |    2 +-
 .../FiltersConfigForm/FilterScope/FilterScope.tsx  |   27 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  197 +-
 .../FiltersConfigForm/constants.ts}                |   26 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |   14 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |   17 +-
 .../nativeFilters/FiltersConfigModal/state.ts      |    3 +-
 .../{FiltersBadge => nativeFilters}/selectors.ts   |  202 +-
 .../src/dashboard/containers/Chart.jsx             |    1 -
 .../src/dashboard/containers/DashboardHeader.jsx   |    1 -
 .../src/dashboard/containers/DashboardPage.tsx     |  139 +-
 .../src/dashboard/containers/SliceAdder.jsx        |    1 -
 superset-frontend/src/dashboard/styles.ts          |    7 +
 superset-frontend/src/dashboard/types.ts           |    1 -
 .../src/dashboard/util/crossFilters.test.ts        |  207 +
 .../src/dashboard/util/crossFilters.ts             |   64 +-
 .../util/filterboxMigrationHelper.test.ts          |  142 -
 .../src/dashboard/util/filterboxMigrationHelper.ts |  423 -
 .../src/dashboard/util/getSliceHeaderTooltip.tsx   |    2 +-
 .../dashboard/util/updateComponentParentsList.js   |   15 +-
 superset-frontend/src/dataMask/actions.ts          |    9 +-
 .../src/explore/actions/exploreActions.ts          |   21 +-
 .../src/explore/actions/hydrateExplore.ts          |   20 +
 .../src/explore/components/Control.tsx             |    8 +-
 .../src/explore/components/ControlHeader.tsx       |   12 +-
 .../components/ControlPanelsContainer.test.tsx     |   39 +
 .../explore/components/ControlPanelsContainer.tsx  |   54 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |    4 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    2 +-
 .../explore/components/DatasourcePanel/index.tsx   |    7 +-
 .../src/explore/components/ExploreChartPanel.jsx   |    7 +-
 .../ExploreViewContainer.test.tsx                  |    4 +-
 .../components/ExploreViewContainer/index.jsx      |   14 +-
 .../explore/components/PropertiesModal/index.tsx   |  130 +-
 .../src/explore/components/SaveModal.tsx           |   73 +-
 .../AnnotationLayerControl/AnnotationLayer.jsx     |   66 +-
 .../AnnotationLayer.test.tsx                       |    8 +-
 .../ConditionalFormattingControl.tsx               |   30 +-
 .../controls/ConditionalFormattingControl/types.ts |    1 +
 .../DatasourceControl/DatasourceControl.test.tsx   |   19 -
 .../controls/DateFilterControl/DateFilterLabel.tsx |    2 +-
 .../DndFilterSelect.test.tsx                       |    5 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |   41 +-
 .../DndMetricSelect.test.tsx                       |    8 -
 .../DndColumnSelectControl/DndMetricSelect.tsx     |    3 +-
 .../FilterControl/AdhocFilter/AdhocFilter.test.js  |    6 +-
 .../controls/FilterControl/AdhocFilter/index.js    |   51 +-
 .../AdhocFilterControl/AdhocFilterControl.test.jsx |    6 +-
 .../FilterControl/AdhocFilterControl/index.jsx     |   34 +-
 .../AdhocFilterEditPopover.test.jsx                |    6 +-
 .../FilterControl/AdhocFilterEditPopover/index.jsx |    5 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |    6 +-
 .../index.tsx                                      |   17 +-
 .../AdhocFilterEditPopoverSqlTabContent.test.jsx   |    6 +-
 .../AdhocFilterEditPopoverSqlTabContent/index.jsx  |    6 +-
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |   14 +-
 .../AdhocFilterPopoverTrigger.test.tsx             |    6 +-
 .../controls/FilterControl/adhocFilterType.js      |    2 +-
 .../components/controls/FilterControl}/types.ts    |   12 +-
 .../controls/FilterControl/utils/translateToSQL.ts |   76 +
 .../utils/useGetTimeRangeLabel.test.ts             |    3 +-
 .../FilterControl/utils/useGetTimeRangeLabel.tsx   |    3 +-
 .../controls/MetricControl/AdhocMetric.js          |    4 -
 .../controls/MetricControl/AdhocMetric.test.js     |    6 -
 .../AdhocMetricEditPopover.test.tsx                |   22 +-
 .../MetricControl/AdhocMetricEditPopover/index.jsx |   40 +-
 .../MetricControl/AdhocMetricPopoverTrigger.tsx    |    6 +
 .../MetricControl/MetricDefinitionValue.jsx        |    2 +-
 .../controls/MetricControl/MetricsControl.jsx      |    9 +-
 .../controls/MetricControl/MetricsControl.test.jsx |    1 -
 .../SelectAsyncControl/SelectAsyncControl.test.tsx |   16 +-
 .../controls/VizTypeControl/FastVizSwitcher.tsx    |   11 +-
 .../components/controls/VizTypeControl/index.tsx   |   24 +-
 .../useExploreAdditionalActionsMenu/index.jsx      |    4 +-
 superset-frontend/src/explore/constants.ts         |   10 -
 .../getFormDataFromDashboardContext.test.ts        |   37 +
 .../getFormDataWithDashboardContext.ts             |   55 +-
 superset-frontend/src/featureFlags.ts              |    5 +-
 .../metadataBar/DatasetMetadataBar.stories.tsx     |   89 +
 .../metadataBar/useDatasetMetadataBar.test.tsx     |   93 +
 .../datasets/metadataBar/useDatasetMetadataBar.tsx |  107 +
 .../components/Select/SelectFilterPlugin.tsx       |   85 +-
 superset-frontend/src/filters/utils.ts             |    8 +-
 superset-frontend/src/hooks/apiResources/index.ts  |    1 +
 .../src/hooks/apiResources/schemas.test.ts         |  138 +
 .../hooks/apiResources/{tables.ts => schemas.ts}   |   72 +-
 .../src/hooks/apiResources/tables.test.ts          |  186 +-
 superset-frontend/src/hooks/apiResources/tables.ts |   17 +-
 superset-frontend/src/logger/LogUtils.ts           |    5 +
 superset-frontend/src/middleware/asyncEvent.ts     |    3 +-
 .../src/middleware/loggerMiddleware.js             |   12 +-
 .../AlertReportList/AlertReportList.test.jsx}      |    2 +-
 .../AlertReportList/index.tsx}                     |    4 +-
 superset-frontend/src/pages/AllEntities/index.tsx  |   94 +
 .../AnnotationLayerList.test.jsx}                  |    2 +-
 .../AnnotationLayerList/index.tsx}                 |    4 +-
 .../AnnotationList}/AnnotationList.test.jsx        |    2 +-
 .../AnnotationList/index.tsx}                      |    4 +-
 .../ExplorePage.tsx => pages/Chart/index.tsx}      |   14 +-
 .../src/pages/ChartCreation/index.tsx              |   24 +-
 superset-frontend/src/pages/ChartList/index.tsx    |   95 +-
 .../CssTemplateList/CssTemplateList.test.jsx}      |    2 +-
 .../CssTemplateList/index.tsx}                     |    4 +-
 .../Dashboard/index.tsx}                           |    2 +-
 .../DashboardList}/DashboardList.test.jsx          |    2 +-
 .../DashboardList/index.tsx}                       |  113 +-
 .../DatabaseList}/DatabaseList.test.jsx            |   22 +-
 .../DatabaseList/index.tsx}                        |    9 +-
 .../DatasetCreation/DatasetCreation.test.tsx}      |    2 +-
 .../AddDataset => pages/DatasetCreation}/index.tsx |   18 +-
 .../DatasetList/DatasetList.test.tsx}              |    9 +-
 .../DatasetList/index.tsx}                         |   32 +-
 .../ExecutionLogList/ExecutionLogList.test.jsx}    |    2 +-
 .../ExecutionLogList/index.tsx}                    |    2 +-
 .../Welcome.test.tsx => pages/Home/Home.test.tsx}  |    4 +-
 .../welcome/Welcome.tsx => pages/Home/index.tsx}   |  206 +-
 .../QueryHistoryList/QueryHistoryList.test.tsx}    |    2 +-
 .../QueryHistoryList/index.tsx}                    |    2 +-
 .../SavedQueryList}/SavedQueryList.test.jsx        |    2 +-
 .../SavedQueryList/index.tsx}                      |   47 +-
 superset-frontend/src/pages/Tags/index.tsx         |  331 +
 .../src/profile/components/Favorites.tsx           |   31 +-
 superset-frontend/src/profile/types.ts             |    9 +
 superset-frontend/src/tags.ts                      |  186 +
 superset-frontend/src/types/Chart.ts               |   16 +
 .../types.ts => types/TagType.ts}                  |   16 +-
 .../types.ts => types/TaggedObject.ts}             |   11 +-
 .../types.ts => utils/cachedSupersetGet.ts}        |   13 +-
 superset-frontend/src/utils/hostNamesConfig.js     |    7 +-
 .../src/views/CRUD/alert/AlertReportModal.tsx      |   79 +-
 superset-frontend/src/views/CRUD/alert/types.ts    |    5 +
 .../views/CRUD/allentities/AllEntitiesTable.tsx    |  125 +
 .../ChartList => views/CRUD/chart}/ChartCard.tsx   |    4 +-
 .../src/views/CRUD/dashboard/DashboardCard.tsx     |   55 +-
 .../data/database/DatabaseModal/ExtraOptions.tsx   |    4 +-
 .../data/database/DatabaseModal/SSHTunnelForm.tsx  |  317 +-
 .../database/DatabaseModal/SSHTunnelSwitch.tsx     |   58 +
 .../data/database/DatabaseModal/index.test.tsx     |   72 +-
 .../CRUD/data/database/DatabaseModal/index.tsx     |  445 +-
 .../src/views/CRUD/data/database/types.ts          |    1 +
 .../EditDataset/UsageTab/UsageTab.test.tsx         |  405 +
 .../AddDataset/EditDataset/UsageTab/index.tsx      |  263 +
 .../data/dataset/AddDataset/EditDataset/index.tsx  |    6 +-
 .../AddDataset/LeftPanel/LeftPanel.test.tsx        |   16 +-
 superset-frontend/src/views/CRUD/hooks.ts          |   70 +-
 superset-frontend/src/views/CRUD/tags/TagCard.tsx  |  123 +
 superset-frontend/src/views/CRUD/types.ts          |    7 +
 superset-frontend/src/views/CRUD/utils.test.tsx    |  163 +
 superset-frontend/src/views/CRUD/utils.tsx         |   70 +-
 .../src/views/CRUD/welcome/ActivityTable.tsx       |    2 +-
 .../src/views/CRUD/welcome/ChartTable.tsx          |    4 +-
 .../src/views/CRUD/welcome/DashboardTable.tsx      |   36 +-
 .../src/views/CRUD/welcome/EmptyState.tsx          |   18 +-
 .../src/views/CRUD/welcome/SavedQueries.tsx        |    2 +-
 superset-frontend/src/views/components/Menu.tsx    |    9 +-
 superset-frontend/src/views/routes.test.tsx        |    4 +-
 superset-frontend/src/views/routes.tsx             |  117 +-
 .../src/visualizations/TimeTable/SparklineCell.tsx |  298 +-
 .../src/visualizations/TimeTable/TimeTable.jsx     |   20 +-
 .../src/visualizations/TimeTable/transformProps.ts |    2 +
 superset-websocket/package-lock.json               |  873 +-
 superset-websocket/package.json                    |   20 +-
 superset/charts/api.py                             |  163 +-
 superset/charts/commands/delete.py                 |    7 +-
 superset/charts/commands/export.py                 |    3 +-
 superset/charts/commands/importers/v1/utils.py     |    9 +-
 superset/charts/dao.py                             |   30 +
 superset/charts/filters.py                         |   77 +-
 superset/charts/schemas.py                         |   10 +-
 superset/cli/importexport.py                       |    2 +-
 superset/cli/test.py                               |    1 -
 superset/cli/thumbnails.py                         |    9 +-
 superset/cli/update.py                             |    2 +-
 superset/commands/export/assets.py                 |    1 -
 superset/commands/export/models.py                 |    1 -
 superset/commands/importers/v1/__init__.py         |   20 +-
 superset/commands/importers/v1/assets.py           |   17 +-
 superset/commands/importers/v1/examples.py         |   21 +-
 superset/commands/importers/v1/utils.py            |   60 +
 ...uthrized_object.py => not_authorized_object.py} |    0
 superset/common/query_actions.py                   |   26 +-
 superset/common/query_context.py                   |    5 +-
 superset/common/query_context_factory.py           |   96 +-
 superset/common/query_context_processor.py         |   14 +-
 superset/common/query_object.py                    |   34 +-
 superset/common/utils/query_cache_manager.py       |   19 +-
 superset/config.py                                 |    2 +-
 superset/connectors/sqla/models.py                 |  100 +-
 superset/connectors/sqla/utils.py                  |    7 +-
 superset/connectors/sqla/views.py                  |    2 -
 superset/constants.py                              |   10 +
 superset/dao/base.py                               |    6 +-
 superset/dashboards/api.py                         |  173 +-
 superset/dashboards/commands/export.py             |    1 -
 superset/dashboards/commands/importers/v1/utils.py |   17 +-
 superset/dashboards/commands/update.py             |    2 +-
 superset/dashboards/dao.py                         |   69 +-
 superset/dashboards/filter_sets/commands/base.py   |    2 +-
 superset/dashboards/filters.py                     |   35 +-
 superset/dashboards/permalink/commands/create.py   |    4 +-
 superset/dashboards/schemas.py                     |   27 +-
 superset/databases/api.py                          |  105 +-
 superset/databases/commands/create.py              |   11 +-
 superset/databases/commands/export.py              |   11 +-
 superset/databases/commands/importers/v1/utils.py  |   21 +-
 superset/databases/commands/test_connection.py     |    1 -
 superset/databases/schemas.py                      |   85 +-
 .../databases/ssh_tunnel/commands/exceptions.py    |    8 +
 superset/databases/ssh_tunnel/models.py            |   13 +
 superset/datasets/api.py                           |  112 +
 superset/datasets/commands/delete.py               |    7 +-
 superset/datasets/commands/exceptions.py           |    4 +
 superset/datasets/commands/export.py               |   12 +-
 superset/datasets/commands/importers/v1/utils.py   |   41 +-
 superset/datasets/dao.py                           |  123 +-
 superset/datasets/schemas.py                       |   11 +
 superset/datasource/dao.py                         |    1 -
 superset/db_engine_specs/aurora.py                 |    2 -
 superset/db_engine_specs/base.py                   |  156 +-
 superset/db_engine_specs/clickhouse.py             |  315 +-
 superset/db_engine_specs/crate.py                  |    1 -
 superset/db_engine_specs/databricks.py             |    1 -
 superset/db_engine_specs/dremio.py                 |    1 -
 superset/db_engine_specs/drill.py                  |   29 +-
 superset/db_engine_specs/elasticsearch.py          |    2 -
 superset/db_engine_specs/gsheets.py                |    1 -
 superset/db_engine_specs/hive.py                   |   90 +-
 superset/db_engine_specs/impala.py                 |    2 +-
 superset/db_engine_specs/kylin.py                  |    4 +-
 superset/db_engine_specs/mysql.py                  |   32 +-
 superset/db_engine_specs/netezza.py                |    1 -
 superset/db_engine_specs/postgres.py               |   92 +
 superset/db_engine_specs/presto.py                 |   49 +-
 superset/db_engine_specs/rockset.py                |    1 -
 superset/db_engine_specs/snowflake.py              |   41 +-
 superset/db_engine_specs/trino.py                  |    1 +
 superset/db_engines/hive.py                        |   67 -
 .../configs/charts/Video_Game_Sales_Filter.yaml    |    2 +-
 .../dashboards/COVID_Vaccine_Dashboard.yaml        |    6 +-
 .../dashboards/FCC_New_Coder_Survey_2018.yaml      |    8 +-
 .../configs/dashboards/Sales_Dashboard.yaml        |    6 +-
 .../configs/dashboards/Video_Game_Sales.yaml       |   10 +-
 .../configs/datasets/examples/FCC_2018_Survey.yaml |    6 +-
 superset/examples/multiformat_time_series.py       |    2 +-
 superset/examples/utils.py                         |    6 +-
 superset/examples/world_bank.py                    |    1 -
 superset/exceptions.py                             |    6 +-
 superset/explore/permalink/api.py                  |    2 +-
 superset/extensions/ssh.py                         |   12 +-
 superset/importexport/api.py                       |   47 +-
 superset/initialization/__init__.py                |   43 +-
 superset/jinja_context.py                          |   12 +-
 superset/migrations/alembic.ini                    |    7 +-
 .../versions/2017-10-03_14-37_4736ec66ce19_.py     |    9 +-
 ...8c4473c581_allow_multi_schema_metadata_fetch.py |    1 -
 .../versions/2018-03-20_19-47_f231d82b9b26_.py     |    2 -
 ...-07-20_16-08_937d04c16b64_update_datasources.py |    2 -
 .../2019-10-10_13-52_1495eb914ad3_time_range.py    |    1 -
 ...29_09-24_620241d1153f_update_time_grain_sqla.py |    2 -
 ...27_08-25_31b2a1039d4a_drop_tables_constraint.py |    1 -
 ...3605f370a_fix_schemas_allowed_for_csv_upload.py |    1 -
 ...cbaac5_change_datatype_of_type_in_basecolumn.py |    1 -
 ...e5f1dacd_rename_to_schemas_allowed_for_file_.py |    1 -
 ...14-38_a9422eeaae74_new_dataset_models_take_2.py |   10 +-
 ...-46_c0a3ea245b61_remove_show_native_filters.py} |   52 +-
 ...ac08bb5b83_invert_horizontal_bar_chart_order.py |  126 +
 ...7_13-24_b5ea9d343307_bar_chart_stack_options.py |   95 +
 ...af1b_drop_postgres_enum_constrains_for_tags.py} |   35 +-
 superset/models/core.py                            |   76 +-
 superset/models/dashboard.py                       |   35 +-
 superset/models/datasource_access_request.py       |    2 -
 superset/models/helpers.py                         |   23 +-
 superset/models/slice.py                           |   28 +-
 superset/models/sql_lab.py                         |   12 +-
 superset/queries/api.py                            |    2 +-
 superset/queries/saved_queries/api.py              |   61 +-
 superset/queries/saved_queries/commands/export.py  |    1 -
 superset/queries/saved_queries/filters.py          |   12 +-
 superset/reports/commands/base.py                  |    1 -
 superset/reports/commands/exceptions.py            |    7 +-
 superset/reports/commands/execute.py               |   11 +-
 superset/reports/notifications/email.py            |    8 +-
 superset/reports/notifications/slack.py            |    8 +-
 superset/security/manager.py                       |   80 +-
 superset/sql_parse.py                              |    4 +-
 superset/sqllab/api.py                             |  126 +-
 .../{db_engines => sqllab/commands}/__init__.py    |    0
 superset/sqllab/commands/estimate.py               |  106 +
 superset/sqllab/commands/execute.py                |    6 +-
 superset/sqllab/commands/export.py                 |  134 +
 superset/sqllab/commands/results.py                |    3 +-
 superset/sqllab/exceptions.py                      |   12 +-
 superset/sqllab/query_render.py                    |    3 +-
 superset/sqllab/schemas.py                         |    9 +
 superset/sqllab/sql_json_executer.py               |    3 +-
 superset/tags/api.py                               |  386 +
 superset/{db_engines => tags/commands}/__init__.py |    0
 superset/tags/commands/create.py                   |   65 +
 superset/tags/commands/delete.py                   |  115 +
 superset/tags/commands/exceptions.py               |   65 +
 .../__init__.py => tags/commands/utils.py}         |   13 +
 superset/tags/dao.py                               |  260 +
 .../{db_engines/__init__.py => tags/exceptions.py} |   13 +
 superset/tags/models.py                            |   19 +-
 superset/tags/schemas.py                           |   59 +
 superset/tasks/async_queries.py                    |   12 +-
 superset/tasks/thumbnails.py                       |    5 +-
 .../form_view/database_schemas_selector.html       |    5 +-
 superset/translations/en/LC_MESSAGES/messages.json |    4 +-
 superset/translations/en/LC_MESSAGES/messages.po   |    6 +-
 superset/translations/messages.pot                 |    4 +-
 superset/translations/ru/LC_MESSAGES/messages.json |  212 +-
 superset/translations/ru/LC_MESSAGES/messages.po   | 3204 ++++---
 superset/translations/utils.py                     |    2 +-
 superset/utils/celery.py                           |    1 +
 superset/utils/core.py                             |   15 +-
 .../utils/dashboard_filter_scopes_converter.py     |    2 +-
 superset/utils/date_parser.py                      |    8 +-
 superset/utils/decorators.py                       |   12 +-
 superset/{views/chart => utils}/filters.py         |   33 +-
 superset/utils/machine_auth.py                     |    2 +-
 superset/utils/memoized.py                         |   81 -
 .../utils/pandas_postprocessing/contribution.py    |    2 +-
 superset/utils/pandas_postprocessing/pivot.py      |    9 +-
 superset/utils/pandas_postprocessing/prophet.py    |    2 +-
 superset/utils/screenshots.py                      |   20 +-
 superset/utils/urls.py                             |    4 +-
 superset/utils/webdriver.py                        |   78 +-
 superset/views/all_entities.py                     |   71 +
 superset/views/base.py                             |   43 +-
 superset/views/base_api.py                         |   32 +-
 superset/views/base_schemas.py                     |    2 +-
 superset/views/chart/filters.py                    |    9 +-
 superset/views/chart/mixin.py                      |    1 -
 superset/views/core.py                             |  106 +-
 superset/views/dashboard/mixin.py                  |    1 -
 superset/views/dashboard/views.py                  |    8 -
 superset/views/database/views.py                   |   24 +-
 superset/views/tags.py                             |  248 +-
 superset/viz.py                                    |   60 +-
 tests/common/logger_utils.py                       |    1 -
 tests/integration_tests/base_tests.py              |    8 +
 tests/integration_tests/charts/api_tests.py        |  115 +-
 tests/integration_tests/charts/commands_tests.py   |   64 +-
 tests/integration_tests/charts/data/api_tests.py   |   45 +-
 tests/integration_tests/cli_tests.py               |   23 +-
 tests/integration_tests/conftest.py                |    2 +-
 tests/integration_tests/csv_upload_tests.py        |    7 +-
 tests/integration_tests/dashboards/api_tests.py    |  165 +
 .../integration_tests/dashboards/commands_tests.py |   12 +-
 .../dashboards/permalink/api_tests.py              |    3 +-
 tests/integration_tests/databases/api_tests.py     |  495 +-
 .../integration_tests/databases/commands_tests.py  |  309 +-
 tests/integration_tests/datasets/api_tests.py      |  127 +-
 tests/integration_tests/datasets/commands_tests.py |   68 +-
 .../db_engine_specs/base_engine_spec_tests.py      |    3 +-
 .../db_engine_specs/bigquery_tests.py              |    1 +
 .../db_engine_specs/postgres_tests.py              |   18 +
 tests/integration_tests/event_logger_tests.py      |    6 +-
 .../integration_tests/fixtures/energy_dashboard.py |    1 -
 tests/integration_tests/fixtures/importexport.py   |  107 +
 tests/integration_tests/fixtures/users.py          |   48 +
 tests/integration_tests/queries/api_tests.py       |    6 +-
 .../queries/saved_queries/api_tests.py             |    2 +-
 .../queries/saved_queries/commands_tests.py        |   10 +-
 tests/integration_tests/reports/alert_tests.py     |    2 -
 tests/integration_tests/reports/api_tests.py       |    4 -
 tests/integration_tests/reports/commands_tests.py  |   49 +-
 tests/integration_tests/reports/scheduler_tests.py |    2 -
 .../security/row_level_security_tests.py           |    1 -
 tests/integration_tests/security_tests.py          |   24 +-
 tests/integration_tests/sql_lab/api_tests.py       |  106 +-
 tests/integration_tests/sql_lab/commands_tests.py  |  315 +-
 tests/integration_tests/sqllab_tests.py            |   38 +
 tests/integration_tests/tagging_tests.py           |   12 -
 .../integration_tests/tags}/__init__.py            |    0
 tests/integration_tests/tags/api_tests.py          |  377 +
 tests/integration_tests/tags/commands_tests.py     |  175 +
 tests/integration_tests/tags/dao_tests.py          |  299 +
 tests/integration_tests/thumbnails_tests.py        |    1 -
 tests/integration_tests/utils/decorators_tests.py  |   61 -
 tests/integration_tests/utils_tests.py             |    1 +
 .../charts/commands/importers/v1/import_test.py    |   45 +-
 tests/unit_tests/charts/dao/dao_tests.py           |   35 +-
 .../commands/importers/v1/assets_test.py           |   16 +-
 .../commands/importers/v1/import_test.py           |   46 +-
 tests/unit_tests/dashboards/dao_tests.py           |   79 +
 tests/unit_tests/databases/api_test.py             |    4 +
 .../databases/commands/importers/v1/import_test.py |   44 +-
 .../datasets/commands/importers/v1/import_test.py  |  162 +-
 .../unit_tests/db_engine_specs/test_clickhouse.py  |  162 +-
 tests/unit_tests/db_engine_specs/test_drill.py     |   16 +
 tests/unit_tests/db_engine_specs/test_hive.py      |   15 +
 tests/unit_tests/db_engine_specs/test_mssql.py     |    4 +-
 tests/unit_tests/db_engine_specs/test_mysql.py     |   34 +
 tests/unit_tests/db_engine_specs/test_postgres.py  |   66 +
 tests/unit_tests/db_engine_specs/test_presto.py    |   24 +
 tests/unit_tests/db_engine_specs/test_snowflake.py |   32 +
 tests/unit_tests/explore/utils_test.py             |   19 +-
 tests/unit_tests/fixtures/assets_configs.py        |    2 -
 tests/unit_tests/importexport/api_test.py          |    8 +-
 tests/unit_tests/jinja_context_test.py             |   41 +-
 tests/unit_tests/memoized_tests.py                 |   96 -
 tests/unit_tests/models/core_test.py               |    4 +-
 .../pandas_postprocessing/test_flatten.py          |    8 +-
 .../unit_tests/queries}/__init__.py                |    0
 tests/unit_tests/queries/query_object_test.py      |  345 +
 .../unit_tests/security}/__init__.py               |    0
 tests/unit_tests/security/manager_test.py          |   90 +
 tests/unit_tests/utils/test_decorators.py          |   87 +
 tests/unit_tests/utils/urls_tests.py               |    5 +
 yarn.lock                                          |    2 -
 768 files changed, 42677 insertions(+), 14078 deletions(-)

diff --cc superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
index 412fe48333,d14d532dcd..dc52d9e0b6
--- a/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
+++ b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
@@@ -105,9 -103,23 +105,23 @@@ const AceEditorWrapper = (
      'validationResult',
      'schema',
    ]);
+   const { data: schemaOptions } = useSchemas({ dbId: queryEditor.dbId });
 -  const currentSql = queryEditor.sql ?? '';
 +  const currentSql = initialSql || queryEditor.sql || '';
    const functionNames = queryEditor.functionNames ?? [];
-   const schemas = queryEditor.schemaOptions ?? [];
+ 
+   // Loading schema, table and column names as auto-completable words
+   const { schemas, schemaWords } = useMemo(
+     () => ({
+       schemas: schemaOptions ?? [],
+       schemaWords: (schemaOptions ?? []).map(s => ({
+         name: s.label,
+         value: s.value,
+         score: SCHEMA_AUTOCOMPLETE_SCORE,
+         meta: 'schema',
+       })),
+     }),
+     [schemaOptions],
+   );
    const tables = queryEditor.tableOptions ?? [];
  
    const [sql, setSql] = useState(currentSql);
diff --cc superset/config.py
index 4bfb47d835,123ff902c9..7be19177f9
--- a/superset/config.py
+++ b/superset/config.py
@@@ -1583,9 -1597,3 +1583,9 @@@ elif importlib.util.find_spec("superset
      except Exception:
          logger.exception("Found but failed to import local superset_config")
          raise
 +
 +# NLP
 +
 +OPENAI_API_KEY="INSERT_OPENAI_KEY_HERE"
- PINECONE_API_KEY="INSERT_PINECONE_KEY_HERE"
++PINECONE_API_KEY="INSERT_OPENAI_KEY_HERE"
 +PINECONE_INDEX_NAME="preset"
diff --cc superset/sqllab/api.py
index 3dceaa74be,8801cbc5f9..c138df6228
--- a/superset/sqllab/api.py
+++ b/superset/sqllab/api.py
@@@ -15,12 -15,11 +15,13 @@@
  # specific language governing permissions and limitations
  # under the License.
  import logging
 +import openai
 +import pinecone
  from typing import Any, cast, Dict, Optional
+ from urllib import parse
  
  import simplejson as json
- from flask import request
+ from flask import request, Response
  from flask_appbuilder.api import expose, protect, rison
  from flask_appbuilder.models.sqla.interface import SQLAInterface
  from marshmallow import ValidationError
@@@ -42,8 -43,8 +45,9 @@@ from superset.sqllab.exceptions import 
  from superset.sqllab.execution_context_convertor import ExecutionContextConvertor
  from superset.sqllab.query_render import SqlQueryRenderImpl
  from superset.sqllab.schemas import (
+     EstimateQueryCostSchema,
      ExecutePayloadSchema,
 +    NLPtoSQLPayloadSchema,
      QueryExecutionResponseSchema,
      sql_lab_get_results_schema,
  )
@@@ -69,10 -70,10 +73,11 @@@ class SqlLabRestApi(BaseSupersetApi)
      resource_name = "sqllab"
      allow_browser_login = True
  
-     class_permission_name = "Query"
+     class_permission_name = "SQLLab"
  
+     estimate_model_schema = EstimateQueryCostSchema()
      execute_model_schema = ExecutePayloadSchema()
 +    execute_nlp_to_sql_schema = NLPtoSQLPayloadSchema()
  
      apispec_parameter_schemas = {
          "sql_lab_get_results_schema": sql_lab_get_results_schema,
@@@ -84,105 -85,117 +89,216 @@@
          QueryExecutionResponseSchema,
      )
  
 +    @expose("/nlp/tosql", methods=["POST"])
 +    # @protect()
 +    # @statsd_metrics
 +    @requires_json
 +    def execute_completion(self) -> FlaskResponse:
 +        """Translates natural language to SQL
 +        ---
 +        post:
 +          description: >-
 +            Executes the translation to SQL
 +          requestBody:
 +            description: SQL query and params
 +            required: true
 +            content:
 +              application/json:
 +                schema:
 +                  $ref: '#/components/schemas/NLPtoSQLPayloadSchema'
 +          responses:
 +            200:
 +              description: Natural language to SQL result
 +              content:
 +                application/json:
 +                  schema:
 +                    $ref: '#/components/schemas/NLPtoSQLPayloadSchema'
 +            400:
 +              $ref: '#/components/responses/400'
 +            401:
 +              $ref: '#/components/responses/401'
 +            403:
 +              $ref: '#/components/responses/403'
 +            404:
 +              $ref: '#/components/responses/404'
 +            500:
 +              $ref: '#/components/responses/500'
 +        """
 +        try:
 +            self.execute_nlp_to_sql_schema.load(request.json)
 +        except ValidationError as error:
 +            return self.response_400(message=error.messages)
 +        try:
 +            openai.api_key = app.config["OPENAI_API_KEY"]
 +            req_body = request.json
 +            to_sql = req_body.get("to_sql")
 +            database_id = req_body.get("database_id")
 +            database_backend = req_body.get("database_backend")
 +
 +            pinecone.init(
 +                api_key=app.config["PINECONE_API_KEY"],
 +                environment="us-east1-gcp"
 +            )
 +
 +            # attempts to get required datasources from vectors
 +            pinecone_index_name = app.config["PINECONE_INDEX_NAME"]
 +            pinecone_index = pinecone.Index(pinecone_index_name)
 +            prompt_to_vectors_res = openai.Embedding.create(
 +                input=[to_sql], engine="text-embedding-ada-002"
 +            )
 +            prompt_to_vectors = prompt_to_vectors_res['data'][0]['embedding']
 +            pinecone_query = pinecone_index.query(
 +                prompt_to_vectors,
 +                top_k=2,
 +                filter={
 +                    "database_id": database_id,
 +                },
 +                namespace="datasource",
 +                include_metadata=True
 +            )
 +            pinecone_matches = pinecone_query.get('matches', [])
 +            all_sources = ""
 +            for obj in pinecone_matches:
 +                all_sources += f"{obj['metadata']['original']}\n"
 +
 +            prompt = ""
 +            prompt += f"\n{all_sources}\n"
 +            prompt += f"\nCOMMAND:\n{to_sql}\n"
 +            prompt += "\nINSTRUCTIONS:\n"
 +            prompt += "The 'COMMAND' given above is a natural language command that you must transform into one SQL query.\n"
 +            prompt += "In order to generate the SQL query properly, follow the instructions below:\n"
 +            prompt += "1. Only SELECT statements are allowed\n"
 +            prompt += f"2. Use the SQL dialect {database_backend}\n"
 +            prompt += "3. Use all table definitions above\n"
 +            prompt += "4. Respond solely with the SQL query\n"
 +            prompt += "\n{{ SQL_QUERY }}\n"
 +
 +            chat_completion = openai.ChatCompletion.create(
 +                model="gpt-3.5-turbo",
 +                temperature=0,
 +                messages=[
 +                    {"role": "user", "content": prompt},
 +                ]
 +            )
 +            completion = {**chat_completion.choices[0]}
 +            payload = {
 +                'result': completion['message']['content'],
 +            }
 +            return self.response(200, **payload)
 +        except Exception as e:
 +            print(e);
 +
+     @expose("/estimate/", methods=["POST"])
+     @protect()
+     @statsd_metrics
+     @requires_json
+     @event_logger.log_this_with_context(
+         action=lambda self, *args, **kwargs: f"{self.__class__.__name__}"
+         f".estimate_query_cost",
+         log_to_statsd=False,
+     )
+     def estimate_query_cost(self) -> Response:
+         """Estimates the SQL query execution cost
+         ---
+         post:
+           summary: >-
+             Estimates the SQL query execution cost
+           requestBody:
+             description: SQL query and params
+             required: true
+             content:
+               application/json:
+                 schema:
+                   $ref: '#/components/schemas/EstimateQueryCostSchema'
+           responses:
+             200:
+               description: Query estimation result
+               content:
+                 application/json:
+                   schema:
+                     type: object
+                     properties:
+                       result:
+                         type: object
+             400:
+               $ref: '#/components/responses/400'
+             401:
+               $ref: '#/components/responses/401'
+             403:
+               $ref: '#/components/responses/403'
+             500:
+               $ref: '#/components/responses/500'
+         """
+         try:
+             model = self.estimate_model_schema.load(request.json)
+         except ValidationError as error:
+             return self.response_400(message=error.messages)
+ 
+         command = QueryEstimationCommand(model)
+         result = command.run()
+         return self.response(200, result=result)
+ 
+     @expose("/export/<string:client_id>/")
+     @protect()
+     @statsd_metrics
+     @event_logger.log_this_with_context(
+         action=lambda self, *args, **kwargs: f"{self.__class__.__name__}"
+         f".export_csv",
+         log_to_statsd=False,
+     )
+     def export_csv(self, client_id: str) -> CsvResponse:
+         """Exports the SQL query results to a CSV
+         ---
+         get:
+           summary: >-
+             Exports the SQL query results to a CSV
+           parameters:
+           - in: path
+             schema:
+               type: integer
+             name: client_id
+             description: The SQL query result identifier
+           responses:
+             200:
+               description: SQL query results
+               content:
+                 text/csv:
+                   schema:
+                     type: string
+             400:
+               $ref: '#/components/responses/400'
+             401:
+               $ref: '#/components/responses/401'
+             403:
+               $ref: '#/components/responses/403'
+             404:
+               $ref: '#/components/responses/404'
+             500:
+               $ref: '#/components/responses/500'
+         """
+         result = SqlResultExportCommand(client_id=client_id).run()
+ 
+         query, data, row_count = result["query"], result["data"], result["count"]
+ 
+         quoted_csv_name = parse.quote(query.name)
+         response = CsvResponse(
+             data, headers=generate_download_headers("csv", quoted_csv_name)
+         )
+         event_info = {
+             "event_type": "data_export",
+             "client_id": client_id,
+             "row_count": row_count,
+             "database": query.database.name,
+             "schema": query.schema,
+             "sql": query.sql,
+             "exported_format": "csv",
+         }
+         event_rep = repr(event_info)
+         logger.debug(
+             "CSV exported: %s", event_rep, extra={"superset_event": event_info}
+         )
+         return response
+ 
      @expose("/results/")
      @protect()
      @statsd_metrics
diff --cc superset/sqllab/schemas.py
index d40bf50e38,134b9ea7bb..7136f8def8
--- a/superset/sqllab/schemas.py
+++ b/superset/sqllab/schemas.py
@@@ -23,11 -23,17 +23,20 @@@ sql_lab_get_results_schema = 
      },
      "required": ["key"],
  }
 -
 +class NLPtoSQLPayloadSchema(Schema):
 +    to_sql = fields.String(required=True)
 +    database_id = fields.Integer(required=True)
 +    database_backend = fields.String(required=True)
  
+ class EstimateQueryCostSchema(Schema):
+     database_id = fields.Integer(required=True, description="The database id")
+     sql = fields.String(required=True, description="The SQL query to estimate")
+     template_params = fields.Dict(
+         keys=fields.String(), description="The SQL query template params"
+     )
+     schema = fields.String(allow_none=True, description="The database schema")
+ 
+ 
  class ExecutePayloadSchema(Schema):
      database_id = fields.Integer(required=True)
      sql = fields.String(required=True)