This is an automated email from the ASF dual-hosted git repository.
beto pushed a change to branch new-table-metadata-api
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 1f73f2f2d2 Small fixes
omit 239f827ead feat(SIP-95): new endpoint for table metadata
omit 25edb1caf1 feat(sip-95): new endpoint for extra table metadata
add c23876d536 build(deps): bump match-sorter from 6.3.3 to 6.3.4 in
/superset-frontend (#28082)
add e889f17421 chore(translations): fix translations order (#28031)
add cddcff2c63 chore(translations): add Arabic translations stub (#28129)
add 83fedcc9ea chore: change deprecation versions post 4.0 (#28019)
add cfc440c56c feat: improve event logging for queries + refactor (#27943)
add de82d90b9c chore: refactor file upload commands (#28164)
add b7f3e0bb50 fix(AlertsReports): making log retention "None" option
valid (#27554)
add 063914af04 chore: get websocket service to start in docker-compose
(#28135)
add 68c77d6e9f chore: clean up console upon firing up the CLI (#28134)
add efc1ab83d4 build(deps): bump gh-pages from 3.2.3 to 5.0.0 in
/superset-frontend (#28177)
add f155138659 build(deps): update @types/fetch-mock requirement from
^7.3.3 to ^7.3.8 in /superset-frontend/packages/superset-ui-core (#27831)
add 9db431b430 docs: add dynamic entity-relationship diagram to docs
(#28130)
add cf90def462 feat: custom refresh frequency (#24449)
add 8baf754615 fix(docs): ERD docs fail on master (#28189)
add a9075fdb1f fix: Remove deprecated ignoreTestFiles from Applitools
Cypress (#28197)
add bc65c245fe chore(tests): Remove unnecessary/problematic app contexts
(#28159)
add e8a678b75a docs: Refactor Documentation Structure (#28161)
add 2d63722150 chore: set up ruff as a new linter/formatter (#28158)
add ffed915e91 feat(sip-95): new endpoint for extra table metadata
add 8cdf38b3f6 feat(SIP-95): new endpoint for table metadata
add a41acfbc29 Small fixes
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (1f73f2f2d2)
\
N -- N -- N refs/heads/new-table-metadata-api (a41acfbc29)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/workflows/bashlib.sh | 2 +-
.github/workflows/dependency-review.yml | 23 +-
.github/workflows/superset-docs-deploy.yml | 23 +-
.pre-commit-config.yaml | 30 +-
.pylintrc | 3 +-
.rat-excludes | 4 +
CONTRIBUTING.md | 2 +-
README.md | 6 +-
RELEASING/changelog.py | 10 +-
RESOURCES/FEATURE_FLAGS.md | 14 +-
UPDATING.md | 2 +
docker-compose.yml | 4 +
.../superset-websocket/config.json | 2 +-
.../alerts-reports.mdx | 8 +-
.../async-queries-celery.mdx | 0
.../docs/{installation => configuration}/cache.mdx | 4 +-
.../configuring-superset.mdx | 0
.../country-map-tools.mdx | 0
.../event-logging.mdx | 0
.../importing-exporting-datasources.mdx | 0
.../issue-codes.mdx | 0
.../networking-settings.mdx | 0
.../setup-ssh-tunneling.mdx | 0
.../sql-templating.mdx | 2 +-
.../{miscellaneous => configuration}/timezones.mdx | 0
docs/docs/contributing/_category_.json | 4 -
docs/docs/contributing/erd.mdx | 11 +
docs/docs/contributing/local-backend.mdx | 2 +-
docs/docs/contributing/testing-locally.mdx | 17 +-
.../creating-charts-dashboards/_category_.json | 4 -
docs/docs/databases/_category_.json | 4 -
docs/docs/frequently-asked-questions.mdx | 8 +-
docs/docs/installation/_category_.json | 4 -
.../installation/{docker.mdx => docker-builds.mdx} | 7 +
...using-docker-compose.mdx => docker-compose.mdx} | 2 +-
.../{running-on-kubernetes.mdx => kubernetes.mdx} | 4 +-
...{installing-superset-from-pypi.mdx => pypi.mdx} | 4 +-
docs/docs/installation/upgrading-superset.mdx | 2 +-
docs/docs/intro.mdx | 6 +-
docs/docs/miscellaneous/_category_.json | 4 -
docs/docs/quickstart.mdx | 10 +-
docs/docs/security/_category_.json | 4 -
docs/docs/security/cves.mdx | 18 +-
docs/docs/security/security.mdx | 2 +-
.../chart-params.mdx | 0
.../creating-your-first-dashboard.mdx | 4 +-
.../exploring-data.mdx | 0
docs/docusaurus.config.js | 23 +-
docs/package.json | 1 +
docs/sidebars.js | 87 +-
.../src/components/InteractiveERDSVG.jsx | 23 +-
docs/static/img/erd.svg | 1 +
docs/yarn.lock | 34 +-
pyproject.toml | 79 +
requirements/development.txt | 4 +
scripts/build_docker.py | 6 +-
scripts/cancel_github_workflows.py | 1 +
scripts/change_detector.py | 5 +-
scripts/erd/erd.puml | 676 +
scripts/erd/erd.py | 211 +
docs/static/.nojekyll => scripts/erd/erd.svg | 0
scripts/erd/erd.template.puml | 57 +
scripts/templates/erd.plantuml.template | 57 +
superset-frontend/package-lock.json | 92 +-
superset-frontend/package.json | 2 +-
.../packages/superset-ui-core/package.json | 2 +-
.../packages/superset-ui-demo/package.json | 2 +-
.../components/RefreshIntervalModal.test.tsx | 17 +
.../dashboard/components/RefreshIntervalModal.tsx | 200 +-
.../src/features/alerts/AlertReportModal.tsx | 6 +-
.../UploadDataModel/UploadDataModal.test.tsx | 2 -
.../features/databases/UploadDataModel/index.tsx | 17 -
superset-websocket/src/index.ts | 13 +-
superset/__init__.py | 14 +-
.../advanced_data_type/plugins/internet_port.py | 6 +-
superset/advanced_data_type/schemas.py | 1 +
superset/annotation_layers/filters.py | 4 +-
superset/cachekeys/api.py | 6 +-
superset/charts/filters.py | 4 +-
superset/cli/main.py | 3 +-
superset/columns/models.py | 1 +
superset/commands/chart/export.py | 7 +-
superset/commands/chart/importers/v1/__init__.py | 3 +-
superset/commands/dashboard/export.py | 7 +-
.../commands/dashboard/importers/v1/__init__.py | 4 +-
superset/commands/database/create.py | 1 -
superset/commands/database/csv_import.py | 198 -
superset/commands/database/exceptions.py | 5 +
superset/commands/database/export.py | 14 +-
.../commands/database/importers/v1/__init__.py | 3 +-
superset/commands/database/update.py | 11 +-
.../database/uploaders}/__init__.py | 0
.../{excel_import.py => uploaders/base.py} | 115 +-
superset/commands/database/uploaders/csv_reader.py | 102 +
.../commands/database/uploaders/excel_reader.py | 86 +
superset/commands/dataset/export.py | 7 +-
superset/commands/dataset/importers/v1/__init__.py | 3 +-
superset/commands/explore/get.py | 6 +-
superset/commands/importers/v1/__init__.py | 12 +-
superset/commands/importers/v1/assets.py | 1 -
superset/commands/importers/v1/examples.py | 1 -
superset/commands/importers/v1/utils.py | 12 +-
superset/commands/query/export.py | 7 +-
superset/commands/query/importers/v1/__init__.py | 4 +-
superset/commands/report/log_prune.py | 1 +
superset/commands/temporary_cache/create.py | 3 +-
superset/commands/temporary_cache/delete.py | 3 +-
superset/commands/temporary_cache/get.py | 3 +-
superset/commands/temporary_cache/update.py | 3 +-
superset/common/query_object.py | 3 +-
superset/config.py | 50 +-
superset/connectors/sqla/__init__.py | 2 +-
superset/connectors/sqla/models.py | 25 +-
superset/connectors/sqla/views.py | 1 +
superset/daos/chart.py | 2 +-
superset/daos/dataset.py | 4 +-
superset/dashboards/api.py | 6 +-
superset/databases/api.py | 21 +-
superset/databases/schemas.py | 6 -
superset/dataframe.py | 4 +-
superset/datasets/models.py | 1 -
superset/db_engine_specs/__init__.py | 1 +
superset/db_engine_specs/base.py | 19 +-
superset/db_engine_specs/bigquery.py | 6 +-
superset/db_engine_specs/duckdb.py | 2 +-
superset/db_engine_specs/hive.py | 4 +-
superset/db_engine_specs/ocient.py | 6 +-
superset/db_engine_specs/presto.py | 4 +-
superset/examples/countries.py | 1 +
superset/examples/data_loading.py | 22 +-
superset/examples/energy.py | 1 +
superset/examples/flights.py | 4 +-
superset/examples/helpers.py | 1 +
superset/examples/tabbed_dashboard.py | 1 +
superset/examples/world_bank.py | 1 +
superset/extensions/metadb.py | 2 -
superset/forms.py | 1 +
superset/jinja_context.py | 1 +
superset/key_value/types.py | 6 +-
superset/legacy.py | 1 +
superset/migrations/migration_utils.py | 2 +-
superset/migrations/shared/migrate_viz/__init__.py | 2 +-
superset/migrations/shared/migrate_viz/base.py | 2 +-
superset/migrations/shared/utils.py | 5 +-
.../versions/2015-09-21_17-30_4e6a06bad7a8_init.py | 4 +-
.../versions/2015-10-05_10-32_5a7bad26f2a7_.py | 4 +-
.../versions/2015-10-05_22-11_1e2841a4128_.py | 4 +-
...0-54_2929af7925ed_tz_offsets_in_data_sources.py | 4 +-
...12-04_09-42_1a48a5411020_adding_slug_to_dash.py | 6 +-
...15-12-04_11-16_315b3f4da9b0_adding_log_model.py | 4 +-
.../2015-12-13_08-38_55179c7f25c7_sqla_descr.py | 4 +-
.../2015-12-14_13-37_12d55656cbca_is_featured.py | 4 +-
.../2015-12-15_17-02_2591d77e9831_user_id.py | 4 +-
.../versions/2016-01-13_20-24_8e80a26a31db_.py | 5 +-
...6-01-17_22-00_7dbf98566af7_slice_description.py | 4 +-
.../2016-01-18_23-43_43df8de3a5f4_dash_json.py | 4 +-
.../2016-02-03_17-41_d827694c7555_css_templates.py | 4 +-
.../2016-02-10_08-47_430039611635_log_more.py | 1 +
...3-13_09-56_a2d606a761d9_adding_favstar_model.py | 4 +-
...-13_21-30_18e88e1cc004_making_audit_nullable.py | 1 +
...2016-03-17_08-40_836c0bf75904_cache_timeouts.py | 5 +-
...016-03-24_14-13_763d4b211ec9_fixing_audit_fk.py | 8 +-
.../2016-03-25_14-35_1d2ddd543133_log_dt.py | 5 +-
...4f117f9_adding_extra_field_to_database_model.py | 5 +-
...22-41_bb51420eaf83_add_schema_to_table_model.py | 4 +-
..._b4456560d4f3_change_table_unique_constraint.py | 1 +
...04-15_17-58_4fa88fe24e94_owners_many_to_many.py | 5 +-
..._08-54_c3a8f8611885_materializing_permission.py | 1 +
...bf6129e13_adding_verbose_name_to_tablecolumn.py | 4 +-
...5-11_17-28_956a063c52b3_adjusting_key_length.py | 1 +
...9ee0e3_fix_wrong_constraint_on_table_columns.py | 3 +-
...d8bc074f7aad_add_new_field_is_restricted_to_.py | 10 +-
.../versions/2016-06-16_14-15_960c69cb1f5b_.py | 4 +-
...06-27_08-43_27ae655e4247_make_creator_owners.py | 16 +-
...-07-06_22-04_f162a1dea4c4_d3format_by_metric.py | 4 +-
...016-07-25_17-48_ad82a75afd82_add_query_model.py | 4 +-
...8_14-06_3c3ffe173e4f_add_sql_string_to_table.py | 4 +-
...26_41f6a59a61f2_database_options_for_sql_lab.py | 1 +
...-09-07_23-50_33d996bcc382_update_slice_model.py | 1 +
..._17-39_5e4a03ef0bf0_add_request_access_model.py | 1 +
...9-12_23-33_4500485bde7d_allow_run_sync_async.py | 4 +-
.../versions/2016-09-19_17-22_b347b202819b_.py | 1 +
...09-22_10-21_3b626e2a6783_sync_db_with_models.py | 1 +
...2_11-31_eca4694defa7_sqllab_setting_defaults.py | 2 +-
...d66c4246e_add_cache_timeout_to_druid_cluster.py | 4 +-
.../versions/2016-10-02_10-35_ef8843b41dac_.py | 1 +
...0-05_11-30_b46fa1b0b39e_add_params_to_tables.py | 6 +-
...0-14_11-17_7e3ddad2a00b_results_key_to_query.py | 4 +-
...2016-10-25_10-16_ad4d656d92bc_add_avg_metric.py | 4 +-
.../2016-11-02_17-36_c611f2b591b8_dim_spec.py | 4 +-
...6-11-14_15-23_e46f2d27a08e_materialize_perms.py | 5 +-
.../versions/2016-11-23_10-27_f1f2d4af5b90_.py | 4 +-
.../2016-12-06_17-40_1296d28ec131_druid_exports.py | 4 +-
.../2016-12-13_16-19_525c854f0005_log_this_plus.py | 4 +-
.../versions/2016-12-19_09-57_6414e83d82b7_.py | 4 +-
.../2017-01-10_11-47_bcf3126872fc_add_keyvalue.py | 4 +-
...4_12-31_db0c65b146bd_update_slice_model_json.py | 10 +-
...2-40_f18570e03440_add_query_result_key_index.py | 1 +
...7c195a_rewriting_url_from_shortner_with_new_.py | 15 +-
.../versions/2017-02-10_17-58_d6db5a5cdb5d_.py | 4 +-
...9-15_732f1c06bcbf_add_fetch_values_predicate.py | 4 +-
...dfe5fb6c_adding_verbose_name_to_druid_column.py | 4 +-
.../versions/2017-03-16_14-55_ea033256294a_.py | 3 -
...03-16_18-10_db527d8c4c78_add_db_verbose_name.py | 6 +-
.../versions/2017-03-21_15-41_979c03af3341_.py | 3 -
..._11-28_a6c18f869a4e_query_start_running_time.py | 1 +
.../2017-03-29_15-04_2fcdcb35e487_saved_queries.py | 1 +
...a65458420354_add_result_backend_time_logging.py | 1 +
.../2017-07-26_20-09_ca69c70ec99b_tracking_url.py | 5 +-
...-35_a9c47e2c1547_add_impersonate_user_to_dbs.py | 5 +-
.../2017-09-13_16-36_ddd6ebdd853b_annotations.py | 1 +
...5-09_19a814813610_adding_metric_warning_text.py | 4 +-
.../versions/2017-09-19_15-09_d39b1e37131d_.py | 3 -
.../versions/2017-09-21_18-37_472d2f73dfd4_.py | 3 -
.../versions/2017-09-24_20-18_f959a6652acd_.py | 3 -
...-08_08-19_67a6ac9b727b_update_spatial_params.py | 1 +
...2-17_11-06_21e88bc06c02_annotation_migration.py | 1 +
.../2018-02-13_08-07_e866bd2d4976_smaller_grid.py | 2 +-
...8c4473c581_allow_multi_schema_metadata_fetch.py | 1 +
.../versions/2018-03-20_19-47_f231d82b9b26_.py | 1 +
...fdf31bdd4_add_published_column_to_dashboards.py | 4 +-
...-04-03_08-19_130915240929_is_sqllab_viz_flow.py | 1 +
.../versions/2018-04-08_07-34_30bb17c0dc76_.py | 6 +-
...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py | 1 +
.../versions/2018-04-10_20-46_c9495751e314_.py | 4 +-
.../versions/2018-04-12_16-00_5ccf602336a0_.py | 4 +-
...5_e502db2af7be_add_template_params_to_tables.py | 6 +-
..._20-28_6c7537a6004a_models_for_email_reports.py | 4 +-
...018-06-04_11-12_c5756bec8b47_time_grain_sqla.py | 10 +-
...6-07_09-52_afb7730f6a9c_remove_empty_filters.py | 10 +-
...13_10-20_4451805bbaa1_remove_double_percents.py | 10 +-
.../2018-06-13_14-54_bddc498dd179_adhoc_filters.py | 12 +-
...4_14-31_80a67c5192fa_single_pie_chart_metric.py | 10 +-
.../versions/2018-07-16_18-04_1d9e835a84f9_.py | 1 +
.../2018-07-19_23-41_c617da68de7d_form_nullable.py | 10 +-
...07-20_15-31_7f2635b51f5d_update_base_columns.py | 10 +-
...07-20_15-57_e9df189e5c7e_update_base_metrics.py | 10 +-
...-07-20_16-08_937d04c16b64_update_datasources.py | 4 +-
.../versions/2018-07-22_08-49_c829ff0b37d0_.py | 3 -
.../2018-07-22_08-50_7467e77870e4_remove_aggs.py | 1 +
.../versions/2018-07-22_09-32_e3970889f38e_.py | 3 -
.../versions/2018-07-22_11-50_fc480c87706c_.py | 3 -
..._bebcf3fed1fe_convert_dashboard_v1_positions.py | 6 +-
.../versions/2018-07-22_21-51_705732c70154_.py | 4 +-
.../versions/2018-07-23_11-20_46ba6aaaac97_.py | 3 -
...8-07-26_11-10_c82ee8a39623_add_implicit_tags.py | 14 +-
...14-38_0c5070e96b57_add_user_attributes_table.py | 4 +-
.../2018-08-13_11-30_1a1d627ebd8e_position_json.py | 1 -
...826_add_metadata_column_to_annotation_model_.py | 4 +-
...08-42_0b1f1ab473c0_add_extra_column_to_query.py | 1 +
...08545_migrate_time_range_for_default_filters.py | 6 +-
...8b9b7_remove_coordinator_from_druid_cluster_.py | 1 +
...-27_11-53_a61b40f9f57f_remove_allow_run_sync.py | 1 +
...2018-12-11_22-03_fb13d49b72f9_better_filters.py | 5 +-
...d38_increase_size_of_name_column_in_ab_view_.py | 4 +-
.../versions/2018-12-18_22-45_de021a1ca60d_.py | 1 +
.../versions/2018-12-22_17-26_fbd55e0f83eb_.py | 3 -
..._a33a03f16c4a_add_extra_column_to_savedquery.py | 4 +-
.../versions/2019-01-17_08-31_8b70aa3d0f87_.py | 3 -
.../versions/2019-01-18_14-56_18dc26817ad2_.py | 3 -
...2-01_16-07_e553e78e90c5_add_druid_auth_py_py.py | 5 +-
.../versions/2019-02-16_17-44_45e7da7cfeba_.py | 3 -
.../2019-03-21_10-22_d94d33dbe938_form_strip.py | 10 +-
...a3f04bc82_add_parent_ids_in_dashboard_layout.py | 3 +-
...er_sql_column_data_type_in_query_mysql_table.py | 1 +
...1a0d6f2da_remove_limit_used_from_query_model.py | 4 +-
...5_b4a38aa87893_deprecate_database_expression.py | 4 +-
.../2019-06-28_13-17_ab8c66efdd01_resample.py | 14 +-
...9-02_def97f26fdfb_add_index_to_tagged_object.py | 2 +-
...ng_unique_constraint_on_dashboard_slices_tbl.py | 3 +-
...50_11c737c17cc6_deprecate_restricted_metrics.py | 1 +
...5afa9079866a_serialize_schema_permissions_py.py | 1 -
...e_form_strip_leading_and_trailing_whitespace.py | 1 +
...2_00-29_b6fa807eac07_make_names_non_nullable.py | 1 +
...5-05_cca2f5d568c8_add_encrypted_extra_to_dbs.py | 4 +-
.../2019-10-10_13-52_1495eb914ad3_time_range.py | 1 +
...acd2cf3df2_alter_type_of_dbs_encrypted_extra.py | 1 -
...127d0d1d_reconvert_legacy_filters_into_adhoc.py | 17 +-
...05_db4b49eb0782_add_tables_for_sql_lab_state.py | 5 +-
...e1c9b09d0_add_not_null_to_dbs_sqlalchemy_url.py | 1 +
...8ea_change_table_schema_description_to_long_.py | 8 +-
...4_17-07_0a6f12f60c73_add_role_level_security.py | 4 +-
...-08_01-17_e96dbf2cfef0_datasource_cluster_fk.py | 2 +-
..._14-13_3325d4caccc8_dashboard_scoped_filters.py | 2 +-
...a401_add_tmp_schema_name_to_the_query_object.py | 4 +-
...10-42_f9a30386bd74_cleanup_time_grainularity.py | 10 +-
...25_10-49_b5998378c225_add_certificate_to_dbs.py | 6 +-
...57699a813e_add_tables_relation_to_row_level_.py | 6 +-
...29_09-24_620241d1153f_update_time_grain_sqla.py | 12 +-
...5-12_12-59_ea396d202291_ctas_method_in_query.py | 4 +-
...21-01_743a117f0d98_add_slack_to_the_schedule.py | 4 +-
.../2020-05-26_23-21_2f1d15e8a6af_add_alerts.py | 5 +-
...09_17-12_73fd22e742ab_add_dynamic_plugins_py.py | 4 +-
...08-08_18-10_f2672aa8350a_add_slack_to_alerts.py | 4 +-
...978245563a02_migrate_iframe_to_dash_markdown.py | 3 +-
...acb39_add_extra_column_to_tables_and_metrics.py | 4 +-
.../versions/2020-08-12_15-47_f80a3b88324b_.py | 3 -
.../2020-08-28_17-16_175ea3592453_cache_lookup.py | 4 +-
...-08-31_20-30_2e5a0ee25ed4_refractor_alerting.py | 6 +-
...828ac4e_add_rls_filter_type_and_grouping_key.py | 10 +-
...654_fix_data_access_permissions_for_virtual_.py | 13 +-
...d70ab98_fix_table_unique_constraint_in_mysql.py | 8 +-
...b56500de1855_add_uuid_column_to_import_mixin.py | 1 +
..._585b0b1a7b18_add_exec_info_to_saved_queries.py | 4 +-
...6e99fb176a0_add_import_mixing_to_saved_query.py | 2 +-
...1-04_11-06_49b5a32daba5_add_report_schedules.py | 7 +-
...20-11-15_16-08_a8173232b786_add_path_to_logs.py | 6 +-
...e38177dbf641_security_converge_saved_queries.py | 8 +-
...15-25_40f16acf1ba7_security_converge_reports.py | 8 +-
...8ee129739cf9_security_converge_css_templates.py | 8 +-
...ced1f0e76_reports_add_working_timeout_column.py | 4 +-
...-03_16-21_811494c0cc23_remove_path_from_logs.py | 5 +-
..._14-13_ccb74baaa89b_security_converge_charts.py | 8 +-
...5-05_45731db65d9c_security_converge_datasets.py | 8 +-
...45_1f6dca87d1a2_security_converge_dashboards.py | 8 +-
...-49_42b4c9e01447_security_converge_databases.py | 9 +-
...9-07_ab104a954a8f_reports_alter_crontab_size.py | 4 +-
...12-15_e37912a26567_security_converge_queries.py | 8 +-
...c878781977c6_alert_reports_shared_uniqueness.py | 12 +-
...cdd12658_add_roles_relationship_to_dashboard.py | 5 +-
...60bf0649a77_migrate_x_dateunit_in_time_range.py | 26 +-
...2fdb_add_granularity_to_charts_where_missing.py | 12 +-
...-10_12-32_41ce8799acc3_rename_pie_label_type.py | 10 +-
...1412ec1e5a7b_legacy_force_directed_to_echart.py | 4 +-
...8_09-13_c501b7c653a3_add_missing_uuid_column.py | 18 +-
...2_67da9ef1ef9c_add_hide_left_bar_to_tabstate.py | 7 +-
...411006_add_execution_id_to_report_execution_.py | 6 +-
...989bbe479899_rename_filter_configuration_in_.py | 10 +-
...021-03-29_11-15_3ebe0993c770_filterset_table.py | 4 +-
...e1b9c3_add_report_format_to_report_schedule_.py | 4 +-
...ea61c5e7_remove_dataset_health_check_message.py | 12 +-
...88938_country_map_use_lowercase_country_name.py | 1 +
...3a3a8ff221_migrate_filter_sets_to_new_format.py | 14 +-
...0d715cc_add_limiting_factor_column_to_query_.py | 4 +-
...ed7ec95_migrate_native_filters_to_new_schema.py | 14 +-
...530256cea_add_save_option_column_to_db_model.py | 4 +-
...ae1ed299413b_add_timezone_to_report_schedule.py | 4 +-
...9248280_add_creation_method_to_reports_model.py | 4 +-
...-09_030c840e3a1c_add_query_context_to_slices.py | 5 +-
...27_08-25_31b2a1039d4a_drop_tables_constraint.py | 1 -
...3605f370a_fix_schemas_allowed_for_csv_upload.py | 1 +
...d20ba9ecb33_add_last_saved_at_to_slice_model.py | 4 +-
...15da_migrate_pivot_table_v2_heatmaps_to_new_.py | 10 +-
...13dd52_change_fetch_values_predicate_to_text.py | 12 +-
...1091c0ef16_add_extra_column_to_columns_model.py | 4 +-
...4fbb_add_type_to_native_filter_configuration.py | 16 +-
...-09-19_14-42_b92d69a6643c_rename_csv_to_file.py | 6 +-
...453f4e2e_migrate_timeseries_limit_metric_to_.py | 10 +-
...12_11-15_32646df09c64_update_time_grain_sqla.py | 10 +-
...cbaac5_change_datatype_of_type_in_basecolumn.py | 4 +-
...e5f1dacd_rename_to_schemas_allowed_for_file_.py | 12 +-
...-11-11_16-41_b8d3a24d9131_new_dataset_models.py | 1 +
...e27eaf93db_add_extra_config_column_to_alerts.py | 8 +-
...aa3ff_add_force_screenshot_to_alerts_reports.py | 8 +-
...5b9441_rename_big_viz_total_form_data_fields.py | 12 +-
...8dd_add_saved_query_foreign_key_to_tab_state.py | 4 +-
...d1d2_move_pivot_table_v2_legacy_order_by_to_.py | 12 +-
...9410a97a_add_columns_for_external_management.py | 4 +-
...03_5afbb1a5849b_add_embedded_dahshoard_table.py | 8 +-
..._ab9a9d86e695_deprecate_time_range_endpoints.py | 1 +
...b0ca7944_change_adhoc_filter_b_from_none_to_.py | 10 +-
...03-04_09-59_6766938c6065_add_key_value_store.py | 8 +-
...3_sql_lab_models_database_constraint_updates.py | 6 +-
...d617f14_add_on_saved_query_delete_tab_state_.py | 6 +-
...14-38_a9422eeaae74_new_dataset_models_take_2.py | 49 +-
...d0249074e4_deprecate_time_range_endpoints_v2.py | 1 +
.../versions/2022-04-06_14-10_9d8a8d575284_.py | 3 -
...07e4fdbaba_rm_time_range_endpoints_from_qc_3.py | 10 +-
...-39_cbe71abde154_fix_report_schedule_and_log.py | 10 +-
...8_16-07_e786798587de_delete_none_permissions.py | 8 +-
...-14_15-28_e09b4ae78457_resize_key_value_blob.py | 4 +-
..._16-17_f3afaf1f11f0_add_unique_name_desc_rls.py | 8 +-
...59_7fb8bca906d2_permalink_rename_filterstate.py | 14 +-
...5-48_409c7b420ab0_add_created_by_fk_as_owner.py | 6 +-
...cf3d64daf4_add_user_id_dttm_idx_to_log_model.py | 2 +-
..._13-00_c747c78868b6_migrating_legacy_treemap.py | 1 +
...-07_14-00_06e1e70058c7_migrating_legacy_area.py | 1 +
...61a56_rename_report_schedule_extra_to_extra_.py | 4 +-
...-16_a39867932713_query_context_to_mediumtext.py | 1 +
...665d_fix_table_chart_conditional_formatting_.py | 1 +
...rop_column_allow_multi_schema_metadata_fetch.py | 4 +-
...-34_deb4c9d4a4ef_parameters_in_saved_queries.py | 4 +-
...c2d8ec8595_create_ssh_tunnel_credentials_tbl.py | 12 +-
...1_4ce1d9b25135_remove_filter_bar_orientation.py | 10 +-
...4-46_c0a3ea245b61_remove_show_native_filters.py | 10 +-
...ac08bb5b83_invert_horizontal_bar_chart_order.py | 11 +-
...7_13-24_b5ea9d343307_bar_chart_stack_options.py | 11 +-
...03-27_12-30_7e67aecbf3f1_chart_ds_constraint.py | 12 +-
...2af1b_drop_postgres_enum_constrains_for_tags.py | 4 +-
...2a5681ddfd_convert_key_value_entries_to_json.py | 18 +-
...-41_4ea966691069_cross_filter_global_scoping.py | 22 +-
...06-01_13-13_83e1abbe777f_drop_access_request.py | 4 +-
...02_9ba2ce3086e5_migrate_pivot_table_v1_to_v2.py | 1 +
...-08_10-22_4c5da39be729_migrate_treemap_chart.py | 1 +
...e58e1e58e5c_migrate_dual_line_to_mixed_chart.py | 3 +-
..._90139bf715e4_add_currency_column_to_metrics.py | 4 +-
..._add_on_delete_cascade_for_tables_references.py | 2 +-
.../2023-06-28_19-49_bf646a0c1501_json_metadata.py | 1 -
..._240d23c7f86f_update_tag_model_w_description.py | 5 +-
...2a3124dd66_drop_rouge_constraints_and_tables.py | 6 +-
..._add_on_delete_cascade_for_owners_references.py | 2 +-
...0-34_e0f6f91c2055_create_user_favorite_table.py | 5 +-
...delete_obsolete_druid_nosql_slice_parameters.py | 12 +-
...6f8b1280_cleanup_erroneous_parent_filter_ids.py | 12 +-
...9_17-54_ee179a490af9_deckgl_path_width_units.py | 1 +
...23_0769ef90fddd_fix_schema_perm_for_datasets.py | 10 +-
.../2023-08-08_14-14_2e826adca42c_log_json.py | 1 -
...3_add_on_delete_cascade_for_dashboard_slices.py | 2 +-
...on_delete_cascade_for_embedded_dashboards.py.py | 2 +-
...086c2676_add_normalize_columns_to_sqla_model.py | 11 +-
...54aca4c8a2_increase_ab_user_email_field_size.py | 4 +-
...317970b4400c_added_time_secondary_column_to_.py | 11 +-
...91_add_on_delete_cascade_for_dashboard_roles.py | 2 +-
...12-01_12-03_b7851ee5522f_replay_317970b4400c.py | 4 +-
...ff00fe8_add_percent_calculation_type_funnel_.py | 1 +
...20_65a167d4c62e_add_indexes_to_report_models.py | 4 +-
...16_13-14_59a1450b3c10_drop_filter_sets_table.py | 3 +-
...96164e3017c6_tagged_object_unique_constraint.py | 3 +-
...4-01-18_12-12_15a2c68a2e6b_merging_two_heads.py | 3 -
...18_14-41_a32e0c4d8646_migrate_sunburst_chart.py | 6 +-
...d09c9_migrate_filter_boxes_to_native_filters.py | 15 +-
.../2024-01-19_08-42_1cf8e4344e2b_merging.py | 3 -
...2024-01-19_10-03_e863403c0c50_drop_url_table.py | 7 +-
...d83218_migrate_can_view_and_drill_permission.py | 8 +-
...14-43_17fcea065655_change_text_to_mediumtext.py | 8 +-
...47_be1b217cd8cd_big_number_kpi_single_metric.py | 12 +-
...20_16-02_678eefb4ab44_add_access_token_table.py | 6 +-
...4-01_22-44_c22cb5c2e546_user_attr_avatar_url.py | 2 +-
...8_15-43_5ad7321c2169_mig_new_csv_upload_perm.py | 8 +-
...-04-11_15-41_5f57af97bc3f_add_catalog_column.py | 6 +-
...14-04_d60591c5515f_mig_new_excel_upload_perm.py | 8 +-
superset/models/__init__.py | 2 +-
superset/models/annotations.py | 1 +
superset/models/cache.py | 1 -
superset/models/core.py | 104 +-
superset/models/dashboard.py | 8 +-
superset/models/helpers.py | 28 +-
superset/models/sql_lab.py | 3 +-
superset/models/user_attributes.py | 1 -
superset/queries/saved_queries/filters.py | 4 +-
superset/reports/models.py | 1 +
superset/reports/notifications/__init__.py | 4 +-
superset/reports/schemas.py | 2 +-
superset/result_set.py | 6 +-
superset/row_level_security/api.py | 2 +-
superset/security/api.py | 6 +-
superset/security/manager.py | 5 +-
superset/sql_lab.py | 44 +-
superset/sql_parse.py | 4 +-
superset/sql_validators/__init__.py | 2 +-
superset/sql_validators/presto_db.py | 9 +-
superset/sqllab/execution_context_convertor.py | 2 -
superset/sqllab/sqllab_execution_context.py | 1 -
superset/tags/models.py | 4 +-
superset/tasks/celery_app.py | 3 +-
superset/tasks/slack_util.py | 1 +
superset/temporary_cache/api.py | 12 +-
.../{en => ar}/LC_MESSAGES/messages.json | 183 +-
.../{messages.pot => ar/LC_MESSAGES/messages.po} | 107 +-
superset/translations/de/LC_MESSAGES/messages.po | 33430 +++++++--------
superset/translations/en/LC_MESSAGES/messages.po | 23183 +++++------
superset/translations/es/LC_MESSAGES/messages.po | 30723 +++++++-------
superset/translations/fr/LC_MESSAGES/messages.po | 33488 +++++++--------
superset/translations/it/LC_MESSAGES/messages.po | 28042 ++++++-------
superset/translations/ja/LC_MESSAGES/messages.po | 28930 ++++++-------
superset/translations/ko/LC_MESSAGES/messages.po | 27339 ++++++-------
superset/translations/messages.pot | 23164 +++++------
superset/translations/nl/LC_MESSAGES/messages.po | 29216 ++++++-------
superset/translations/pt/LC_MESSAGES/messages.po | 29039 ++++++-------
.../translations/pt_BR/LC_MESSAGES/messages.po | 33151 +++++++--------
superset/translations/ru/LC_MESSAGES/messages.po | 32462 +++++++--------
superset/translations/sk/LC_MESSAGES/messages.po | 23754 +++++------
superset/translations/sl/LC_MESSAGES/messages.po | 32561 +++++++--------
superset/translations/tr/LC_MESSAGES/messages.po | 3024 +-
superset/translations/uk/LC_MESSAGES/messages.po | 32844 +++++++--------
superset/translations/zh/LC_MESSAGES/messages.po | 40490 ++++++++++---------
superset/utils/core.py | 11 +-
superset/utils/date_parser.py | 6 +-
superset/utils/decorators.py | 3 +-
superset/utils/log.py | 62 +-
superset/utils/logging_configurator.py | 2 +-
superset/utils/pandas_postprocessing/prophet.py | 2 +-
superset/utils/webdriver.py | 4 +-
superset/views/__init__.py | 14 +
superset/views/base.py | 4 +-
superset/views/base_api.py | 13 +-
superset/views/chart/views.py | 4 +-
superset/views/core.py | 4 +-
superset/views/dashboard/views.py | 4 +-
superset/views/database/views.py | 4 +-
superset/views/filters.py | 2 -
superset/views/key_value.py | 5 +-
superset/views/sql_lab/views.py | 4 +-
superset/views/utils.py | 14 +-
superset/viz.py | 40 +-
tests/common/logger_utils.py | 3 +-
tests/conftest.py | 3 -
.../example_data/data_generator/base_generator.py | 3 +-
.../birth_names/birth_names_generator_factory.py | 3 +-
.../example_data/data_loading/base_data_loader.py | 6 +-
.../data_loading/data_definitions/types.py | 3 +-
.../data_loading/pandas/pandas_data_loader.py | 3 +-
tests/integration_tests/access_tests.py | 55 +-
.../advanced_data_type/api_tests.py | 7 +-
.../annotation_layers/api_tests.py | 5 +-
.../annotation_layers/fixtures.py | 60 +-
tests/integration_tests/base_api_tests.py | 8 +-
tests/integration_tests/base_tests.py | 3 +-
tests/integration_tests/cache_tests.py | 7 +-
tests/integration_tests/cachekeys/api_tests.py | 7 +-
tests/integration_tests/celery_tests.py | 9 +-
tests/integration_tests/charts/api_tests.py | 37 +-
tests/integration_tests/charts/commands_tests.py | 10 +-
tests/integration_tests/charts/data/api_tests.py | 51 +-
tests/integration_tests/charts/schema_tests.py | 5 +-
tests/integration_tests/cli_tests.py | 6 +-
tests/integration_tests/conftest.py | 13 +-
tests/integration_tests/core_tests.py | 23 +-
tests/integration_tests/css_templates/api_tests.py | 11 +-
tests/integration_tests/csv_upload_tests.py | 3 +-
tests/integration_tests/dashboard_tests.py | 83 +-
tests/integration_tests/dashboard_utils.py | 2 +-
tests/integration_tests/dashboards/api_tests.py | 33 +-
tests/integration_tests/dashboards/base_case.py | 18 +-
.../integration_tests/dashboards/commands_tests.py | 6 +-
tests/integration_tests/dashboards/dao_tests.py | 6 +-
.../dashboards/filter_state/api_tests.py | 14 +-
.../dashboards/permalink/api_tests.py | 16 +-
.../dashboards/security/base_case.py | 3 +-
.../dashboards/security/security_dataset_tests.py | 82 +-
.../dashboards/security/security_rbac_tests.py | 113 +-
tests/integration_tests/databases/api_tests.py | 39 +-
.../databases/commands/csv_upload_test.py | 286 -
.../databases/commands/excel_upload_test.py | 257 -
.../databases/commands/upload_test.py | 203 +
.../integration_tests/databases/commands_tests.py | 21 +-
.../ssh_tunnel/commands/commands_tests.py | 3 -
tests/integration_tests/datasets/api_tests.py | 29 +-
tests/integration_tests/datasets/commands_tests.py | 12 +-
tests/integration_tests/datasource/api_tests.py | 8 +-
tests/integration_tests/datasource_tests.py | 13 +-
.../db_engine_specs/base_engine_spec_tests.py | 12 +-
.../db_engine_specs/base_tests.py | 2 +-
.../db_engine_specs/bigquery_tests.py | 4 +-
.../db_engine_specs/hive_tests.py | 38 +-
.../db_engine_specs/presto_tests.py | 2 +-
.../integration_tests/dict_import_export_tests.py | 1 +
tests/integration_tests/email_tests.py | 1 +
tests/integration_tests/embedded/api_tests.py | 5 +-
tests/integration_tests/embedded/dao_tests.py | 7 +-
tests/integration_tests/embedded/test_view.py | 14 +-
tests/integration_tests/event_logger_tests.py | 8 +-
tests/integration_tests/explore/api_tests.py | 42 +-
.../explore/form_data/api_tests.py | 16 +-
.../explore/form_data/commands_tests.py | 6 +-
.../explore/permalink/api_tests.py | 18 +-
.../explore/permalink/commands_tests.py | 5 +-
.../extensions/metastore_cache_test.py | 2 +-
tests/integration_tests/fixtures/__init__.py | 16 +-
tests/integration_tests/fixtures/datasource.py | 66 +-
tests/integration_tests/fixtures/public_role.py | 27 +-
tests/integration_tests/fixtures/tags.py | 16 +-
tests/integration_tests/fixtures/users.py | 43 +-
.../fixtures/world_bank_dashboard.py | 13 +-
tests/integration_tests/import_export_tests.py | 21 +-
.../key_value/commands/create_test.py | 10 +-
.../key_value/commands/delete_test.py | 8 +-
.../key_value/commands/fixtures.py | 3 +-
.../key_value/commands/get_test.py | 9 +-
.../key_value/commands/update_test.py | 14 +-
.../key_value/commands/upsert_test.py | 14 +-
tests/integration_tests/log_api_tests.py | 7 +-
...ef90fddd_fix_schema_perm_for_datasets__tests.py | 4 +-
.../7e67aecbf3f1_chart_ds_constraint__tests.py | 2 +-
...migrate_can_view_and_drill_permission__tests.py | 37 +-
...baba_rm_time_range_endpoints_from_qc_3__test.py | 2 +-
tests/integration_tests/model_tests.py | 16 +-
tests/integration_tests/queries/api_tests.py | 3 +-
.../queries/saved_queries/api_tests.py | 18 +-
tests/integration_tests/query_context_tests.py | 4 +-
tests/integration_tests/reports/alert_tests.py | 62 +-
tests/integration_tests/reports/api_tests.py | 41 +-
.../commands/create_dashboard_report_tests.py | 6 +-
.../commands/execute_dashboard_report_tests.py | 6 +-
tests/integration_tests/reports/commands_tests.py | 487 +-
tests/integration_tests/reports/scheduler_tests.py | 249 +-
tests/integration_tests/reports/utils.py | 2 +-
tests/integration_tests/result_set_tests.py | 2 +-
.../security/analytics_db_safety_tests.py | 12 +-
tests/integration_tests/security/api_tests.py | 7 +-
.../security/guest_token_security_tests.py | 15 +-
.../security/migrate_roles_tests.py | 3 +-
.../security/row_level_security_tests.py | 24 +-
tests/integration_tests/security_tests.py | 28 +-
tests/integration_tests/sql_lab/api_tests.py | 17 +-
tests/integration_tests/sql_lab/commands_tests.py | 2 +-
tests/integration_tests/sql_validator_tests.py | 1 +
tests/integration_tests/sqla_models_tests.py | 53 +-
tests/integration_tests/sqllab_tests.py | 17 +-
tests/integration_tests/stats_logger_tests.py | 1 +
tests/integration_tests/strategy_tests.py | 27 +-
tests/integration_tests/superset_test_config.py | 34 +-
.../superset_test_config_thumbnails.py | 22 +-
.../superset_test_custom_template_processors.py | 2 +-
tests/integration_tests/tagging_tests.py | 2 +-
tests/integration_tests/tags/api_tests.py | 53 +-
tests/integration_tests/tags/commands_tests.py | 50 +-
tests/integration_tests/tags/dao_tests.py | 20 +-
.../integration_tests/tasks/async_queries_tests.py | 7 +-
tests/integration_tests/test_jinja_context.py | 2 +-
tests/integration_tests/thumbnails_tests.py | 82 +-
tests/integration_tests/users/api_tests.py | 3 +-
.../integration_tests/utils/cache_manager_tests.py | 6 +-
tests/integration_tests/utils/core_tests.py | 4 +-
tests/integration_tests/utils/csv_tests.py | 2 +-
tests/integration_tests/utils/encrypt_tests.py | 12 +-
tests/integration_tests/utils/hashing_tests.py | 2 +-
tests/integration_tests/utils_tests.py | 58 +-
tests/integration_tests/viz_tests.py | 4 +-
tests/unit_tests/annotation_layers/schema_tests.py | 2 +-
.../charts/commands/importers/v1/import_test.py | 2 +-
tests/unit_tests/charts/test_post_processing.py | 3 +-
.../unit_tests/commands/databases}/__init__.py | 0
.../commands/databases/csv_reader_test.py | 313 +
.../commands/databases/excel_reader_test.py | 209 +
tests/unit_tests/commands/test_utils.py | 1 -
.../unit_tests/common/test_query_object_factory.py | 4 +-
tests/unit_tests/dao/tag_test.py | 17 +-
tests/unit_tests/dao/user_test.py | 5 +-
.../commands/importers/v1/import_test.py | 2 +-
tests/unit_tests/databases/api_test.py | 98 +-
tests/unit_tests/databases/schema_tests.py | 1 -
.../databases/ssh_tunnel/commands/create_test.py | 3 -
tests/unit_tests/databases/ssh_tunnel/dao_tests.py | 6 +-
tests/unit_tests/datasets/commands/export_test.py | 4 +-
.../datasets/commands/importers/v1/import_test.py | 6 +-
tests/unit_tests/datasource/dao_tests.py | 1 -
tests/unit_tests/db_engine_specs/test_athena.py | 6 +-
tests/unit_tests/db_engine_specs/test_bigquery.py | 6 +-
.../unit_tests/db_engine_specs/test_clickhouse.py | 10 +-
tests/unit_tests/db_engine_specs/test_crate.py | 6 +-
tests/unit_tests/db_engine_specs/test_crdb.py | 6 +-
tests/unit_tests/db_engine_specs/test_databend.py | 6 +-
.../unit_tests/db_engine_specs/test_databricks.py | 6 +-
tests/unit_tests/db_engine_specs/test_db2.py | 7 +-
tests/unit_tests/db_engine_specs/test_dremio.py | 6 +-
tests/unit_tests/db_engine_specs/test_drill.py | 6 +-
tests/unit_tests/db_engine_specs/test_druid.py | 6 +-
tests/unit_tests/db_engine_specs/test_duckdb.py | 6 +-
tests/unit_tests/db_engine_specs/test_dynamodb.py | 6 +-
.../db_engine_specs/test_elasticsearch.py | 8 +-
tests/unit_tests/db_engine_specs/test_firebird.py | 6 +-
tests/unit_tests/db_engine_specs/test_firebolt.py | 6 +-
tests/unit_tests/db_engine_specs/test_hana.py | 6 +-
tests/unit_tests/db_engine_specs/test_hive.py | 6 +-
tests/unit_tests/db_engine_specs/test_impala.py | 6 +-
tests/unit_tests/db_engine_specs/test_kusto.py | 10 +-
tests/unit_tests/db_engine_specs/test_kylin.py | 6 +-
tests/unit_tests/db_engine_specs/test_mssql.py | 4 +-
tests/unit_tests/db_engine_specs/test_mysql.py | 8 +-
tests/unit_tests/db_engine_specs/test_oracle.py | 6 +-
tests/unit_tests/db_engine_specs/test_postgres.py | 6 +-
tests/unit_tests/db_engine_specs/test_redshift.py | 6 +-
tests/unit_tests/db_engine_specs/test_rockset.py | 6 +-
tests/unit_tests/db_engine_specs/test_snowflake.py | 6 +-
tests/unit_tests/db_engine_specs/test_sqlite.py | 6 +-
tests/unit_tests/db_engine_specs/test_trino.py | 4 +-
tests/unit_tests/explore/api_test.py | 2 -
tests/unit_tests/explore/utils_test.py | 11 +-
tests/unit_tests/extensions/ssh_test.py | 3 +-
tests/unit_tests/fixtures/common.py | 4 +-
tests/unit_tests/jinja_context_test.py | 6 +-
tests/unit_tests/legacy_tests.py | 2 +-
tests/unit_tests/models/sql_lab_test.py | 2 +-
tests/unit_tests/notifications/slack_tests.py | 1 -
tests/unit_tests/queries/query_object_test.py | 1 -
tests/unit_tests/reports/schemas_test.py | 2 +-
tests/unit_tests/scripts/docker_build.py | 5 +-
.../unit_tests/scripts/tag_latest_release_test.py | 1 -
tests/unit_tests/sql_lab_test.py | 8 +-
tests/unit_tests/sql_parse_tests.py | 257 +-
tests/unit_tests/tags/commands/create_test.py | 12 +-
tests/unit_tests/tags/commands/update_test.py | 8 +-
tests/unit_tests/tasks/test_utils.py | 2 +-
tests/unit_tests/thumbnails/test_digest.py | 34 +-
tests/unit_tests/utils/docker.py | 3 +-
tests/unit_tests/utils/lock_tests.py | 2 +-
tests/unit_tests/utils/test_core.py | 2 -
tests/unit_tests/utils/urls_tests.py | 1 -
689 files changed, 251161 insertions(+), 243575 deletions(-)
copy superset-websocket/config.example.json =>
docker/superset-websocket/config.json (85%)
rename docs/docs/{installation => configuration}/alerts-reports.mdx (98%)
rename docs/docs/{installation => configuration}/async-queries-celery.mdx
(100%)
rename docs/docs/{installation => configuration}/cache.mdx (96%)
rename docs/docs/{installation => configuration}/configuring-superset.mdx
(100%)
rename docs/docs/{miscellaneous => configuration}/country-map-tools.mdx (100%)
rename docs/docs/{installation => configuration}/event-logging.mdx (100%)
rename docs/docs/{miscellaneous =>
configuration}/importing-exporting-datasources.mdx (100%)
rename docs/docs/{miscellaneous => configuration}/issue-codes.mdx (100%)
rename docs/docs/{installation => configuration}/networking-settings.mdx (100%)
rename docs/docs/{installation => configuration}/setup-ssh-tunneling.mdx (100%)
rename docs/docs/{installation => configuration}/sql-templating.mdx (99%)
rename docs/docs/{miscellaneous => configuration}/timezones.mdx (100%)
delete mode 100644 docs/docs/contributing/_category_.json
create mode 100644 docs/docs/contributing/erd.mdx
delete mode 100644 docs/docs/creating-charts-dashboards/_category_.json
delete mode 100644 docs/docs/databases/_category_.json
delete mode 100644 docs/docs/installation/_category_.json
rename docs/docs/installation/{docker.mdx => docker-builds.mdx} (98%)
rename docs/docs/installation/{installing-superset-using-docker-compose.mdx =>
docker-compose.mdx} (99%)
rename docs/docs/installation/{running-on-kubernetes.mdx => kubernetes.mdx}
(99%)
rename docs/docs/installation/{installing-superset-from-pypi.mdx => pypi.mdx}
(98%)
delete mode 100644 docs/docs/miscellaneous/_category_.json
delete mode 100644 docs/docs/security/_category_.json
rename docs/docs/{miscellaneous => using-superset}/chart-params.mdx (100%)
rename docs/docs/{creating-charts-dashboards =>
using-superset}/creating-your-first-dashboard.mdx (97%)
rename docs/docs/{creating-charts-dashboards =>
using-superset}/exploring-data.mdx (100%)
copy superset-frontend/src/components/Table/cell-renderers/NullCell/index.tsx
=> docs/src/components/InteractiveERDSVG.jsx (69%)
create mode 100644 docs/static/img/erd.svg
create mode 100644 scripts/erd/erd.puml
create mode 100644 scripts/erd/erd.py
copy docs/static/.nojekyll => scripts/erd/erd.svg (100%)
create mode 100644 scripts/erd/erd.template.puml
create mode 100644 scripts/templates/erd.plantuml.template
delete mode 100644 superset/commands/database/csv_import.py
copy superset/{advanced_data_type => commands/database/uploaders}/__init__.py
(100%)
rename superset/commands/database/{excel_import.py => uploaders/base.py} (65%)
create mode 100644 superset/commands/database/uploaders/csv_reader.py
create mode 100644 superset/commands/database/uploaders/excel_reader.py
copy superset/translations/{en => ar}/LC_MESSAGES/messages.json (96%)
copy superset/translations/{messages.pot => ar/LC_MESSAGES/messages.po} (99%)
delete mode 100644
tests/integration_tests/databases/commands/csv_upload_test.py
delete mode 100644
tests/integration_tests/databases/commands/excel_upload_test.py
create mode 100644 tests/integration_tests/databases/commands/upload_test.py
copy {superset/advanced_data_type =>
tests/unit_tests/commands/databases}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/databases/csv_reader_test.py
create mode 100644 tests/unit_tests/commands/databases/excel_reader_test.py