This is an automated email from the ASF dual-hosted git repository. beto pushed a commit to branch fix_ro_tags in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
commit f34605ea1691183c27d3942c06ef4097a071898e Merge: 41e96be adec20d Author: Dave Smith <dave.a.sm...@gmail.com> AuthorDate: Wed Mar 11 11:04:04 2020 -0700 Merge pull request #97 from lyft/mergeApachec0f0d_03112020 reintegrate from apache@c0f0d45 Mar 11, 2020 .gitignore | 3 - .travis.yml | 11 +- CONTRIBUTING.md | 182 +- LICENSE.txt | 6 +- NOTICE | 2 +- README.md | 32 +- RELEASING/Dockerfile.from_local_tarball | 2 +- RELEASING/Dockerfile.from_svn_tarball | 2 +- RELEASING/README.md | 77 +- RELEASING/from_tarball_entrypoint.sh | 2 +- RELEASING/make_tarball.sh | 5 +- RELEASING/send_email.py | 4 +- RELEASING/set_release_env.sh | 25 +- UPDATING.md | 32 +- docs/installation.rst | 24 +- docs/security.rst | 23 + lyft_changes.txt | 21 +- requirements-dev.txt | 2 +- requirements.txt | 82 +- setup.cfg | 6 + setup.py | 4 +- superset-frontend/.eslintignore | 2 + superset-frontend/.eslintrc | 89 - superset-frontend/.eslintrc.js | 167 + superset-frontend/.gitignore | 4 + superset-frontend/babel.config.js | 60 + .../cypress/integration/dashboard/edit_mode.js | 3 +- .../cypress/integration/dashboard/filter.js | 6 +- .../cypress/integration/dashboard/load.js | 8 +- .../cypress/integration/dashboard/save.js | 4 +- .../cypress/integration/dashboard/tabs.js | 10 +- .../cypress/integration/dashboard/url_params.js | 4 +- .../cypress/integration/explore/chart.test.js | 14 +- superset-frontend/package-lock.json | 4917 ++++++++++---------- superset-frontend/package.json | 109 +- .../javascripts/components/AnchorLink_spec.jsx | 14 +- .../components/ListView/ListView_spec.jsx | 182 +- .../components/FilterTooltipWrapper_spec.jsx | 10 +- .../dashboard/components/MissingChart_spec.jsx | 6 - .../dashboard/fixtures/mockDashboardInfo.js | 5 +- .../javascripts/sqllab/ShareSqlLabQuery_spec.jsx | 147 +- .../spec/javascripts/sqllab/Timer_spec.jsx | 9 +- .../javascripts/utils/getClientErrorObject_spec.js | 2 +- .../javascripts/utils/parseCookie_spec.ts} | 47 +- .../spec/javascripts/utils/safeStringify_spec.ts | 10 +- superset-frontend/src/SqlLab/components/Link.jsx | 72 - superset-frontend/src/SqlLab/components/Link.tsx | 67 + .../src/SqlLab/components/ResultSet.jsx | 52 +- .../src/SqlLab/components/ShareSqlLabQuery.jsx | 25 + superset-frontend/src/SqlLab/main.less | 2 + superset-frontend/src/SqlLab/utils/sqlKeywords.ts | 2 +- superset-frontend/src/chart/Chart.jsx | 5 + superset-frontend/src/chart/ChartRenderer.jsx | 12 +- superset-frontend/src/chart/chartAction.js | 32 +- .../src/components/ConfirmStatusChange.tsx | 17 +- .../src/components/ListView/ListView.tsx | 265 +- .../src/components/ListView/TableCollection.tsx | 65 +- superset-frontend/src/components/ListView/types.ts | 45 +- superset-frontend/src/components/ListView/utils.ts | 43 +- superset-frontend/src/components/Menu/Menu.jsx | 12 +- .../src/dashboard/actions/dashboardState.js | 16 +- .../src/dashboard/components/Dashboard.jsx | 8 +- .../src/dashboard/components/Header.jsx | 15 +- .../src/dashboard/components/MissingChart.jsx | 5 - .../src/dashboard/components/SliceHeader.jsx | 3 + .../dashboard/components/SliceHeaderControls.jsx | 6 +- .../dashboard/components/gridComponents/Chart.jsx | 10 +- .../components/gridComponents/ChartHolder.jsx | 3 + .../components/gridComponents/Markdown.jsx | 8 + .../dashboard/containers/DashboardComponent.jsx | 4 +- .../src/dashboard/reducers/getInitialState.js | 15 +- .../dashboard/stylesheets/components/chart.less | 6 +- .../src/dashboard/stylesheets/dashboard.less | 1 + .../src/dashboard/stylesheets/popover-menu.less | 3 +- .../src/dashboard/util/componentIsResizable.js | 12 +- .../src/dashboard/util/componentTypes.js | 2 - superset-frontend/src/dashboard/util/constants.js | 8 - .../dashboard/util/getDetailedComponentWidth.js | 4 +- .../src/dashboard/util/isValidChild.js | 6 - .../src/dashboard/util/newComponentFactory.js | 2 - .../src/dashboard/util/shouldWrapChildInRow.js | 3 - .../src/datasource/DatasourceEditor.jsx | 12 +- .../src/explore/controlPanels/BigNumber.js | 9 + .../src/explore/controlPanels/Bullet.js | 1 - .../src/explore/controlPanels/sections.jsx | 2 +- superset-frontend/src/explore/controls.jsx | 2 +- superset-frontend/src/featureFlags.ts | 1 + superset-frontend/src/modules/utils.js | 61 - .../src/setup/{setupApp.js => setupApp.ts} | 23 +- superset-frontend/src/setup/setupClient.js | 6 +- .../src/types/react-table-config.d.ts | 2 + superset-frontend/src/utils/common.js | 10 +- .../{.babelrc => src/utils/parseCookie.ts} | 25 +- superset-frontend/src/utils/safeStringify.ts | 4 +- .../src/views/chartList/ChartList.tsx | 289 +- .../src/views/dashboardList/DashboardList.tsx | 296 +- .../stylesheets/fonts/FiraCode/specimen.less | 59 + .../fonts/FiraCode/woff/FiraCode-Bold.woff | Bin 0 -> 159636 bytes .../fonts/FiraCode/woff/FiraCode-Light.woff | Bin 0 -> 144956 bytes .../fonts/FiraCode/woff/FiraCode-Medium.woff | Bin 0 -> 146332 bytes .../fonts/FiraCode/woff/FiraCode-Regular.woff | Bin 0 -> 146868 bytes .../fonts/FiraCode/woff/FiraCode-Retina.woff | Bin 0 -> 145500 bytes .../fonts/FiraCode/woff/FiraCode-VF.woff | Bin 0 -> 130108 bytes .../fonts/FiraCode/woff2/FiraCode-Bold.woff2 | Bin 0 -> 122208 bytes .../fonts/FiraCode/woff2/FiraCode-Light.woff2 | Bin 0 -> 113032 bytes .../fonts/FiraCode/woff2/FiraCode-Medium.woff2 | Bin 0 -> 113720 bytes .../fonts/FiraCode/woff2/FiraCode-Regular.woff2 | Bin 0 -> 114456 bytes .../fonts/FiraCode/woff2/FiraCode-Retina.woff2 | Bin 0 -> 113088 bytes .../fonts/FiraCode/woff2/FiraCode-VF.woff2 | Bin 0 -> 106584 bytes .../stylesheets/fonts/InterUI/Inter-Black.woff | Bin 0 -> 140036 bytes .../stylesheets/fonts/InterUI/Inter-Black.woff2 | Bin 0 -> 104524 bytes .../fonts/InterUI/Inter-BlackItalic.woff | Bin 0 -> 145924 bytes .../fonts/InterUI/Inter-BlackItalic.woff2 | Bin 0 -> 109900 bytes .../stylesheets/fonts/InterUI/Inter-Bold.woff | Bin 0 -> 143708 bytes .../stylesheets/fonts/InterUI/Inter-Bold.woff2 | Bin 0 -> 107400 bytes .../fonts/InterUI/Inter-BoldItalic.woff | Bin 0 -> 149420 bytes .../fonts/InterUI/Inter-BoldItalic.woff2 | Bin 0 -> 112580 bytes .../stylesheets/fonts/InterUI/Inter-ExtraBold.woff | Bin 0 -> 143552 bytes .../fonts/InterUI/Inter-ExtraBold.woff2 | Bin 0 -> 107552 bytes .../fonts/InterUI/Inter-ExtraBoldItalic.woff | Bin 0 -> 149196 bytes .../fonts/InterUI/Inter-ExtraBoldItalic.woff2 | Bin 0 -> 112876 bytes .../fonts/InterUI/Inter-ExtraLight.woff | Bin 0 -> 141864 bytes .../fonts/InterUI/Inter-ExtraLight.woff2 | Bin 0 -> 105960 bytes .../fonts/InterUI/Inter-ExtraLightItalic.woff | Bin 0 -> 148688 bytes .../fonts/InterUI/Inter-ExtraLightItalic.woff2 | Bin 0 -> 112056 bytes .../stylesheets/fonts/InterUI/Inter-Italic.woff | Bin 0 -> 142744 bytes .../stylesheets/fonts/InterUI/Inter-Italic.woff2 | Bin 0 -> 107508 bytes .../stylesheets/fonts/InterUI/Inter-Light.woff | Bin 0 -> 141528 bytes .../stylesheets/fonts/InterUI/Inter-Light.woff2 | Bin 0 -> 105640 bytes .../fonts/InterUI/Inter-LightItalic.woff | Bin 0 -> 148436 bytes .../fonts/InterUI/Inter-LightItalic.woff2 | Bin 0 -> 111968 bytes .../stylesheets/fonts/InterUI/Inter-Medium.woff | Bin 0 -> 142836 bytes .../stylesheets/fonts/InterUI/Inter-Medium.woff2 | Bin 0 -> 106720 bytes .../fonts/InterUI/Inter-MediumItalic.woff | Bin 0 -> 149184 bytes .../fonts/InterUI/Inter-MediumItalic.woff2 | Bin 0 -> 112504 bytes .../stylesheets/fonts/InterUI/Inter-Regular.woff | Bin 0 -> 134652 bytes .../stylesheets/fonts/InterUI/Inter-Regular.woff2 | Bin 0 -> 100124 bytes .../stylesheets/fonts/InterUI/Inter-SemiBold.woff | Bin 0 -> 143248 bytes .../stylesheets/fonts/InterUI/Inter-SemiBold.woff2 | Bin 0 -> 107232 bytes .../fonts/InterUI/Inter-SemiBoldItalic.woff | Bin 0 -> 149276 bytes .../fonts/InterUI/Inter-SemiBoldItalic.woff2 | Bin 0 -> 112552 bytes .../stylesheets/fonts/InterUI/Inter-Thin.woff | Bin 0 -> 136952 bytes .../stylesheets/fonts/InterUI/Inter-Thin.woff2 | Bin 0 -> 101408 bytes .../fonts/InterUI/Inter-ThinItalic.woff | Bin 0 -> 144412 bytes .../fonts/InterUI/Inter-ThinItalic.woff2 | Bin 0 -> 107496 bytes .../fonts/InterUI/Inter-italic.var.woff2 | Bin 0 -> 240688 bytes .../fonts/InterUI/Inter-roman.var.woff2 | Bin 0 -> 226368 bytes .../stylesheets/fonts/InterUI/Inter.var.woff2 | Bin 0 -> 316604 bytes .../stylesheets/fonts/InterUI/specimen.less | 210 + .../stylesheets/fonts/Roboto-Regular.woff | Bin 89828 -> 0 bytes .../stylesheets/fonts/Roboto-Regular.woff2 | Bin 64832 -> 0 bytes .../less/fonts.less} | 39 +- superset-frontend/stylesheets/less/index.less | 1 + superset-frontend/stylesheets/less/variables.less | 12 +- superset-frontend/stylesheets/superset.less | 1 + superset-frontend/tsconfig.json | 26 +- superset-frontend/tslint.json | 14 - superset-frontend/webpack.config.js | 18 +- superset/app.py | 18 +- superset/assets/version_info.json | 0 .../dremio.py => commands/__init__.py} | 22 - .../dremio.py => commands/base.py} | 37 +- superset/commands/exceptions.py | 71 + superset/common/query_context.py | 5 +- superset/common/query_object.py | 5 + superset/config.py | 56 +- superset/connectors/base/models.py | 6 +- superset/connectors/druid/models.py | 2 +- superset/connectors/sqla/models.py | 89 +- superset/connectors/sqla/views.py | 38 +- .../dremio.py => datasets/__init__.py} | 22 - superset/datasets/api.py | 265 ++ .../dremio.py => datasets/commands/__init__.py} | 22 - superset/datasets/commands/base.py | 43 + superset/datasets/commands/create.py | 83 + superset/datasets/commands/delete.py | 61 + superset/datasets/commands/exceptions.py | 103 + superset/datasets/commands/update.py | 90 + superset/datasets/dao.py | 125 + superset/datasets/schemas.py | 42 + superset/db_engine_specs/athena.py | 2 +- superset/db_engine_specs/base.py | 188 +- superset/db_engine_specs/bigquery.py | 46 +- superset/db_engine_specs/clickhouse.py | 2 +- superset/db_engine_specs/db2.py | 2 +- superset/db_engine_specs/dremio.py | 2 +- superset/db_engine_specs/drill.py | 7 +- superset/db_engine_specs/druid.py | 11 +- superset/db_engine_specs/elasticsearch.py | 2 +- superset/db_engine_specs/exasol.py | 6 +- superset/db_engine_specs/hana.py | 2 +- superset/db_engine_specs/hive.py | 60 +- superset/db_engine_specs/impala.py | 2 +- superset/db_engine_specs/kylin.py | 2 +- superset/db_engine_specs/mssql.py | 8 +- superset/db_engine_specs/mysql.py | 10 +- superset/db_engine_specs/oracle.py | 17 +- superset/db_engine_specs/pinot.py | 42 +- superset/db_engine_specs/postgres.py | 6 +- superset/db_engine_specs/presto.py | 68 +- superset/db_engine_specs/snowflake.py | 31 +- superset/db_engine_specs/sqlite.py | 4 +- superset/db_engine_specs/teradata.py | 2 +- superset/examples/birth_names.py | 45 +- superset/examples/world_bank.py | 32 +- .../0a6f12f60c73_add_role_level_security.py | 61 + .../3325d4caccc8_dashboard_scoped_filters.py | 112 + ...401_add_tmp_schema_name_to_the_query_object.py} | 40 +- superset/models/core.py | 41 +- superset/models/dashboard.py | 57 +- superset/models/helpers.py | 5 + superset/models/slice.py | 6 + superset/models/sql_lab.py | 1 + superset/result_set.py | 12 +- .../dremio.py => security/analytics_db_safety.py} | 26 +- superset/security/manager.py | 62 +- superset/sql_lab.py | 64 +- superset/sql_parse.py | 35 +- superset/sql_validators/presto_db.py | 4 +- superset/tasks/cache.py | 16 +- .../appbuilder/general/security/login_oauth.html | 33 - superset/utils/core.py | 36 +- .../utils/dashboard_filter_scopes_converter.py | 89 + superset/utils/feature_flag_manager.py | 2 +- superset/views/base_api.py | 27 +- superset/views/base_schemas.py | 4 +- superset/views/chart/api.py | 22 +- superset/views/core.py | 245 +- superset/views/dashboard/api.py | 26 +- superset/views/database/api.py | 102 +- superset/views/database/decorators.py | 62 + superset/views/database/mixins.py | 5 +- superset/views/database/validators.py | 6 +- superset/views/datasource.py | 19 +- superset/viz.py | 208 +- tests/base_tests.py | 34 +- tests/celery_tests.py | 148 +- tests/chart_api_tests.py | 6 +- tests/core_tests.py | 120 +- tests/dashboard_api_tests.py | 4 +- tests/dashboard_tests.py | 56 +- tests/database_api_tests.py | 78 +- tests/dataset_api_tests.py | 450 ++ tests/datasource_tests.py | 28 + tests/db_engine_specs/base_engine_spec_tests.py | 6 +- tests/db_engine_specs/bigquery_tests.py | 61 +- tests/db_engine_specs/oracle_tests.py | 5 + tests/db_engine_specs/snowflake_tests.py | 28 +- tests/druid_tests.py | 4 +- tests/fixtures/datasource.py | 1 + tests/import_export_tests.py | 17 +- tests/result_set_tests.py | 29 +- .../security/analytics_db_safety_tests.py | 28 +- tests/security_tests.py | 77 +- tests/sql_parse_tests.py | 17 +- tests/sqla_models_tests.py | 48 +- tests/sqllab_tests.py | 36 +- tests/strategy_tests.py | 18 +- tests/superset_test_config.py | 4 +- .../superset_test_config_sqllab_backend_persist.py | 2 +- tests/viz_tests.py | 140 +- 261 files changed, 8532 insertions(+), 4500 deletions(-)