You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2020/02/10 01:54:09 UTC

[incubator-superset] branch master updated: SIP-32: Moving frontend code to the base of the repo (#9098)

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

maximebeauchemin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 2913063  SIP-32: Moving frontend code to the base of the repo (#9098)
2913063 is described below

commit 291306392443a5a0d0e2ee0cc4a95d37c56d4589
Author: David Aaron Suddjian <18...@users.noreply.github.com>
AuthorDate: Sun Feb 9 17:53:56 2020 -0800

    SIP-32: Moving frontend code to the base of the repo (#9098)
    
    * move assets out, get webpack dev working
    
    * update docs to reference superset-frontend
    
    * draw the rest of the owl
    
    * fix docs
    
    * fix webpack script
    
    * rats
    
    * correct docs
    
    * fix tox dox
---
 .dockerignore                                      |   6 +-
 .fossa.yml                                         |   4 +-
 .gitignore                                         |  10 +-
 .rat-excludes                                      |   2 +
 .travis.yml                                        |   2 +-
 CONTRIBUTING.md                                    |  26 +-
 Dockerfile                                         |  14 +-
 MANIFEST.in                                        |  13 +-
 README.md                                          |  12 +-
 RELEASING/Dockerfile.from_local_tarball            |   2 +-
 RELEASING/Dockerfile.from_svn_tarball              |   2 +-
 RELEASING/README.md                                |  30 +-
 RELEASING/make_tarball_entrypoint.sh               |   4 +-
 docker-compose.yml                                 |   2 +-
 docs/admintutorial.rst                             | 210 ++++++------
 docs/build.sh                                      |   5 +-
 docs/druid.rst                                     |   2 +-
 docs/gallery.rst                                   |  95 +++--
 docs/images                                        |   2 +-
 docs/index.rst                                     |  12 +-
 docs/installation.rst                              |   2 +-
 docs/security.rst                                  |   2 +-
 docs/sqllab.rst                                    |   2 +-
 docs/usertutorial.rst                              |  61 ++--
 docs/visualization.rst                             |  24 +-
 pypi_push.sh                                       |   4 +-
 scripts/check_license.sh                           |   3 -
 setup.py                                           |   6 +-
 {superset/assets => superset-frontend}/.babelrc    |   0
 .../assets => superset-frontend}/.eslintignore     |   2 +-
 {superset/assets => superset-frontend}/.eslintrc   |   0
 {superset/assets => superset-frontend}/.prettierrc |   0
 .../branding/superset-logo-horiz-apache.png        | Bin
 .../branding/superset-logo-horiz-apache.svg        |   0
 .../branding/superset-logo-horiz.png               | Bin
 .../branding/superset-logo-horiz.svg               |   0
 .../branding/superset-logo-stacked-apache.png      | Bin
 .../branding/superset-logo-stacked-apache.svg      |   0
 .../branding/superset-logo-stacked.png             | Bin
 .../branding/superset-logo-stacked.svg             |   0
 .../cypress-base/cypress.json                      |   0
 .../cypress-base/cypress/.eslintrc                 |   0
 .../cypress-base/cypress/fixtures/example.json     |   0
 .../cypress/integration/dashboard/controls.js      |   0
 .../integration/dashboard/dashboard.helper.js      |   0
 .../cypress/integration/dashboard/edit_mode.js     |   0
 .../cypress/integration/dashboard/fav_star.js      |   0
 .../cypress/integration/dashboard/filter.js        |   0
 .../cypress/integration/dashboard/index.test.js    |   0
 .../cypress/integration/dashboard/load.js          |   0
 .../cypress/integration/dashboard/save.js          |   0
 .../cypress/integration/dashboard/tabs.js          |   0
 .../cypress/integration/dashboard/url_params.js    |   0
 .../cypress/integration/explore/chart.test.js      |   0
 .../cypress/integration/explore/control.test.js    |   0
 .../cypress/integration/explore/link.test.js       |   0
 .../integration/explore/visualizations/area.js     |   0
 .../explore/visualizations/big_number.js           |   0
 .../explore/visualizations/big_number_total.js     |   0
 .../integration/explore/visualizations/box_plot.js |   0
 .../integration/explore/visualizations/bubble.js   |   0
 .../integration/explore/visualizations/compare.js  |   0
 .../integration/explore/visualizations/dist_bar.js |   0
 .../explore/visualizations/dual_line.js            |   0
 .../explore/visualizations/filter_box.js           |   0
 .../explore/visualizations/histogram.js            |   0
 .../explore/visualizations/index.test.js           |   0
 .../integration/explore/visualizations/line.js     |   0
 .../integration/explore/visualizations/pie.js      |   0
 .../explore/visualizations/pivot_table.js          |   0
 .../integration/explore/visualizations/sankey.js   |   0
 .../explore/visualizations/shared.helper.js        |   0
 .../integration/explore/visualizations/sunburst.js |   0
 .../integration/explore/visualizations/table.js    |   0
 .../explore/visualizations/time_table.js           |   0
 .../integration/explore/visualizations/treemap.js  |   0
 .../explore/visualizations/world_map.js            |   0
 .../cypress/integration/sqllab/index.test.js       |   0
 .../cypress/integration/sqllab/query.js            |   0
 .../cypress/integration/sqllab/sourcePanel.js      |   0
 .../cypress/integration/sqllab/sqllab.helper.js    |   0
 .../cypress/integration/sqllab/tabs.js             |   0
 .../cypress-base/cypress/plugins/index.js          |   0
 .../cypress-base/cypress/support/commands.js       |   0
 .../cypress-base/cypress/support/index.js          |   0
 .../cypress-base/cypress/utils/readResponseBlob.js |   0
 .../cypress-base/package-lock.json                 |   0
 .../cypress-base/package.json                      |   0
 .../assets => superset-frontend}/cypress_build.sh  |   2 +-
 .../images/apache_feather.png                      | Bin
 .../assets => superset-frontend}/images/babies.png | Bin
 .../assets => superset-frontend}/images/bubble.png | Bin
 .../assets => superset-frontend}/images/cloud.png  | Bin
 .../images/create_role.png                         | Bin
 .../assets => superset-frontend}/images/dash.png   | Bin
 .../images/druid_agg.png                           | Bin
 .../images/favicon.png                             | Bin
 .../images/loading.gif                             | Bin
 .../assets => superset-frontend}/images/noimg.png  | Bin
 .../assets => superset-frontend}/images/s.png      | Bin
 .../images/screenshots/bank_dash.png               | Bin
 .../images/screenshots/deckgl_dash.png             | Bin
 .../images/screenshots/explore.png                 | Bin
 .../images/screenshots/sqllab.png                  | Bin
 .../images/screenshots/visualizations.png          | Bin
 .../images/superset-logo@2x.png                    | Bin
 .../images/superset.png                            | Bin
 .../images/superset_screenshot.png                 | Bin
 .../images/tutorial/add_db.png                     | Bin
 .../tutorial/tutorial_01_sources_database.png      | Bin
 .../images/tutorial/tutorial_02_add_database.png   | Bin
 .../images/tutorial/tutorial_03_database_name.png  | Bin
 .../tutorial_04_sqlalchemy_connection_string.png   | Bin
 .../tutorial/tutorial_05_connection_popup.png      | Bin
 .../images/tutorial/tutorial_06_list_of_tables.png | Bin
 .../images/tutorial/tutorial_07_save_button.png    | Bin
 .../images/tutorial/tutorial_08_sources_tables.png | Bin
 .../images/tutorial/tutorial_09_add_new_table.png  | Bin
 .../images/tutorial/tutorial_10_table_name.png     | Bin
 .../images/tutorial/tutorial_11_choose_db.png      | Bin
 .../tutorial_12_table_creation_success_msg.png     | Bin
 .../tutorial/tutorial_13_edit_table_config.png     | Bin
 .../images/tutorial/tutorial_14_field_config.png   | Bin
 .../tutorial/tutorial_15_click_table_name.png      | Bin
 .../tutorial/tutorial_16_datasource_chart_type.png | Bin
 .../tutorial/tutorial_17_choose_time_range.png     | Bin
 .../images/tutorial/tutorial_18_choose_metric.png  | Bin
 .../images/tutorial/tutorial_19_click_query.png    | Bin
 .../tutorial/tutorial_20_count_star_result.png     | Bin
 .../images/tutorial/tutorial_21_group_by.png       | Bin
 .../tutorial/tutorial_22_group_by_result.png       | Bin
 .../tutorial_23_group_by_more_dimensions.png       | Bin
 .../images/tutorial/tutorial_24_max_metric.png     | Bin
 .../tutorial/tutorial_25_max_temp_filter.png       | Bin
 .../images/tutorial/tutorial_26_row_limit.png      | Bin
 .../tutorial/tutorial_27_top_10_max_temps.png      | Bin
 .../images/tutorial/tutorial_28_bar_chart.png      | Bin
 .../tutorial_29_bar_chart_series_metrics.png       | Bin
 .../tutorial/tutorial_30_bar_chart_results.png     | Bin
 .../tutorial_31_save_slice_to_dashboard.png        | Bin
 .../tutorial_32_save_slice_confirmation.png        | Bin
 .../images/tutorial/tutorial_33_dashboard.png      | Bin
 .../tutorial/tutorial_34_weather_dashboard.png     | Bin
 .../tutorial/tutorial_35_slice_on_dashboard.png    | Bin
 .../tutorial/tutorial_36_adjust_dimensions.gif     | Bin
 .../images/usertutorial/add_new_chart.png          | Bin
 .../usertutorial/advanced_analytics_base.png       | Bin
 .../images/usertutorial/annotation.png             | Bin
 .../images/usertutorial/annotation_settings.png    | Bin
 .../usertutorial/average_aggregate_for_cost.png    | Bin
 .../usertutorial/blue_bar_insert_component.png     | Bin
 .../images/usertutorial/chose_a_datasource.png     | Bin
 .../usertutorial/csv_to_database_configuration.png | Bin
 .../images/usertutorial/edit-record.png            | Bin
 .../images/usertutorial/edit_annotation.png        | Bin
 .../usertutorial/filter_on_origin_country.png      | Bin
 .../images/usertutorial/markdown.png               | Bin
 .../usertutorial/no_filter_on_time_filter.png      | Bin
 .../images/usertutorial/parse_dates_column.png     | Bin
 .../images/usertutorial/publish_dashboard.png      | Bin
 .../images/usertutorial/resample.png               | Bin
 .../resize_tutorial_table_on_dashboard.png         | Bin
 .../images/usertutorial/rolling_mean.png           | Bin
 .../images/usertutorial/save_tutorial_table.png    | Bin
 .../usertutorial/select_dates_pivot_table.png      | Bin
 .../select_table_visualization_type.png            | Bin
 .../images/usertutorial/sum_cost_column.png        | Bin
 .../time_comparison_absolute_difference.png        | Bin
 .../usertutorial/time_comparison_two_series.png    | Bin
 .../images/usertutorial/tutorial_line_chart.png    | Bin
 .../images/usertutorial/tutorial_pivot_table.png   | Bin
 .../images/usertutorial/tutorial_table.png         | Bin
 .../images/usertutorial/upload_a_csv.png           | Bin
 .../images/viz_thumbnails/area.png                 | Bin
 .../images/viz_thumbnails/bar.png                  | Bin
 .../images/viz_thumbnails/big_number.png           | Bin
 .../images/viz_thumbnails/big_number_total.png     | Bin
 .../images/viz_thumbnails/box_plot.png             | Bin
 .../images/viz_thumbnails/bubble.png               | Bin
 .../images/viz_thumbnails/bullet.png               | Bin
 .../images/viz_thumbnails/cal_heatmap.png          | Bin
 .../images/viz_thumbnails/chord.png                | Bin
 .../images/viz_thumbnails/compare.png              | Bin
 .../images/viz_thumbnails/country_map.png          | Bin
 .../images/viz_thumbnails/deck_arc.png             | Bin
 .../images/viz_thumbnails/deck_geojson.png         | Bin
 .../images/viz_thumbnails/deck_grid.png            | Bin
 .../images/viz_thumbnails/deck_hex.png             | Bin
 .../images/viz_thumbnails/deck_multi.png           | Bin
 .../images/viz_thumbnails/deck_path.png            | Bin
 .../images/viz_thumbnails/deck_polygon.png         | Bin
 .../images/viz_thumbnails/deck_scatter.png         | Bin
 .../images/viz_thumbnails/deck_screengrid.png      | Bin
 .../images/viz_thumbnails/directed_force.png       | Bin
 .../images/viz_thumbnails/dist_bar.png             | Bin
 .../images/viz_thumbnails/dual_line.png            | Bin
 .../images/viz_thumbnails/event_flow.png           | Bin
 .../images/viz_thumbnails/filter_box.png           | Bin
 .../images/viz_thumbnails/heatmap.png              | Bin
 .../images/viz_thumbnails/histogram.png            | Bin
 .../images/viz_thumbnails/horizon.png              | Bin
 .../images/viz_thumbnails/iframe.png               | Bin
 .../images/viz_thumbnails/line.png                 | Bin
 .../images/viz_thumbnails/line_multi.png           | Bin
 .../images/viz_thumbnails/mapbox.png               | Bin
 .../images/viz_thumbnails/markup.png               | Bin
 .../images/viz_thumbnails/multi.png                | Bin
 .../images/viz_thumbnails/paired_ttest.png         | Bin
 .../images/viz_thumbnails/para.png                 | Bin
 .../images/viz_thumbnails/partition.png            | Bin
 .../images/viz_thumbnails/pie.png                  | Bin
 .../images/viz_thumbnails/pivot_table.png          | Bin
 .../images/viz_thumbnails/rose.png                 | Bin
 .../images/viz_thumbnails/sankey.png               | Bin
 .../images/viz_thumbnails/separator.png            | Bin
 .../images/viz_thumbnails/sunburst.png             | Bin
 .../images/viz_thumbnails/table.png                | Bin
 .../images/viz_thumbnails/time_pivot.png           | Bin
 .../images/viz_thumbnails/time_table.png           | Bin
 .../images/viz_thumbnails/treemap.png              | Bin
 .../images/viz_thumbnails/word_cloud.png           | Bin
 .../images/viz_thumbnails/world_map.png            | Bin
 .../assets => superset-frontend}/jest.config.js    |   0
 {superset/assets => superset-frontend}/js_build.sh |   0
 .../assets => superset-frontend}/package-lock.json | 381 ++++++++++++++++++++-
 .../assets => superset-frontend}/package.json      |   5 +-
 .../assets => superset-frontend}/spec/.eslintrc    |   0
 .../spec/__mocks__/fileMock.js                     |   0
 .../spec/__mocks__/styleMock.js                    |   0
 .../spec/fixtures/mockDatasource.js                |   0
 .../spec/helpers/setupSupersetClient.js            |   0
 .../spec/helpers/shim.js                           |   0
 .../spec/javascripts/CRUD/CollectionTable_spec.jsx |   0
 .../addSlice/AddSliceContainer_spec.jsx            |   0
 .../spec/javascripts/chart/ChartRenderer_spec.jsx  |   0
 .../spec/javascripts/chart/chartActions_spec.js    |   0
 .../spec/javascripts/chart/chartReducers_spec.js   |   0
 .../components/AlteredSliceTag_spec.jsx            |   0
 .../javascripts/components/AnchorLink_spec.jsx     |   0
 .../javascripts/components/AsyncSelect_spec.jsx    |   0
 .../javascripts/components/CachedLabel_spec.jsx    |   0
 .../spec/javascripts/components/Checkbox_spec.jsx  |   0
 .../javascripts/components/ColumnOption_spec.jsx   |   0
 .../components/ColumnTypeLabel_spec.jsx            |   0
 .../components/ConfirmStatusChange_spec.jsx        |   0
 .../components/CopyToClipboard_spec.jsx            |   0
 .../FilterableTable/FilterableTable_spec.jsx       |   0
 .../spec/javascripts/components/FormRow_spec.jsx   |   0
 .../components/ListView/ListView_spec.jsx          |   0
 .../spec/javascripts/components/Menu_spec.jsx      |   0
 .../javascripts/components/MetricOption_spec.jsx   |   0
 .../javascripts/components/ModalTrigger_spec.jsx   |   0
 .../javascripts/components/OnPasteSelect_spec.jsx  |   0
 .../components/OptionDescription_spec.jsx          |   0
 .../javascripts/components/PopoverSection_spec.jsx |   0
 .../javascripts/components/TableSelector_spec.jsx  |   0
 .../components/URLShortLinkButton_spec.jsx         |   0
 .../components/URLShortLinkModal_spec.jsx          |   0
 .../components/VirtualizedRendererWrap_spec.jsx    |   0
 .../spec/javascripts}/dashboard/.eslintrc          |   0
 .../dashboard/actions/dashboardLayout_spec.js      |   0
 .../dashboard/actions/dashboardState_spec.js       |   0
 .../dashboard/components/CodeModal_spec.jsx        |   0
 .../dashboard/components/CssEditor_spec.jsx        |   0
 .../dashboard/components/DashboardBuilder_spec.jsx |   0
 .../dashboard/components/DashboardGrid_spec.jsx    |   0
 .../dashboard/components/Dashboard_spec.jsx        |   0
 .../components/FilterIndicatorGroup_spec.jsx       |   0
 .../components/FilterIndicatorTooltip_spec.jsx     |   0
 .../dashboard/components/FilterIndicator_spec.jsx  |   0
 .../components/FilterIndicatorsContainer_spec.jsx  |   0
 .../components/FilterTooltipWrapper_spec.jsx       |   0
 .../components/HeaderActionsDropdown_spec.jsx      |   0
 .../dashboard/components/Header_spec.jsx           |   0
 .../dashboard/components/MissingChart_spec.jsx     |   0
 .../components/RefreshIntervalModal_spec.jsx       |   0
 .../dashboard/components/SliceAdder_spec.jsx       |   0
 .../components/dnd/DragDroppable_spec.jsx          |   0
 .../components/gridComponents/ChartHolder_spec.jsx |   0
 .../components/gridComponents/Chart_spec.jsx       |   0
 .../components/gridComponents/Column_spec.jsx      |   0
 .../components/gridComponents/Divider_spec.jsx     |   0
 .../components/gridComponents/Header_spec.jsx      |   0
 .../components/gridComponents/Markdown_spec.jsx    |   0
 .../components/gridComponents/Row_spec.jsx         |   0
 .../components/gridComponents/Tab_spec.jsx         |   0
 .../components/gridComponents/Tabs_spec.jsx        |   0
 .../new/DraggableNewComponent_spec.jsx             |   0
 .../gridComponents/new/NewColumn_spec.jsx          |   0
 .../gridComponents/new/NewDivider_spec.jsx         |   0
 .../gridComponents/new/NewHeader_spec.jsx          |   0
 .../components/gridComponents/new/NewRow_spec.jsx  |   0
 .../components/gridComponents/new/NewTabs_spec.jsx |   0
 .../dashboard/components/menu/HoverMenu_spec.jsx   |   0
 .../components/menu/WithPopoverMenu_spec.jsx       |   0
 .../resizable/ResizableContainer_spec.jsx          |   0
 .../components/resizable/ResizableHandle_spec.jsx  |   0
 .../dashboard/fixtures/mockChartQueries.js         |   0
 .../dashboard/fixtures/mockDashboardData.js        |   0
 .../dashboard/fixtures/mockDashboardFilters.js     |   0
 .../dashboard/fixtures/mockDashboardInfo.js        |   0
 .../dashboard/fixtures/mockDashboardLayout.js      |   0
 .../dashboard/fixtures/mockDashboardState.js       |   0
 .../dashboard/fixtures/mockSliceEntities.js        |   0
 .../javascripts/dashboard/fixtures/mockState.js    |   0
 .../javascripts/dashboard/fixtures/mockStore.js    |   0
 .../dashboard/helpers/WithDragDropContext.jsx      |   0
 .../dashboard/reducers/dashboardFilters_spec.js    |   0
 .../dashboard/reducers/dashboardLayout_spec.js     |   0
 .../dashboard/reducers/dashboardState_spec.js      |   0
 .../dashboard/reducers/sliceEntities_spec.js       |   0
 .../dashboard/util/componentIsResizable_spec.js    |   0
 .../javascripts/dashboard/util/dnd-reorder_spec.js |   0
 .../dashboard/util/dropOverflowsParent_spec.js     |   0
 .../util/findFirstParentContainer_spec.js          |   0
 .../dashboard/util/findParentId_spec.js            |   0
 .../util/findTabIndexByComponentId_spec.js         |   0
 .../getChartAndLabelComponentIdFromPath_spec.js    |   0
 .../dashboard/util/getChartIdsFromLayout_spec.js   |   0
 .../dashboard/util/getDashboardUrl_spec.js         |   0
 .../util/getDetailedComponentWidth_spec.js         |   0
 .../dashboard/util/getDropPosition_spec.js         |   0
 .../util/getFilterConfigsFromFormdata_spec.js      |   0
 .../util/getFilterScopeFromNodesTree_spec.js       |   0
 .../util/getFormDataWithExtraFilters_spec.js       |   0
 .../util/getLeafComponentIdFromPath_spec.js        |   0
 .../dashboard/util/isValidChild_spec.js            |   0
 .../dashboard/util/newComponentFactory_spec.js     |   0
 .../dashboard/util/newEntitiesFromDrop_spec.js     |   0
 .../util/updateComponentParentsList_spec.js        |   0
 .../datasource/ChangeDatasourceModal_spec.jsx      |   0
 .../datasource/DatasourceEditor_spec.jsx           |   0
 .../datasource/DatasourceModal_spec.jsx            |   0
 .../spec/javascripts/explore/AdhocFilter_spec.js   |   0
 .../spec/javascripts/explore/AdhocMetric_spec.js   |   0
 .../explore/components/AdhocFilterControl_spec.jsx |   0
 ...AdhocFilterEditPopoverSimpleTabContent_spec.jsx |   0
 .../AdhocFilterEditPopoverSqlTabContent_spec.jsx   |   0
 .../components/AdhocFilterEditPopover_spec.jsx     |   0
 .../explore/components/AdhocFilterOption_spec.jsx  |   0
 .../AdhocMetricEditPopoverTitle_spec.jsx           |   0
 .../components/AdhocMetricEditPopover_spec.jsx     |   0
 .../explore/components/AdhocMetricOption_spec.jsx  |   0
 .../components/AdhocMetricStaticOption_spec.jsx    |   0
 .../explore/components/AggregateOption_spec.jsx    |   0
 .../explore/components/BoundsControl_spec.jsx      |   0
 .../explore/components/CheckboxControl_spec.jsx    |   0
 .../explore/components/ColorPickerControl_spec.jsx |   0
 .../explore/components/ColorScheme_spec.jsx        |   0
 .../components/ControlPanelSection_spec.jsx        |   0
 .../components/ControlPanelsContainer_spec.jsx     |   0
 .../explore/components/ControlRow_spec.jsx         |   0
 .../explore/components/DatasourceControl_spec.jsx  |   0
 .../explore/components/DateFilterControl_spec.jsx  |   0
 .../explore/components/DisplayQueryButton_spec.jsx |   0
 .../explore/components/EmbedCodeButton_spec.jsx    |   0
 .../components/ExploreActionButtons_spec.jsx       |   0
 .../explore/components/ExploreChartHeader_spec.jsx |   0
 .../explore/components/ExploreChartPanel_spec.jsx  |   0
 .../components/ExploreViewContainer_spec.jsx       |   0
 .../components/FilterBoxItemControl_spec.jsx       |   0
 .../components/FilterDefinitionOption_spec.jsx     |   0
 .../components/FixedOrMetricControl_spec.jsx       |   0
 .../components/MetricDefinitionOption_spec.jsx     |   0
 .../components/MetricDefinitionValue_spec.jsx      |   0
 .../explore/components/MetricsControl_spec.jsx     |   0
 .../explore/components/QueryAndSaveBtns_spec.jsx   |   0
 .../explore/components/RowCountLabel_spec.jsx      |   0
 .../components/RunQueryActionButton_spec.jsx       |   0
 .../explore/components/SaveModal_spec.jsx          |   0
 .../explore/components/SelectControl_spec.jsx      |   0
 .../explore/components/TextArea_spec.jsx           |   0
 .../components/TimeSeriesColumnControl_spec.jsx    |   0
 .../explore/components/ViewportControl_spec.jsx    |   0
 .../explore/components/VizTypeControl_spec.jsx     |   0
 .../explore/components/withVerification_spec.jsx   |   0
 .../spec/javascripts/explore/controlUtils_spec.jsx |   0
 .../javascripts/explore/exploreActions_spec.js     |   0
 .../spec/javascripts/explore/store_spec.jsx        |   0
 .../spec/javascripts/explore/utils_spec.jsx        |   0
 .../spec/javascripts/messageToasts/.eslintrc       |   0
 .../components/ToastPresenter_spec.jsx             |   0
 .../messageToasts/components/Toast_spec.jsx        |   0
 .../javascripts/messageToasts/mockMessageToasts.js |   0
 .../messageToasts/reducers/messageToasts_spec.js   |   0
 .../utils/getToastsFromPyFlashMessages_spec.js     |   0
 .../spec/javascripts/middleware/logger_spec.js     |   0
 .../spec/javascripts/modules/dates_spec.js         |   0
 .../spec/javascripts/modules/utils_spec.jsx        |   0
 .../spec/javascripts/profile/App_spec.jsx          |   0
 .../javascripts/profile/CreatedContent_spec.jsx    |   0
 .../javascripts/profile/EditableTitle_spec.jsx     |   0
 .../spec/javascripts/profile/Favorites_spec.jsx    |   0
 .../javascripts/profile/RecentActivity_spec.jsx    |   0
 .../spec/javascripts/profile/Security_spec.jsx     |   0
 .../spec/javascripts/profile/UserInfo_spec.jsx     |   0
 .../spec/javascripts/profile/fixtures.jsx          |   0
 .../spec/javascripts/showSavedQuery/utils_spec.jsx |   0
 .../spec/javascripts/sqllab/App_spec.jsx           |   0
 .../spec/javascripts/sqllab/ColumnElement_spec.jsx |   0
 .../sqllab/ExploreResultsButton_spec.jsx           |   0
 .../javascripts/sqllab/HighlightedSql_spec.jsx     |   0
 .../spec/javascripts/sqllab/LimitControl_spec.jsx  |   0
 .../spec/javascripts/sqllab/Link_spec.jsx          |   0
 .../javascripts/sqllab/QueryAutoRefresh_spec.jsx   |   0
 .../spec/javascripts/sqllab/QuerySearch_spec.jsx   |   0
 .../javascripts/sqllab/QueryStateLabel_spec.jsx    |   0
 .../spec/javascripts/sqllab/QueryTable_spec.jsx    |   0
 .../spec/javascripts/sqllab/ResultSet_spec.jsx     |   0
 .../spec/javascripts/sqllab/SaveQuery_spec.jsx     |   0
 .../javascripts/sqllab/ShareSqlLabQuery_spec.jsx   |   0
 .../spec/javascripts/sqllab/SouthPane_spec.jsx     |   0
 .../javascripts/sqllab/SqlEditorLeftBar_spec.jsx   |   0
 .../spec/javascripts/sqllab/SqlEditor_spec.jsx     |   0
 .../spec/javascripts/sqllab/TabStatusIcon_spec.jsx |   0
 .../javascripts/sqllab/TabbedSqlEditors_spec.jsx   |   0
 .../spec/javascripts/sqllab/TableElement_spec.jsx  |   0
 .../spec/javascripts/sqllab/Timer_spec.jsx         |   0
 .../spec/javascripts/sqllab/actions/sqlLab_spec.js |   0
 .../spec/javascripts/sqllab/fixtures.js            |   0
 .../javascripts/sqllab/reducers/sqlLab_spec.js     |   0
 .../sqllab/utils/emptyQueryResults_spec.js         |   0
 .../spec/javascripts/utils/common_spec.jsx         |   0
 .../javascripts/utils/getClientErrorObject_spec.js |   0
 .../spec/javascripts/utils/safeStringify_spec.ts   |   0
 .../javascripts/views/chartList/ChartList_spec.jsx |   0
 .../views/dashboardList/DashboardList_spec.jsx     |   0
 .../javascripts/welcome/DashboardTable_spec.jsx    |   0
 .../spec/javascripts/welcome/Welcome_spec.jsx      |   0
 .../src/CRUD/CollectionTable.jsx                   |   0
 .../src/CRUD/Field.jsx                             |   0
 .../src/CRUD/Fieldset.jsx                          |   0
 .../src/CRUD/crud.less                             |   0
 .../assets => superset-frontend}/src/CRUD/utils.js |   0
 .../src/SqlLab/App.jsx                             |   0
 .../src/SqlLab/actions/sqlLab.js                   |   0
 .../src/SqlLab/components/AceEditorWrapper.jsx     |   0
 .../src/SqlLab/components/App.jsx                  |   0
 .../src/SqlLab/components/ColumnElement.jsx        |   0
 .../SqlLab/components/EstimateQueryCostButton.jsx  |   0
 .../src/SqlLab/components/ExploreResultsButton.jsx |   0
 .../src/SqlLab/components/HighlightedSql.jsx       |   0
 .../src/SqlLab/components/LimitControl.jsx         |   0
 .../src/SqlLab/components/Link.jsx                 |   0
 .../src/SqlLab/components/QueryAutoRefresh.jsx     |   0
 .../src/SqlLab/components/QueryHistory.jsx         |   0
 .../src/SqlLab/components/QuerySearch.jsx          |   0
 .../src/SqlLab/components/QueryStateLabel.jsx      |   0
 .../src/SqlLab/components/QueryTable.jsx           |   0
 .../src/SqlLab/components/ResultSet.jsx            |   0
 .../src/SqlLab/components/RunQueryActionButton.jsx |   0
 .../src/SqlLab/components/SaveQuery.jsx            |   0
 .../src/SqlLab/components/ScheduleQueryButton.jsx  |   0
 .../src/SqlLab/components/ShareSqlLabQuery.jsx     |   0
 .../src/SqlLab/components/ShowSQL.jsx              |   0
 .../src/SqlLab/components/SouthPane.jsx            |   0
 .../src/SqlLab/components/SqlEditor.jsx            |   0
 .../src/SqlLab/components/SqlEditorLeftBar.jsx     |   0
 .../src/SqlLab/components/TabStatusIcon.jsx        |   0
 .../src/SqlLab/components/TabbedSqlEditors.jsx     |   0
 .../src/SqlLab/components/TableElement.jsx         |   0
 .../src/SqlLab/components/TemplateParamsEditor.jsx |   0
 .../src/SqlLab/constants.js                        |   0
 .../src/SqlLab}/index.jsx                          |   0
 .../src/SqlLab/main.less                           |   0
 .../src/SqlLab/reducers/common.js                  |   0
 .../src/SqlLab/reducers/getInitialState.js         |   0
 .../src/SqlLab/reducers/index.js                   |   0
 .../src/SqlLab/reducers/localStorageUsage.js       |   0
 .../src/SqlLab/reducers/sqlLab.js                  |   0
 .../SqlLab/utils/reduxStateToLocalStorageHelper.js |   0
 .../src/SqlLab/utils/sqlKeywords.ts                |   0
 .../src/addSlice/AddSliceContainer.jsx             |   0
 .../src/addSlice/App.jsx                           |   0
 .../src/addSlice/index.jsx                         |   0
 .../src/chart/Chart.jsx                            |   0
 .../src/chart/ChartContainer.jsx                   |   0
 .../src/chart/ChartRenderer.jsx                    |   0
 .../src/chart/chart.less                           |   0
 .../src/chart/chartAction.js                       |   0
 .../src/chart/chartReducer.js                      |   0
 .../src/components/ActionMenuItem.jsx              |   0
 .../src/components/AlteredSliceTag.jsx             |   0
 .../src/components/AnchorLink.jsx                  |   0
 .../src/components/AsyncSelect.jsx                 |   0
 .../src/components/BootstrapSliderWrapper.jsx      |   0
 .../src/components/BootstrapSliderWrapper.less     |   0
 .../src/components/Button.jsx                      |   0
 .../src/components/CachedLabel.jsx                 |   0
 .../src/components/ChartIcon.jsx                   |   0
 .../src/components/Checkbox.jsx                    |   0
 .../src/components/CheckboxIcons.jsx               |   0
 .../src/components/ColumnOption.jsx                |   0
 .../src/components/ColumnTypeLabel.jsx             |   0
 .../src/components/ConfirmStatusChange.tsx         |   0
 .../src/components/CopyToClipboard.jsx             |   0
 .../src/components/EditableTitle.jsx               |   0
 .../src/components/ErrorBoundary.jsx               |   0
 .../src/components/FaveStar.jsx                    |   0
 .../src/components/FilterBadgeIcon.jsx             |   0
 .../src/components/FilterBadgeIcon.less            |   0
 .../components/FilterableTable/FilterableTable.jsx |   0
 .../FilterableTable/FilterableTableStyles.less     |   0
 .../src/components/FormRow.jsx                     |   0
 .../src/components/Hotkeys.jsx                     |   0
 .../src/components/IndeterminateCheckbox.jsx       |   0
 .../src/components/InfoTooltipWithTrigger.jsx      |   0
 .../src/components/ListView/ListView.tsx           |   0
 .../src/components/ListView/ListViewStyles.less    |   0
 .../src/components/ListView/TableCollection.tsx    |   0
 .../src/components/ListView/types.ts               |   0
 .../src/components/ListView/utils.ts               |   0
 .../src/components/Loading.jsx                     |   0
 .../src/components/Loading.less                    |   0
 .../src/components/Menu/LanguagePicker.jsx         |   0
 .../src/components/Menu/Menu.jsx                   |   0
 .../src/components/Menu/Menu.less                  |   0
 .../src/components/Menu/MenuObject.jsx             |   0
 .../src/components/Menu/NewMenu.jsx                |   0
 .../src/components/Menu/UserMenu.jsx               |   0
 .../src/components/MetricOption.jsx                |   0
 .../src/components/ModalTrigger.jsx                |   0
 .../src/components/OmniContainer.jsx               |   0
 .../src/components/OnPasteSelect.jsx               |   0
 .../src/components/OptionDescription.jsx           |   0
 .../src/components/PopoverSection.jsx              |   0
 .../src/components/RefreshChartOverlay.jsx         |   0
 .../src/components/RefreshLabel.jsx                |   0
 .../src/components/RefreshLabel.less               |   0
 .../src/components/StackTraceMessage.jsx           |   0
 .../src/components/TableLoader.jsx                 |   0
 .../src/components/TableSelector.jsx               |   0
 .../src/components/TableSelector.less              |   0
 .../src/components/Timer.jsx                       |   0
 .../src/components/TooltipWrapper.jsx              |   0
 .../src/components/URLShortLinkButton.jsx          |   0
 .../src/components/URLShortLinkModal.jsx           |   0
 .../src/components/VictoryTheme.js                 |   0
 .../src/components/VirtualizedRendererWrap.jsx     |   0
 .../src}/dashboard/.eslintrc                       |   0
 .../src/dashboard/App.jsx                          |   0
 .../src/dashboard/actions/dashboardFilters.js      |   0
 .../src/dashboard/actions/dashboardInfo.js         |   0
 .../src/dashboard/actions/dashboardLayout.js       |   0
 .../src/dashboard/actions/dashboardState.js        |   0
 .../src/dashboard/actions/datasources.js           |   0
 .../src/dashboard/actions/sliceEntities.js         |   0
 .../src/dashboard/components/AddSliceCard.jsx      |   0
 .../dashboard/components/BuilderComponentPane.jsx  |   0
 .../src/dashboard/components/CodeModal.jsx         |   0
 .../dashboard/components/ColorComponentPane.jsx    |   0
 .../src/dashboard/components/CssEditor.jsx         |   0
 .../src/dashboard/components/Dashboard.jsx         |   0
 .../src/dashboard/components/DashboardBuilder.jsx  |   0
 .../src/dashboard/components/DashboardGrid.jsx     |   0
 .../dashboard/components/DeleteComponentButton.jsx |   0
 .../dashboard/components/DeleteComponentModal.jsx  |   0
 .../src/dashboard/components/FilterIndicator.jsx   |   0
 .../dashboard/components/FilterIndicatorGroup.jsx  |   0
 .../components/FilterIndicatorTooltip.jsx          |   0
 .../components/FilterIndicatorsContainer.jsx       |   0
 .../dashboard/components/FilterTooltipWrapper.jsx  |   0
 .../src/dashboard/components/Header.jsx            |   0
 .../dashboard/components/HeaderActionsDropdown.jsx |   0
 .../src/dashboard/components/IconButton.jsx        |   0
 .../dashboard/components/InsertComponentPane.jsx   |   0
 .../src/dashboard/components/MissingChart.jsx      |   0
 .../src/dashboard/components/PropertiesModal.jsx   |   0
 .../src/dashboard/components/PublishedStatus.jsx   |   0
 .../dashboard/components/RefreshIntervalModal.jsx  |   0
 .../src/dashboard/components/SaveModal.jsx         |   0
 .../src/dashboard/components/SliceAdder.jsx        |   0
 .../src/dashboard/components/SliceHeader.jsx       |   0
 .../dashboard/components/SliceHeaderControls.jsx   |   0
 .../dashboard/components/UndoRedoKeylisteners.jsx  |   0
 .../components/dnd/AddSliceDragPreview.jsx         |   0
 .../src/dashboard/components/dnd/DragDroppable.jsx |   0
 .../src/dashboard/components/dnd/DragHandle.jsx    |   0
 .../components/dnd/dragDroppableConfig.js          |   0
 .../src/dashboard/components/dnd/handleDrop.js     |   0
 .../src/dashboard/components/dnd/handleHover.js    |   0
 .../components/filterscope/FilterFieldItem.jsx     |   0
 .../components/filterscope/FilterFieldTree.jsx     |   0
 .../components/filterscope/FilterScopeModal.jsx    |   0
 .../components/filterscope/FilterScopeSelector.jsx |   0
 .../components/filterscope/FilterScopeTree.jsx     |   0
 .../filterscope/renderFilterFieldTreeNodes.jsx     |   0
 .../filterscope/renderFilterScopeTreeNodes.jsx     |   0
 .../dashboard/components/filterscope/treeIcons.jsx |   0
 .../dashboard/components/gridComponents/Chart.jsx  |   0
 .../components/gridComponents/ChartHolder.jsx      |   0
 .../dashboard/components/gridComponents/Column.jsx |   0
 .../components/gridComponents/Divider.jsx          |   0
 .../dashboard/components/gridComponents/Header.jsx |   0
 .../components/gridComponents/Markdown.jsx         |   0
 .../dashboard/components/gridComponents/Row.jsx    |   0
 .../dashboard/components/gridComponents/Tab.jsx    |   0
 .../dashboard/components/gridComponents/Tabs.jsx   |   0
 .../dashboard/components/gridComponents/index.js   |   0
 .../gridComponents/new/DraggableNewComponent.jsx   |   0
 .../components/gridComponents/new/NewColumn.jsx    |   0
 .../components/gridComponents/new/NewDivider.jsx   |   0
 .../components/gridComponents/new/NewHeader.jsx    |   0
 .../components/gridComponents/new/NewMarkdown.jsx  |   0
 .../components/gridComponents/new/NewRow.jsx       |   0
 .../components/gridComponents/new/NewTabs.jsx      |   0
 .../components/menu/BackgroundStyleDropdown.jsx    |   0
 .../src/dashboard/components/menu/HoverMenu.jsx    |   0
 .../components/menu/MarkdownModeDropdown.jsx       |   0
 .../dashboard/components/menu/PopoverDropdown.jsx  |   0
 .../dashboard/components/menu/WithPopoverMenu.jsx  |   0
 .../components/resizable/ResizableContainer.jsx    |   0
 .../components/resizable/ResizableHandle.jsx       |   0
 .../src/dashboard/containers/Chart.jsx             |   0
 .../src/dashboard/containers/Dashboard.jsx         |   0
 .../src/dashboard/containers/DashboardBuilder.jsx  |   0
 .../dashboard/containers/DashboardComponent.jsx    |   0
 .../src/dashboard/containers/DashboardGrid.jsx     |   0
 .../src/dashboard/containers/DashboardHeader.jsx   |   0
 .../src/dashboard/containers/FilterIndicators.jsx  |   0
 .../src/dashboard/containers/FilterScope.jsx       |   0
 .../src/dashboard/containers/SliceAdder.jsx        |   0
 .../src/dashboard/fixtures/emptyDashboardLayout.js |   0
 .../src/dashboard}/index.jsx                       |   0
 .../src/dashboard/reducers/dashboardFilters.js     |   0
 .../src/dashboard/reducers/dashboardInfo.js        |   0
 .../src/dashboard/reducers/dashboardLayout.js      |   0
 .../src/dashboard/reducers/dashboardState.js       |   0
 .../src/dashboard/reducers/datasources.js          |   0
 .../src/dashboard/reducers/getInitialState.js      |   0
 .../src/dashboard/reducers/index.js                |   0
 .../src/dashboard/reducers/sliceEntities.js        |   0
 .../dashboard/reducers/undoableDashboardLayout.js  |   0
 .../dashboard/stylesheets/builder-sidepane.less    |   0
 .../src/dashboard/stylesheets/builder.less         |   0
 .../src/dashboard/stylesheets/buttons.less         |   0
 .../dashboard/stylesheets/components/chart.less    |   0
 .../dashboard/stylesheets/components/column.less   |   0
 .../dashboard/stylesheets/components/divider.less  |   0
 .../dashboard/stylesheets/components/header.less   |   0
 .../dashboard/stylesheets/components/index.less    |   0
 .../dashboard/stylesheets/components/markdown.less |   0
 .../stylesheets/components/new-component.less      |   0
 .../src/dashboard/stylesheets/components/row.less  |   0
 .../src/dashboard/stylesheets/components/tabs.less |   0
 .../src/dashboard/stylesheets/dashboard.less       |   0
 .../src/dashboard/stylesheets/dnd.less             |   0
 .../stylesheets/filter-indicator-tooltip.less      |   0
 .../dashboard/stylesheets/filter-indicator.less    |   0
 .../stylesheets/filter-scope-selector.less         |   0
 .../src/dashboard/stylesheets/grid.less            |   0
 .../src/dashboard/stylesheets/hover-menu.less      |   0
 .../src/dashboard/stylesheets/index.less           |   0
 .../src/dashboard/stylesheets/popover-menu.less    |   0
 .../src/dashboard/stylesheets/resizable.less       |   0
 .../src/dashboard/util/activeDashboardFilters.js   |   0
 .../src/dashboard/util/backgroundStyleOptions.js   |   0
 .../dashboard/util/buildFilterScopeTreeEntry.js    |   0
 .../util/charts/getEffectiveExtraFilters.js        |   0
 .../util/charts/getFormDataWithExtraFilters.js     |   0
 .../src/dashboard/util/componentIsResizable.js     |   0
 .../src/dashboard/util/componentTypes.js           |   0
 .../src/dashboard/util/constants.js                |   0
 .../src/dashboard/util/dashboardFiltersColorMap.js |   0
 .../src/dashboard/util/dnd-reorder.js              |   0
 .../src/dashboard/util/dropOverflowsParent.js      |   0
 .../src/dashboard/util/findFirstParentContainer.js |   0
 .../src/dashboard/util/findParentId.js             |   0
 .../dashboard/util/findTabIndexByComponentId.js    |   0
 .../util/getChartAndLabelComponentIdFromPath.js    |   0
 .../src/dashboard/util/getChartIdsFromLayout.js    |   0
 .../dashboard/util/getComponentWidthFromDrop.js    |   0
 .../src/dashboard/util/getDashboardFilterKey.js    |   0
 .../src/dashboard/util/getDashboardUrl.js          |   0
 .../dashboard/util/getDetailedComponentWidth.js    |   0
 .../src/dashboard/util/getDirectPathToTabIndex.js  |   0
 .../src/dashboard/util/getDragDropManager.js       |   0
 .../src/dashboard/util/getDropPosition.js          |   0
 .../src/dashboard/util/getEmptyLayout.js           |   0
 .../dashboard/util/getFilterConfigsFromFormdata.js |   0
 .../src/dashboard/util/getFilterFieldNodesTree.js  |   0
 .../dashboard/util/getFilterScopeFromNodesTree.js  |   0
 .../src/dashboard/util/getFilterScopeNodesTree.js  |   0
 .../dashboard/util/getFilterScopeParentNodes.js    |   0
 .../dashboard/util/getFilterValuesByFilterId.js    |   0
 .../src/dashboard/util/getKeyForFilterScopeTree.js |   0
 .../util/getLayoutComponentFromChartId.js          |   0
 .../dashboard/util/getLeafComponentIdFromPath.js   |   0
 .../src/dashboard/util/getLocationHash.js          |   0
 .../src/dashboard/util/getRevertedFilterScope.js   |   0
 .../util/getSelectedChartIdForFilterScopeTree.js   |   0
 .../src/dashboard/util/headerStyleOptions.js       |   0
 .../src/dashboard/util/injectCustomCss.js          |   0
 .../src/dashboard/util/isDashboardLoading.js       |   0
 .../dashboard/util/isInDifferentFilterScopes.js    |   0
 .../src/dashboard/util/isValidChild.js             |   0
 .../dashboard/util/logging/childChartsDidLoad.js   |   0
 .../util/logging/findNonTabChildChartIds.js        |   0
 .../util/logging/findTopLevelComponentIds.js       |   0
 .../logging/getLoadStatsPerTopLevelComponent.js    |   0
 .../src/dashboard/util/newComponentFactory.js      |   0
 .../src/dashboard/util/newEntitiesFromDrop.js      |   0
 .../src/dashboard/util/propShapes.jsx              |   0
 .../src/dashboard/util/resizableConfig.js          |   0
 .../dashboard/util/serializeActiveFilterValues.js  |   0
 .../src/dashboard/util/serializeFilterScopes.js    |   0
 .../src/dashboard/util/setPeriodicRunner.js        |   0
 .../src/dashboard/util/shouldWrapChildInRow.js     |   0
 .../dashboard/util/updateComponentParentsList.js   |   0
 .../src/datasource/ChangeDatasourceModal.jsx       |   0
 .../src/datasource/DatasourceEditor.jsx            |   0
 .../src/datasource/DatasourceModal.jsx             |   0
 .../src/datasource/main.less                       |   0
 .../src/explore/AdhocFilter.js                     |   0
 .../src/explore/AdhocMetric.js                     |   0
 .../src/explore/App.jsx                            |   0
 .../src/explore/actions/exploreActions.js          |   0
 .../src/explore/actions/saveModalActions.js        |   0
 .../explore/components/AdhocFilterEditPopover.jsx  |   0
 .../AdhocFilterEditPopoverSimpleTabContent.jsx     |   0
 .../AdhocFilterEditPopoverSqlTabContent.jsx        |   0
 .../src/explore/components/AdhocFilterOption.jsx   |   0
 .../explore/components/AdhocMetricEditPopover.jsx  |   0
 .../components/AdhocMetricEditPopoverTitle.jsx     |   0
 .../src/explore/components/AdhocMetricOption.jsx   |   0
 .../explore/components/AdhocMetricStaticOption.jsx |   0
 .../src/explore/components/AggregateOption.jsx     |   0
 .../src/explore/components/Control.jsx             |   0
 .../src/explore/components/Control.less            |   0
 .../src/explore/components/ControlHeader.jsx       |   0
 .../src/explore/components/ControlPanelSection.jsx |   0
 .../explore/components/ControlPanelsContainer.jsx  |   0
 .../src/explore/components/ControlRow.jsx          |   0
 .../src/explore/components/DisplayQueryButton.jsx  |   0
 .../src/explore/components/EmbedCodeButton.jsx     |   0
 .../explore/components/ExploreActionButtons.jsx    |   0
 .../src/explore/components/ExploreChartHeader.jsx  |   0
 .../src/explore/components/ExploreChartPanel.jsx   |   0
 .../explore/components/ExploreViewContainer.jsx    |   0
 .../explore/components/FilterDefinitionOption.jsx  |   0
 .../explore/components/MetricDefinitionOption.jsx  |   0
 .../explore/components/MetricDefinitionValue.jsx   |   0
 .../src/explore/components/PropertiesModal.jsx     |   0
 .../src/explore/components/QueryAndSaveBtns.jsx    |   0
 .../src/explore/components/RowCountLabel.jsx       |   0
 .../src/explore/components/SaveModal.jsx           |   0
 .../components/controls/AdhocFilterControl.jsx     |   0
 .../components/controls/AnnotationLayer.jsx        |   0
 .../components/controls/AnnotationLayer.less       |   0
 .../components/controls/AnnotationLayerControl.jsx |   0
 .../explore/components/controls/BoundsControl.jsx  |   0
 .../components/controls/CheckboxControl.jsx        |   0
 .../components/controls/CollectionControl.jsx      |   0
 .../components/controls/CollectionControl.less     |   0
 .../components/controls/ColorMapControl.jsx        |   0
 .../components/controls/ColorPickerControl.jsx     |   0
 .../components/controls/ColorSchemeControl.jsx     |   0
 .../components/controls/DatasourceControl.jsx      |   0
 .../components/controls/DatasourceControl.less     |   0
 .../components/controls/DateFilterControl.jsx      |   0
 .../components/controls/DateFilterControl.less     |   0
 .../components/controls/FilterBoxItemControl.jsx   |   0
 .../components/controls/FixedOrMetricControl.jsx   |   0
 .../explore/components/controls/HiddenControl.jsx  |   0
 .../explore/components/controls/MetricsControl.jsx |   0
 .../components/controls/SelectAsyncControl.jsx     |   0
 .../explore/components/controls/SelectControl.jsx  |   0
 .../explore/components/controls/SliderControl.jsx  |   0
 .../explore/components/controls/SpatialControl.jsx |   0
 .../components/controls/TextAreaControl.jsx        |   0
 .../explore/components/controls/TextControl.jsx    |   0
 .../controls/TimeSeriesColumnControl.jsx           |   0
 .../components/controls/ViewportControl.jsx        |   0
 .../explore/components/controls/VizTypeControl.jsx |   0
 .../components/controls/VizTypeControl.less        |   0
 .../src/explore/components/controls/index.js       |   0
 .../components/controls/withVerification.jsx       |   0
 .../src/explore/constants.js                       |   0
 .../src/explore/controlPanels/Area.js              |   0
 .../src/explore/controlPanels/Bar.js               |   0
 .../src/explore/controlPanels/BigNumber.js         |   0
 .../src/explore/controlPanels/BigNumberTotal.js    |   0
 .../src/explore/controlPanels/BoxPlot.js           |   0
 .../src/explore/controlPanels/Bubble.js            |   0
 .../src/explore/controlPanels/Bullet.js            |   0
 .../src/explore/controlPanels/CalHeatmap.js        |   0
 .../src/explore/controlPanels/Chord.js             |   0
 .../src/explore/controlPanels/Compare.js           |   0
 .../src/explore/controlPanels/CountryMap.js        |   0
 .../src/explore/controlPanels/DeckArc.js           |   0
 .../src/explore/controlPanels/DeckGeojson.js       |   0
 .../src/explore/controlPanels/DeckGrid.js          |   0
 .../src/explore/controlPanels/DeckHex.js           |   0
 .../src/explore/controlPanels/DeckMulti.js         |   0
 .../src/explore/controlPanels/DeckPath.js          |   0
 .../src/explore/controlPanels/DeckPolygon.js       |   0
 .../src/explore/controlPanels/DeckScatter.js       |   0
 .../src/explore/controlPanels/DeckScreengrid.js    |   0
 .../src/explore/controlPanels/DirectedForce.js     |   0
 .../src/explore/controlPanels/DistBar.js           |   0
 .../src/explore/controlPanels/DualLine.js          |   0
 .../src/explore/controlPanels/EventFlow.js         |   0
 .../src/explore/controlPanels/FilterBox.jsx        |   0
 .../src/explore/controlPanels/Heatmap.js           |   0
 .../src/explore/controlPanels/Histogram.js         |   0
 .../src/explore/controlPanels/Horizon.js           |   0
 .../src/explore/controlPanels/Iframe.js            |   0
 .../src/explore/controlPanels/Line.js              |   0
 .../src/explore/controlPanels/LineMulti.js         |   0
 .../src/explore/controlPanels/Mapbox.js            |   0
 .../src/explore/controlPanels/Markup.js            |   0
 .../src/explore/controlPanels/PairedTtest.js       |   0
 .../src/explore/controlPanels/Para.js              |   0
 .../src/explore/controlPanels/Partition.js         |   0
 .../src/explore/controlPanels/Pie.js               |   0
 .../src/explore/controlPanels/PivotTable.js        |   0
 .../src/explore/controlPanels/Rose.js              |   0
 .../src/explore/controlPanels/Sankey.js            |   0
 .../src/explore/controlPanels/Separator.js         |   0
 .../src/explore/controlPanels/Sunburst.js          |   0
 .../src/explore/controlPanels/Table.js             |   0
 .../src/explore/controlPanels/TimePivot.js         |   0
 .../src/explore/controlPanels/TimeTable.js         |   0
 .../src/explore/controlPanels/Treemap.js           |   0
 .../src/explore/controlPanels/WordCloud.js         |   0
 .../src/explore/controlPanels/WorldMap.js          |   0
 .../src/explore/controlPanels/sections.jsx         |   0
 .../timeGrainSqlaAnimationOverrides.js             |   0
 .../src/explore/controlUtils.js                    |   0
 .../src/explore/controls.jsx                       |   2 +-
 .../src/explore/exploreUtils.js                    |   0
 .../src/explore/index.jsx                          |   0
 .../src/explore/main.less                          |   0
 .../src/explore/propTypes/adhocFilterType.js       |   0
 .../src/explore/propTypes/adhocMetricType.js       |   0
 .../src/explore/propTypes/aggregateOptionType.js   |   0
 .../src/explore/propTypes/columnType.js            |   0
 .../src/explore/propTypes/savedMetricType.js       |   0
 .../src/explore/reducers/exploreReducer.js         |   0
 .../src/explore/reducers/getInitialState.js        |   0
 .../src/explore/reducers/index.js                  |   0
 .../src/explore/reducers/saveModalReducer.js       |   0
 .../src/explore/store.js                           |   0
 .../src/explore/validators.js                      |   0
 .../src/featureFlags.ts                            |   0
 .../src/logger/LogUtils.js                         |   0
 .../src/logger/actions/index.js                    |   0
 .../src/messageToasts/actions/index.js             |   0
 .../src/messageToasts/components/Toast.jsx         |   0
 .../messageToasts/components/ToastPresenter.jsx    |   0
 .../src/messageToasts/constants.js                 |   0
 .../messageToasts/containers/ToastPresenter.jsx    |   0
 .../src/messageToasts/enhancers/withToasts.jsx     |   0
 .../src/messageToasts/propShapes.js                |   0
 .../src/messageToasts/reducers/index.js            |   0
 .../src/messageToasts/stylesheets/toast.less       |   0
 .../utils/getToastsFromPyFlashMessages.js          |   0
 .../src/middleware/loggerMiddleware.js             |   0
 .../src/modules/AnnotationTypes.js                 |   0
 .../src/modules/dates.js                           |   0
 .../src/modules/utils.js                           |   0
 .../assets => superset-frontend}/src/preamble.js   |   0
 .../src/profile/App.jsx                            |   0
 .../src/profile/components/App.jsx                 |   0
 .../src/profile/components/CreatedContent.jsx      |   0
 .../src/profile/components/Favorites.jsx           |   0
 .../src/profile/components/RecentActivity.jsx      |   0
 .../src/profile/components/Security.jsx            |   0
 .../src/profile/components/UserInfo.jsx            |   0
 .../src/profile}/index.jsx                         |   0
 .../src/profile/main.less                          |   0
 .../assets => superset-frontend}/src/reduxUtils.js |   0
 .../src/setup/setupApp.js                          |   0
 .../src/setup/setupClient.js                       |   0
 .../src/setup/setupColors.js                       |   0
 .../src/setup/setupFormatters.js                   |   0
 .../src/setup/setupPlugins.ts                      |   0
 .../src/setup/setupPluginsExtra.js                 |   0
 .../src/showSavedQuery/index.jsx                   |   0
 .../src/showSavedQuery/index.less                  |   0
 .../src/showSavedQuery/utils.js                    |   0
 .../assets => superset-frontend}/src/theme.js      |   0
 .../src/types/react-table-config.d.ts              |   0
 .../src/utils/DebouncedMessageQueue.js             |   0
 .../src/utils/common.js                            |   0
 .../src/utils/errorMessages.js                     |   0
 .../src/utils/getClientErrorObject.js              |   0
 .../src/utils/hostNamesConfig.js                   |   0
 .../src/utils/reducerUtils.js                      |   0
 .../src/utils/safeStringify.ts                     |   0
 .../src/views/chartList/ChartList.tsx              |   0
 .../src/views/dashboardList/DashboardList.tsx      |   0
 .../src/visualizations/FilterBox/FilterBox.jsx     |   0
 .../src/visualizations/FilterBox/FilterBox.less    |   0
 .../FilterBox/FilterBoxChartPlugin.js              |   0
 .../visualizations/FilterBox/images/thumbnail.png  | Bin
 .../FilterBox/images/thumbnailLarge.png            | Bin
 .../src/visualizations/FilterBox/transformProps.js |   0
 .../visualizations/TimeTable/FormattedNumber.jsx   |   0
 .../src/visualizations/TimeTable/SparklineCell.jsx |   0
 .../src/visualizations/TimeTable/TimeTable.jsx     |   0
 .../src/visualizations/TimeTable/TimeTable.less    |   0
 .../TimeTable/TimeTableChartPlugin.js              |   0
 .../visualizations/TimeTable/images/thumbnail.png  | Bin
 .../TimeTable/images/thumbnailLarge.png            | Bin
 .../src/visualizations/TimeTable/transformProps.js |   0
 .../src/visualizations/constants.js                |   0
 .../src/visualizations/presets/MainPreset.js       |   0
 .../src/welcome/App.jsx                            |   0
 .../src/welcome/DashboardTable.jsx                 |   0
 .../src/welcome/Welcome.jsx                        |   0
 .../src/welcome}/index.jsx                         |   0
 .../stylesheets/fonts/Roboto-Regular.woff          | Bin
 .../stylesheets/fonts/Roboto-Regular.woff2         | Bin
 .../stylesheets/less/cosmo/bootswatch.less         |   0
 .../stylesheets/less/cosmo/cosmoTheme.js           |   0
 .../stylesheets/less/cosmo/variables.less          |   0
 .../stylesheets/less/index.less                    |   0
 .../stylesheets/less/variables.less                |   0
 .../stylesheets/react-select/select.less           |   0
 .../stylesheets/reactable-pagination.less          |   0
 .../stylesheets/superset.less                      |   0
 .../assets => superset-frontend}/tsconfig.json     |   0
 {superset/assets => superset-frontend}/tslint.json |   0
 .../assets => superset-frontend}/webpack.config.js |  21 +-
 superset/assets/docs                               |   1 -
 superset/extensions.py                             |   2 +-
 superset/static/assets                             |   1 -
 superset/translations/babel.cfg                    |   6 +-
 tox.ini                                            |  13 +-
 930 files changed, 681 insertions(+), 314 deletions(-)

diff --git a/.dockerignore b/.dockerignore
index 346abe6..54c3101 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -34,7 +34,7 @@
 tests/
 docs/
 install/
-superset/assets/node_modules/
-superset/assets/cypress/
-superset/assets/coverage/
+superset-frontend/node_modules/
+superset-frontend/cypress/
+superset-frontend/coverage/
 venv
diff --git a/.fossa.yml b/.fossa.yml
index fd56e67..04ec178 100755
--- a/.fossa.yml
+++ b/.fossa.yml
@@ -26,8 +26,8 @@ analyze:
   modules:
   - name: assets
     type: npm
-    target: superset/assets
-    path: superset/assets
+    target: superset-frontend
+    path: superset-frontend
   - name: docs
     type: pip
     target: docs
diff --git a/.gitignore b/.gitignore
index 5dc500e..1b12d0c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,16 +51,18 @@ local_config.py
 superset.egg-info/
 superset/bin/supersetc
 tmp
+rat-results.txt
 
 # Node.js, webpack artifacts
 *.entry.js
 *.js.map
 node_modules
 npm-debug.log*
-superset/assets/coverage/*
-superset/assets/cypress/screenshots
-superset/assets/cypress/videos
-superset/assets/version_info.json
+superset-frontend/coverage/*
+superset-frontend/cypress/screenshots
+superset-frontend/cypress/videos
+superset-frontend/version_info.json
+superset/static
 yarn-error.log
 
 # IntelliJ
diff --git a/.rat-excludes b/.rat-excludes
index 79ed787..83bdd69 100644
--- a/.rat-excludes
+++ b/.rat-excludes
@@ -18,6 +18,7 @@ node_modules/*
 rat-results.txt
 babel-node
 dist
+superset/static/*
 build
 superset.egg-info
 apache_superset.egg-info
@@ -32,6 +33,7 @@ apache_superset.egg-info
 env/*
 docs/_build/*
 docs/_modules/*
+docs/_static/*
 _build/*
 _static/*
 .buildinfo
diff --git a/.travis.yml b/.travis.yml
index 81b9edf..8729632 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -110,7 +110,7 @@ cache:
     - ~/.npm
     - ~/.cache
     - ~/.travis_cache/
-    - superset/assets/.terser-plugin-cache/
+    - superset-frontend/.terser-plugin-cache/
 addons:
   apt:
     packages:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index da1cfce..b1dd3f4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -65,7 +65,7 @@ Here's a list of repositories that contain Superset-related packages:
   distributed on
   [pypi](https://pypi.org/project/apache-superset/). This repository
   also includes Superset's main Javascript bundles and react apps under
-  the [superset/assets](https://github.com/apache/incubator-superset/tree/master/superset/assets)
+  the [superset-frontend](https://github.com/apache/incubator-superset/tree/master/superset-frontend)
   folder.
 - [apache-superset/superset-ui](https://github.com/apache-superset/superset-ui)
   contains core Superset's
@@ -322,15 +322,15 @@ Then, [open a pull request](https://help.github.com/articles/about-pull-requests
 If you're adding new images to the documentation, you'll notice that the images
 referenced in the rst, e.g.
 
-    .. image:: _static/img/tutorial/tutorial_01_sources_database.png
+    .. image:: _static/images/tutorial/tutorial_01_sources_database.png
 
 aren't actually stored in that directory. Instead, you should add and commit
-images (and any other static assets) to the `superset/assets/images` directory.
+images (and any other static assets) to the `superset-frontend/images` directory.
 When the docs are deployed to https://superset.incubator.apache.org/, images
-are copied from there to the `_static/img` directory, just like they're referenced
+are copied from there to the `_static/images` directory, just like they're referenced
 in the docs.
 
-For example, the image referenced above actually lives in `superset/assets/images/tutorial`. Since the image is moved during the documentation build process, the docs reference the image in `_static/img/tutorial` instead.
+For example, the image referenced above actually lives in `superset-frontend/images/tutorial`. Since the image is moved during the documentation build process, the docs reference the image in `_static/images/tutorial` instead.
 
 #### API documentation
 
@@ -418,7 +418,7 @@ app.logger.info(form_data)
 
 ### Frontend Assets
 
-Frontend assets (JavaScript, CSS, and images) must be compiled in order to properly display the web UI. The `superset/assets` directory contains all NPM-managed front end assets. Note that there are additional frontend assets bundled with Flask-Appbuilder (e.g. jQuery and bootstrap); these are not managed by NPM, and may be phased out in the future.
+Frontend assets (JavaScript, CSS, and images) must be compiled in order to properly display the web UI. The `superset-frontend` directory contains all NPM-managed front end assets. Note that there are additional frontend assets bundled with Flask-Appbuilder (e.g. jQuery and bootstrap); these are not managed by NPM, and may be phased out in the future.
 
 #### nvm and node
 
@@ -437,7 +437,7 @@ Install third-party dependencies listed in `package.json`:
 
 ```bash
 # From the root of the repository
-cd superset/assets
+cd superset-frontend
 
 # Install dependencies from `package-lock.json`
 npm ci
@@ -481,7 +481,7 @@ See docs [here](docker/README.md)
 #### Updating NPM packages
 
 Use npm in the prescribed way, making sure that
-`superset/assets/package-lock.json` is updated according to `npm`-prescribed
+`superset-frontend/package-lock.json` is updated according to `npm`-prescribed
 best practices.
 
 #### Feature flags
@@ -494,7 +494,7 @@ FEATURE_FLAGS = {
 }
 ```
 
-If you want to use the same flag in the client code, also add it to the FeatureFlag TypeScript enum in `superset/assets/src/featureFlags.ts`. For example,
+If you want to use the same flag in the client code, also add it to the FeatureFlag TypeScript enum in `superset-frontend/src/featureFlags.ts`. For example,
 
 ```
 export enum FeatureFlag {
@@ -524,7 +524,7 @@ Lint the project with:
 tox -e flake8
 
 # for javascript
-cd superset/assets
+cd superset-frontend
 npm ci
 npm run lint
 ```
@@ -616,7 +616,7 @@ def sqrt(x: Union[float, int]) -> Union[float, int]:
 We use [Jest](https://jestjs.io/) and [Enzyme](https://airbnb.io/enzyme/) to test Javascript. Tests can be run with:
 
 ```bash
-cd superset/assets
+cd superset-frontend
 npm run test
 ```
 
@@ -636,7 +636,7 @@ superset run --port 8081
 Run Cypress tests:
 
 ```bash
-cd superset/assets
+cd superset-frontend
 npm run build
 
 cd cypress-base
@@ -653,7 +653,7 @@ npm run cypress run -- --spec cypress/integration/dashboard/index.test.js --conf
 npm run cypress open
 ```
 
-See [`superset/assets/cypress_build.sh`](https://github.com/apache/incubator-superset/blob/master/superset/assets/cypress_build.sh).
+See [`superset-frontend/cypress_build.sh`](https://github.com/apache/incubator-superset/blob/master/superset-frontend/cypress_build.sh).
 
 ## Translating
 
diff --git a/Dockerfile b/Dockerfile
index b8eee3a..19ec06d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -42,15 +42,15 @@ RUN cd /app \
 FROM node:10-jessie AS superset-node
 
 # NPM ci first, as to NOT invalidate previous steps except for when package.json changes
-RUN mkdir -p /app/superset/assets
-COPY ./superset/assets/package* /app/superset/assets/
-RUN cd /app/superset/assets \
+RUN mkdir -p /app/superset-frontend
+COPY ./superset-frontend/package* /app/superset-frontend/
+RUN cd /app/superset-frontend \
         && npm ci
 
 # Next, copy in the rest and let webpack do its thing
-COPY ./superset/assets /app/superset/assets
+COPY ./superset-frontend /app/superset-frontend
 # This is BY FAR the most expensive step (thanks Terser!)
-RUN cd /app/superset/assets \
+RUN cd /app/superset-frontend \
         && npm run build \
         && rm -rf node_modules
 
@@ -81,7 +81,7 @@ RUN useradd --user-group --no-create-home --no-log-init --shell /bin/bash supers
 COPY --from=superset-py /usr/local/lib/python3.6/site-packages/ /usr/local/lib/python3.6/site-packages/
 # Copying site-packages doesn't move the CLIs, so let's copy them one by one
 COPY --from=superset-py /usr/local/bin/gunicorn /usr/local/bin/celery /usr/local/bin/flask /usr/bin/
-COPY --from=superset-node /app/superset/assets /app/superset/assets
+COPY --from=superset-node /app/superset-frontend /app/superset-frontend
 
 ## Lastly, let's install superset itself
 COPY superset /app/superset
@@ -112,4 +112,4 @@ COPY ./requirements-dev.txt ./docker/requirements-extra.txt /app/
 USER root
 RUN cd /app \
     && pip install --no-cache -r requirements-dev.txt -r requirements-extra.txt
-USER superset
\ No newline at end of file
+USER superset
diff --git a/MANIFEST.in b/MANIFEST.in
index 49e90d3..449f72e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -20,18 +20,7 @@ graft licenses/
 include README.md
 recursive-include superset/examples *
 recursive-include superset/migrations *
-
-include superset/assets/package.json
-
-# Whitelist anything that needs to be added to the static bundle
-recursive-exclude superset/static *
-recursive-include superset/static/assets/branding *
-recursive-include superset/static/assets/dist *
-recursive-include superset/static/assets/images *
-recursive-exclude superset/static/images/viz_thumbnails_large *
-recursive-include superset/static/assets/stylesheets *
-include superset/static/assets/version_info.json
-
 recursive-include superset/templates *
 recursive-include superset/translations *
+recursive-include superset/static *
 recursive-exclude tests *
diff --git a/README.md b/README.md
index 2852090..1d282f4 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Superset
 [![PyPI](https://img.shields.io/pypi/pyversions/apache-superset.svg?maxAge=2592000)](https://pypi.python.org/pypi/apache-superset)
 [![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](https://join.slack.com/t/apache-superset/shared_invite/enQtNDMxMDY5NjM4MDU0LWJmOTcxYjlhZTRhYmEyYTMzOWYxOWEwMjcwZDZiNWRiNDY2NDUwNzcwMDFhNzE1ZmMxZTZlZWY0ZTQ2MzMyNTU)
 [![Documentation](https://img.shields.io/badge/docs-apache.org-blue.svg)](https://superset.incubator.apache.org)
-[![dependencies Status](https://david-dm.org/apache/incubator-superset/status.svg?path=superset/assets)](https://david-dm.org/apache/incubator-superset?path=superset/assets)
+[![dependencies Status](https://david-dm.org/apache/incubator-superset/status.svg?path=superset-frontend)](https://david-dm.org/apache/incubator-superset?path=superset-frontend)
 
 <img
   src="https://cloud.githubusercontent.com/assets/130878/20946612/49a8a25c-bbc0-11e6-8314-10bef902af51.png"
@@ -42,23 +42,23 @@ Screenshots & Gifs
 
 **View Dashboards**
 
-<kbd><img title="View Dashboards" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/bank_dash.png"></kbd><br/>
+<kbd><img title="View Dashboards" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset-frontend/images/screenshots/bank_dash.png"></kbd><br/>
 
 **Slice & dice your data**
 
-<kbd><img title="Slice & dice your data" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/explore.png"></kbd><br/>
+<kbd><img title="Slice & dice your data" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset-frontend/images/screenshots/explore.png"></kbd><br/>
 
 **Query and visualize your data with SQL Lab**
 
-<kbd><img title="SQL Lab" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/sqllab.png"></kbd><br/>
+<kbd><img title="SQL Lab" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset-frontend/images/screenshots/sqllab.png"></kbd><br/>
 
 **Visualize geospatial data with deck.gl**
 
-<kbd><img title="Geospatial" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/deckgl_dash.png"></kbd><br/>
+<kbd><img title="Geospatial" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset-frontend/images/screenshots/deckgl_dash.png"></kbd><br/>
 
 **Choose from a wide array of visualizations**
 
-<kbd><img title="Visualizations" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/visualizations.png"></kbd><br/>
+<kbd><img title="Visualizations" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset-frontend/images/screenshots/visualizations.png"></kbd><br/>
 
 Apache Superset
 ---------------
diff --git a/RELEASING/Dockerfile.from_local_tarball b/RELEASING/Dockerfile.from_local_tarball
index 6ca3a3b..06ac28c 100644
--- a/RELEASING/Dockerfile.from_local_tarball
+++ b/RELEASING/Dockerfile.from_local_tarball
@@ -48,7 +48,7 @@ ARG SUPERSET_RELEASE_RC_TARBALL
 # Can fetch source from svn or copy tarball from local mounted directory
 COPY $SUPERSET_RELEASE_RC_TARBALL ./
 RUN tar -xvf *.tar.gz
-WORKDIR /home/superset/apache-superset-incubating-$VERSION/superset/assets
+WORKDIR /home/superset/apache-superset-incubating-$VERSION/superset-frontend
 
 RUN npm ci \
     && npm run build \
diff --git a/RELEASING/Dockerfile.from_svn_tarball b/RELEASING/Dockerfile.from_svn_tarball
index f3acd77..55a0133 100644
--- a/RELEASING/Dockerfile.from_svn_tarball
+++ b/RELEASING/Dockerfile.from_svn_tarball
@@ -49,7 +49,7 @@ RUN svn co https://dist.apache.org/repos/dist/dev/incubator/superset/$VERSION ./
 RUN tar -xvf *.tar.gz
 WORKDIR apache-superset-incubating-$VERSION
 
-RUN cd superset/assets \
+RUN cd superset-frontend \
     && npm ci \
     && npm run build \
     && rm -rf node_modules
diff --git a/RELEASING/README.md b/RELEASING/README.md
index ddadfe9..d2e9421 100644
--- a/RELEASING/README.md
+++ b/RELEASING/README.md
@@ -56,9 +56,9 @@ need to be done at every release.
 
 ## Crafting a source release
 
-When crafting a new minor or major release we create 
+When crafting a new minor or major release we create
 a branch named with the release MAJOR.MINOR version (on this example 0.34).
-This new branch will hold all PATCH and release candidates 
+This new branch will hold all PATCH and release candidates
 that belong to the MAJOR.MINOR version.
 
 The MAJOR.MINOR branch is normally a "cut" from a specific point in time from the master branch.
@@ -77,7 +77,7 @@ deprecations and upgrading-related topics,
 make sure to move the content now under the `Next Version` section under a new
 section for the new release.
 
-Finally bump the version number on `superset/static/assets/package.json`:
+Finally bump the version number on `superset-frontend/package.json`:
 
 ```json
     "version": "0.34.1"
@@ -120,7 +120,7 @@ The script will output the exported variables. Here's example for 0.34.1 RC1:
 
 The first step of preparing an Apache Release is packaging a release candidate
 to be voted on. Make sure you have correctly prepared and tagged the ready to ship
-release on Superset's repo (MAJOR.MINOR branch), the following script will clone 
+release on Superset's repo (MAJOR.MINOR branch), the following script will clone
 the tag and create a signed source tarball from it:
 
 ```bash
@@ -131,14 +131,14 @@ the tag and create a signed source tarball from it:
 
 Note that `make_tarball.sh`:
 
-- By default assumes you have already executed an SVN checkout to `$HOME/svn/superset_dev`. 
-This can be overriden by setting `SUPERSET_SVN_DEV_PATH` environment var to a different svn dev directory 
+- By default assumes you have already executed an SVN checkout to `$HOME/svn/superset_dev`.
+This can be overriden by setting `SUPERSET_SVN_DEV_PATH` environment var to a different svn dev directory
 - Will refuse to craft a new release candidate if a release already exists on your local svn dev directory
 - Will check `package.json` version number and fails if it's not correctly set
 
 ### Build and test the created source tarball
 
-To build and run the just created tarball 
+To build and run the just created tarball
 ```bash
     # Build and run a release candidate tarball
     ./test_run_tarball.sh local
@@ -174,12 +174,12 @@ https://lists.apache.org/thread.html/e60f080ebdda26896214f7d3d5be1ccadfab95d48fb
 To easily send a voting request to Superset community, still on the `superset/RELEASING` directory:
 
 ```bash
-    # Note: use Superset's virtualenv 
+    # Note: use Superset's virtualenv
     (venv)$ python send_email.py vote_pmc
 ```
 
 The script will interactively ask for extra information so it can authenticate on the Apache Email Relay.
-The release version and release candidate number are fetched from the previously set environment variables. 
+The release version and release candidate number are fetched from the previously set environment variables.
 
 ```bash
     Sender email (ex: user@apache.org): your_apache_email@apache.org
@@ -194,12 +194,12 @@ https://lists.apache.org/thread.html/50a6b134d66b86b237d5d7bc89df1b567246d125a71
 To easily send the result email, still on the `superset/RELEASING` directory:
 
 ```bash
-    # Note: use Superset's virtualenv 
+    # Note: use Superset's virtualenv
     (venv)$ python send_email.py result_pmc
 ```
 
 The script will interactively ask for extra information needed to fill out the email template. Based on the
-voting description, it will generate a passing, non passing or non conclusive email. 
+voting description, it will generate a passing, non passing or non conclusive email.
 here's an example:
 
 ```bash
@@ -217,7 +217,7 @@ started at general@incubator.apache.org.
 To easily send the voting request to Apache community, still on the `superset/RELEASING` directory:
 
 ```bash
-    # Note: use Superset's virtualenv 
+    # Note: use Superset's virtualenv
     (venv)$ python send_email.py vote_ipmc
 ```
 
@@ -227,12 +227,12 @@ least 72 hours have past, you can post a [RESULT] thread
 To easily send the result email, still on the `superset/RELEASING` directory:
 
 ```bash
-    # Note: use Superset's virtualenv 
+    # Note: use Superset's virtualenv
     (venv)$ python send_email.py result_ipmc
 ```
 
 Again, the script will interactively ask for extra information needed to fill out the email template. Based on the
-voting description, it will generate a passing, non passing or non conclusive email. 
+voting description, it will generate a passing, non passing or non conclusive email.
 here's an example:
 
 ```bash
@@ -291,7 +291,7 @@ while requesting access to push packages.
 Once it's all done, an [ANNOUNCE] thread announcing the release to the dev@ mailing list is the final step.
 
 ```bash
-    # Note use Superset's virtualenv 
+    # Note use Superset's virtualenv
     (venv)$ python send_email.py announce
 ```
 
diff --git a/RELEASING/make_tarball_entrypoint.sh b/RELEASING/make_tarball_entrypoint.sh
index dde0118..42deed9 100755
--- a/RELEASING/make_tarball_entrypoint.sh
+++ b/RELEASING/make_tarball_entrypoint.sh
@@ -37,9 +37,9 @@ mkdir -p "${HOME}/${SUPERSET_VERSION_RC}"
 cd incubator-superset && \
 
 # Check RC version
-if ! jq -e --arg SUPERSET_VERSION $SUPERSET_VERSION '.version == $SUPERSET_VERSION' superset/assets/package.json
+if ! jq -e --arg SUPERSET_VERSION $SUPERSET_VERSION '.version == $SUPERSET_VERSION' superset-frontend/package.json
 then
-  SOURCE_VERSION=$(jq '.version' superset/assets/package.json)
+  SOURCE_VERSION=$(jq '.version' superset-frontend/package.json)
   echo "Source package.json version is wrong, found: ${SOURCE_VERSION} should be: ${SUPERSET_VERSION}"
   exit 1
 fi
diff --git a/docker-compose.yml b/docker-compose.yml
index 01b88c0..3adee4e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -66,7 +66,7 @@ services:
 
   superset-node:
     image: node:10-jessie
-    command: ["bash", "-c", "cd /app/superset/assets && npm install && npm run dev"]
+    command: ["bash", "-c", "cd /app/superset-frontend && npm install && npm run dev"]
     env_file: docker/.env
     depends_on: *superset-depends-on
     volumes: *superset-volumes
diff --git a/docs/admintutorial.rst b/docs/admintutorial.rst
index ebae59f..87490b4 100644
--- a/docs/admintutorial.rst
+++ b/docs/admintutorial.rst
@@ -27,7 +27,7 @@ so that you get a feel for the end-to-end user experience.
 Connecting to a new database
 ----------------------------
 
-We assume you already have a database configured and can connect to it from the 
+We assume you already have a database configured and can connect to it from the
 instance on which you’re running Superset. If you’re just testing Superset and
 want to explore sample data, you can load some
 `sample PostgreSQL datasets <https://wiki.postgresql.org/wiki/Sample_Databases>`_
@@ -37,289 +37,289 @@ we use here.
 
 Under the **Sources** menu, select the *Databases* option:
 
-.. image:: images/tutorial/tutorial_01_sources_database.png
+.. image:: _static/images/tutorial/tutorial_01_sources_database.png
    :scale: 70%
 
 On the resulting page, click on the green plus sign, near the top right:
 
-.. image:: images/tutorial/tutorial_02_add_database.png
+.. image:: _static/images/tutorial/tutorial_02_add_database.png
    :scale: 70%
 
-You can configure a number of advanced options on this page, but for 
+You can configure a number of advanced options on this page, but for
 this walkthrough, you’ll only need to do **two things**:
 
 1. Name your database connection:
 
-.. image:: images/tutorial/tutorial_03_database_name.png
+.. image:: _static/images/tutorial/tutorial_03_database_name.png
    :scale: 70%
 
 2. Provide the SQLAlchemy Connection URI and test the connection:
 
-.. image:: images/tutorial/tutorial_04_sqlalchemy_connection_string.png
+.. image:: _static/images/tutorial/tutorial_04_sqlalchemy_connection_string.png
    :scale: 70%
 
-This example shows the connection string for our test weather database. 
-As noted in the text below the URI, you should refer to the SQLAlchemy 
-documentation on 
+This example shows the connection string for our test weather database.
+As noted in the text below the URI, you should refer to the SQLAlchemy
+documentation on
 `creating new connection URIs <https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls>`_
 for your target database.
 
-Click the **Test Connection** button to confirm things work end to end. 
-Once Superset can successfully connect and authenticate, you should see 
+Click the **Test Connection** button to confirm things work end to end.
+Once Superset can successfully connect and authenticate, you should see
 a popup like this:
 
-.. image:: images/tutorial/tutorial_05_connection_popup.png
+.. image:: _static/images/tutorial/tutorial_05_connection_popup.png
    :scale: 50%
 
-Moreover, you should also see the list of tables Superset can read from 
+Moreover, you should also see the list of tables Superset can read from
 the schema you’re connected to, at the bottom of the page:
 
-.. image:: images/tutorial/tutorial_06_list_of_tables.png
+.. image:: _static/images/tutorial/tutorial_06_list_of_tables.png
    :scale: 70%
 
-If the connection looks good, save the configuration by clicking the **Save** 
+If the connection looks good, save the configuration by clicking the **Save**
 button at the bottom of the page:
 
-.. image:: images/tutorial/tutorial_07_save_button.png
+.. image:: _static/images/tutorial/tutorial_07_save_button.png
    :scale: 70%
 
 Adding a new table
 ------------------
 
-Now that you’ve configured a database, you’ll need to add specific tables 
+Now that you’ve configured a database, you’ll need to add specific tables
 to Superset that you’d like to query.
 
 Under the **Sources** menu, select the *Tables* option:
 
-.. image:: images/tutorial/tutorial_08_sources_tables.png
+.. image:: _static/images/tutorial/tutorial_08_sources_tables.png
    :scale: 70%
 
 On the resulting page, click on the green plus sign, near the top left:
 
-.. image:: images/tutorial/tutorial_09_add_new_table.png
+.. image:: _static/images/tutorial/tutorial_09_add_new_table.png
    :scale: 70%
 
 You only need a few pieces of information to add a new table to Superset:
 
 * The name of the table
 
-.. image:: images/tutorial/tutorial_10_table_name.png
+.. image:: _static/images/tutorial/tutorial_10_table_name.png
    :scale: 70%
 
-* The target database from the **Database** drop-down menu (i.e. the one 
+* The target database from the **Database** drop-down menu (i.e. the one
   you just added above)
 
-.. image:: images/tutorial/tutorial_11_choose_db.png
+.. image:: _static/images/tutorial/tutorial_11_choose_db.png
    :scale: 70%
 
-* Optionally, the database schema. If the table exists in the “default” schema 
-  (e.g. the *public* schema in PostgreSQL or Redshift), you can leave the schema 
+* Optionally, the database schema. If the table exists in the “default” schema
+  (e.g. the *public* schema in PostgreSQL or Redshift), you can leave the schema
   field blank.
 
 Click on the **Save** button to save the configuration:
 
-.. image:: images/tutorial/tutorial_07_save_button.png
+.. image:: _static/images/tutorial/tutorial_07_save_button.png
    :scale: 70%
 
-When redirected back to the list of tables, you should see a message indicating 
+When redirected back to the list of tables, you should see a message indicating
 that your table was created:
 
-.. image:: images/tutorial/tutorial_12_table_creation_success_msg.png
+.. image:: _static/images/tutorial/tutorial_12_table_creation_success_msg.png
    :scale: 70%
 
-This message also directs you to edit the table configuration. We’ll edit a limited 
-portion of the configuration now - just to get you started - and leave the rest for 
+This message also directs you to edit the table configuration. We’ll edit a limited
+portion of the configuration now - just to get you started - and leave the rest for
 a more advanced tutorial.
 
 Click on the edit button next to the table you’ve created:
 
-.. image:: images/tutorial/tutorial_13_edit_table_config.png
+.. image:: _static/images/tutorial/tutorial_13_edit_table_config.png
    :scale: 70%
 
-On the resulting page, click on the **List Table Column** tab. Here, you’ll define the 
-way you can use specific columns of your table when exploring your data. We’ll run 
+On the resulting page, click on the **List Table Column** tab. Here, you’ll define the
+way you can use specific columns of your table when exploring your data. We’ll run
 through these options to describe their purpose:
 
 * If you want users to group metrics by a specific field, mark it as **Groupable**.
 * If you need to filter on a specific field, mark it as **Filterable**.
-* Is this field something you’d like to get the distinct count of? Check the **Count 
+* Is this field something you’d like to get the distinct count of? Check the **Count
   Distinct** box.
-* Is this a metric you want to sum, or get basic summary statistics for? The **Sum**, 
+* Is this a metric you want to sum, or get basic summary statistics for? The **Sum**,
   **Min**, and **Max** columns will help.
-* The **is temporal** field should be checked for any date or time fields. We’ll cover 
+* The **is temporal** field should be checked for any date or time fields. We’ll cover
   how this manifests itself in analyses in a moment.
 
-Here’s how we’ve configured fields for the weather data. Even for measures like the 
-weather measurements (precipitation, snowfall, etc.), it’s ideal to group and filter 
+Here’s how we’ve configured fields for the weather data. Even for measures like the
+weather measurements (precipitation, snowfall, etc.), it’s ideal to group and filter
 by these values:
 
-.. image:: images/tutorial/tutorial_14_field_config.png
+.. image:: _static/images/tutorial/tutorial_14_field_config.png
 
 As with the configurations above, click the **Save** button to save these settings.
 
 Exploring your data
 -------------------
 
-To start exploring your data, simply click on the table name you just created in 
+To start exploring your data, simply click on the table name you just created in
 the list of available tables:
 
-.. image:: images/tutorial/tutorial_15_click_table_name.png
+.. image:: _static/images/tutorial/tutorial_15_click_table_name.png
 
 By default, you’ll be presented with a Table View:
 
-.. image:: images/tutorial/tutorial_16_datasource_chart_type.png
+.. image:: _static/images/tutorial/tutorial_16_datasource_chart_type.png
 
-Let’s walk through a basic query to get the count of all records in our table. 
-First, we’ll need to change the **Since** filter to capture the range of our data. 
+Let’s walk through a basic query to get the count of all records in our table.
+First, we’ll need to change the **Since** filter to capture the range of our data.
 You can use simple phrases to apply these filters, like "3 years ago":
 
-.. image:: images/tutorial/tutorial_17_choose_time_range.png
+.. image:: _static/images/tutorial/tutorial_17_choose_time_range.png
 
-The upper limit for time, the **Until** filter, defaults to "now", which may or may 
+The upper limit for time, the **Until** filter, defaults to "now", which may or may
 not be what you want.
 
-Look for the Metrics section under the **GROUP BY** header, and start typing "Count" 
+Look for the Metrics section under the **GROUP BY** header, and start typing "Count"
 - you’ll see a list of metrics matching what you type:
 
-.. image:: images/tutorial/tutorial_18_choose_metric.png
+.. image:: _static/images/tutorial/tutorial_18_choose_metric.png
 
-Select the *COUNT(\*)* metric, then click the green **Query** button near the top 
+Select the *COUNT(\*)* metric, then click the green **Query** button near the top
 of the explore:
 
-.. image:: images/tutorial/tutorial_19_click_query.png
+.. image:: _static/images/tutorial/tutorial_19_click_query.png
 
 You’ll see your results in the table:
 
-.. image:: images/tutorial/tutorial_20_count_star_result.png
+.. image:: _static/images/tutorial/tutorial_20_count_star_result.png
 
-Let’s group this by the *weather_description* field to get the count of records by 
+Let’s group this by the *weather_description* field to get the count of records by
 the type of weather recorded by adding it to the *Group by* section:
 
-.. image:: images/tutorial/tutorial_21_group_by.png
+.. image:: _static/images/tutorial/tutorial_21_group_by.png
 
 and run the query:
 
-.. image:: images/tutorial/tutorial_22_group_by_result.png
+.. image:: _static/images/tutorial/tutorial_22_group_by_result.png
 
-Let’s find a more useful data point: the top 10 times and places that recorded the 
+Let’s find a more useful data point: the top 10 times and places that recorded the
 highest temperature in 2015.
 
-We replace *weather_description* with *latitude*, *longitude* and *measurement_date* in the 
+We replace *weather_description* with *latitude*, *longitude* and *measurement_date* in the
 *Group by* section:
 
-.. image:: images/tutorial/tutorial_23_group_by_more_dimensions.png
+.. image:: _static/images/tutorial/tutorial_23_group_by_more_dimensions.png
 
 And replace *COUNT(\*)* with *max__measurement_flag*:
 
-.. image:: images/tutorial/tutorial_24_max_metric.png
+.. image:: _static/images/tutorial/tutorial_24_max_metric.png
 
-The *max__measurement_flag* metric was created when we checked the box under **Max** and 
-next to the *measurement_flag* field, indicating that this field was numeric and that 
+The *max__measurement_flag* metric was created when we checked the box under **Max** and
+next to the *measurement_flag* field, indicating that this field was numeric and that
 we wanted to find its maximum value when grouped by specific fields.
 
-In our case, *measurement_flag* is the value of the measurement taken, which clearly 
-depends on the type of measurement (the researchers recorded different values for 
-precipitation and temperature). Therefore, we must filter our query only on records 
-where the *weather_description* is equal to "Maximum temperature", which we do in 
+In our case, *measurement_flag* is the value of the measurement taken, which clearly
+depends on the type of measurement (the researchers recorded different values for
+precipitation and temperature). Therefore, we must filter our query only on records
+where the *weather_description* is equal to "Maximum temperature", which we do in
 the **Filters** section at the bottom of the explore:
 
-.. image:: images/tutorial/tutorial_25_max_temp_filter.png
+.. image:: _static/images/tutorial/tutorial_25_max_temp_filter.png
 
-Finally, since we only care about the top 10 measurements, we limit our results to 
+Finally, since we only care about the top 10 measurements, we limit our results to
 10 records using the *Row limit* option under the **Options** header:
 
-.. image:: images/tutorial/tutorial_26_row_limit.png
+.. image:: _static/images/tutorial/tutorial_26_row_limit.png
 
 We click **Query** and get the following results:
 
-.. image:: images/tutorial/tutorial_27_top_10_max_temps.png
+.. image:: _static/images/tutorial/tutorial_27_top_10_max_temps.png
 
-In this dataset, the maximum temperature is recorded in tenths of a degree Celsius. 
-The top value of 1370, measured in the middle of Nevada, is equal to 137 C, or roughly 
-278 degrees F. It’s unlikely this value was correctly recorded. We’ve already been able 
-to investigate some outliers with Superset, but this just scratches the surface of what 
+In this dataset, the maximum temperature is recorded in tenths of a degree Celsius.
+The top value of 1370, measured in the middle of Nevada, is equal to 137 C, or roughly
+278 degrees F. It’s unlikely this value was correctly recorded. We’ve already been able
+to investigate some outliers with Superset, but this just scratches the surface of what
 we can do.
 
 You may want to do a couple more things with this measure:
 
-* The default formatting shows values like 1.37k, which may be difficult for some 
-  users to read. It’s likely you may want to see the full, comma-separated value. 
-  You can change the formatting of any measure by editing its config (*Edit Table 
+* The default formatting shows values like 1.37k, which may be difficult for some
+  users to read. It’s likely you may want to see the full, comma-separated value.
+  You can change the formatting of any measure by editing its config (*Edit Table
   Config > List Sql Metric > Edit Metric > D3Format*)
-* Moreover, you may want to see the temperature measurements in plain degrees C, 
-  not tenths of a degree. Or you may want to convert the temperature to degrees 
-  Fahrenheit. You can change the SQL that gets executed against the database, baking 
-  the logic into the measure itself (*Edit Table Config > List Sql Metric > Edit 
+* Moreover, you may want to see the temperature measurements in plain degrees C,
+  not tenths of a degree. Or you may want to convert the temperature to degrees
+  Fahrenheit. You can change the SQL that gets executed against the database, baking
+  the logic into the measure itself (*Edit Table Config > List Sql Metric > Edit
   Metric > SQL Expression*)
 
-For now, though, let’s create a better visualization of these data and add it to 
+For now, though, let’s create a better visualization of these data and add it to
 a dashboard.
 
 We change the Chart Type to "Distribution - Bar Chart":
 
-.. image:: images/tutorial/tutorial_28_bar_chart.png
+.. image:: _static/images/tutorial/tutorial_28_bar_chart.png
 
-Our filter on Maximum temperature measurements was retained, but the query and 
-formatting options are dependent on the chart type, so you’ll have to set the 
+Our filter on Maximum temperature measurements was retained, but the query and
+formatting options are dependent on the chart type, so you’ll have to set the
 values again:
 
-.. image:: images/tutorial/tutorial_29_bar_chart_series_metrics.png
+.. image:: _static/images/tutorial/tutorial_29_bar_chart_series_metrics.png
 
-You should note the extensive formatting options for this chart: the ability to 
-set axis labels, margins, ticks, etc. To make the data presentable to a broad 
-audience, you’ll want to apply many of these to slices that end up in dashboards. 
+You should note the extensive formatting options for this chart: the ability to
+set axis labels, margins, ticks, etc. To make the data presentable to a broad
+audience, you’ll want to apply many of these to slices that end up in dashboards.
 For now, though, we run our query and get the following chart:
 
-.. image:: images/tutorial/tutorial_30_bar_chart_results.png
+.. image:: _static/images/tutorial/tutorial_30_bar_chart_results.png
    :scale: 70%
 
 Creating a slice and dashboard
 ------------------------------
 
-This view might be interesting to researchers, so let’s save it. In Superset, 
-a saved query is called a **Slice**. 
+This view might be interesting to researchers, so let’s save it. In Superset,
+a saved query is called a **Slice**.
 
-To create a slice, click the **Save as** button near the top-left of the 
+To create a slice, click the **Save as** button near the top-left of the
 explore:
 
-.. image:: images/tutorial/tutorial_19_click_query.png
+.. image:: _static/images/tutorial/tutorial_19_click_query.png
 
-A popup should appear, asking you to name the slice, and optionally add it to a 
-dashboard. Since we haven’t yet created any dashboards, we can create one and 
+A popup should appear, asking you to name the slice, and optionally add it to a
+dashboard. Since we haven’t yet created any dashboards, we can create one and
 immediately add our slice to it. Let’s do it:
 
-.. image:: images/tutorial/tutorial_31_save_slice_to_dashboard.png
+.. image:: _static/images/tutorial/tutorial_31_save_slice_to_dashboard.png
    :scale: 70%
 
-Click Save, which will direct you back to your original query. We see that 
+Click Save, which will direct you back to your original query. We see that
 our slice and dashboard were successfully created:
 
-.. image:: images/tutorial/tutorial_32_save_slice_confirmation.png
+.. image:: _static/images/tutorial/tutorial_32_save_slice_confirmation.png
    :scale: 70%
 
 Let’s check out our new dashboard. We click on the **Dashboards** menu:
 
-.. image:: images/tutorial/tutorial_33_dashboard.png
+.. image:: _static/images/tutorial/tutorial_33_dashboard.png
 
 and find the dashboard we just created:
 
-.. image:: images/tutorial/tutorial_34_weather_dashboard.png
+.. image:: _static/images/tutorial/tutorial_34_weather_dashboard.png
 
 Things seemed to have worked - our slice is here!
 
-.. image:: images/tutorial/tutorial_35_slice_on_dashboard.png
+.. image:: _static/images/tutorial/tutorial_35_slice_on_dashboard.png
    :scale: 70%
 
-But it’s a bit smaller than we might like. Luckily, you can adjust the size 
-of slices in a dashboard by clicking, holding and dragging the bottom-right 
+But it’s a bit smaller than we might like. Luckily, you can adjust the size
+of slices in a dashboard by clicking, holding and dragging the bottom-right
 corner to your desired dimensions:
 
-.. image:: images/tutorial/tutorial_36_adjust_dimensions.gif
+.. image:: _static/images/tutorial/tutorial_36_adjust_dimensions.gif
    :scale: 120%
 
-After adjusting the size, you’ll be asked to click on the icon near the 
+After adjusting the size, you’ll be asked to click on the icon near the
 top-right of the dashboard to save the new configuration.
 
-Congrats! You’ve successfully linked, analyzed, and visualized data in Superset. 
-There are a wealth of other table configuration and visualization options, so 
+Congrats! You’ve successfully linked, analyzed, and visualized data in Superset.
+There are a wealth of other table configuration and visualization options, so
 please start exploring and creating slices and dashboards of your own.
diff --git a/docs/build.sh b/docs/build.sh
index c26c39d..9012a43 100755
--- a/docs/build.sh
+++ b/docs/build.sh
@@ -16,8 +16,9 @@
 # limitations under the License.
 #
 rm -rf _build
+cp -r ../superset-frontend/images/ _static/images/
 make html
-#cp -r ../superset/assets/images/ _build/html/_static/img/
-cp -r ../superset/assets/images/ _static/img/
+#cp -r ../superset-frontend/images/ _build/html/_static/img/
 rm -rf /tmp/superset-docs
 cp -r _build/html /tmp/superset-docs
+cp -r _build/html ../superset/static/assets/docs
diff --git a/docs/druid.rst b/docs/druid.rst
index 74139d6..cfbb67f 100644
--- a/docs/druid.rst
+++ b/docs/druid.rst
@@ -43,7 +43,7 @@ element corresponds to Druid aggregation definition. You can create your own
 aggregations manually from the ``List Druid Metric`` tab following Druid
 documentation.
 
-.. image:: images/druid_agg.png
+.. image:: _static/images/druid_agg.png
    :scale: 50 %
 
 Post-Aggregations
diff --git a/docs/gallery.rst b/docs/gallery.rst
index 27b9c2a..4009af4 100644
--- a/docs/gallery.rst
+++ b/docs/gallery.rst
@@ -18,190 +18,189 @@
 Visualizations Gallery
 ======================
 
-.. image:: images/viz_thumbnails/area.png
+.. image:: _static/images/viz_thumbnails/area.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/bar.png
+.. image:: _static/images/viz_thumbnails/bar.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/big_number.png
+.. image:: _static/images/viz_thumbnails/big_number.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/big_number_total.png
+.. image:: _static/images/viz_thumbnails/big_number_total.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/box_plot.png
+.. image:: _static/images/viz_thumbnails/box_plot.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/bubble.png
+.. image:: _static/images/viz_thumbnails/bubble.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/bullet.png
+.. image:: _static/images/viz_thumbnails/bullet.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/cal_heatmap.png
+.. image:: _static/images/viz_thumbnails/cal_heatmap.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/chord.png
+.. image:: _static/images/viz_thumbnails/chord.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/compare.png
+.. image:: _static/images/viz_thumbnails/compare.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/country_map.png
+.. image:: _static/images/viz_thumbnails/country_map.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_arc.png
+.. image:: _static/images/viz_thumbnails/deck_arc.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_geojson.png
+.. image:: _static/images/viz_thumbnails/deck_geojson.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_grid.png
+.. image:: _static/images/viz_thumbnails/deck_grid.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_hex.png
+.. image:: _static/images/viz_thumbnails/deck_hex.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_multi.png
+.. image:: _static/images/viz_thumbnails/deck_multi.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_path.png
+.. image:: _static/images/viz_thumbnails/deck_path.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_polygon.png
+.. image:: _static/images/viz_thumbnails/deck_polygon.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_scatter.png
+.. image:: _static/images/viz_thumbnails/deck_scatter.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/deck_screengrid.png
+.. image:: _static/images/viz_thumbnails/deck_screengrid.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/directed_force.png
+.. image:: _static/images/viz_thumbnails/directed_force.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/dist_bar.png
+.. image:: _static/images/viz_thumbnails/dist_bar.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/dual_line.png
+.. image:: _static/images/viz_thumbnails/dual_line.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/event_flow.png
+.. image:: _static/images/viz_thumbnails/event_flow.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/filter_box.png
+.. image:: _static/images/viz_thumbnails/filter_box.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/heatmap.png
+.. image:: _static/images/viz_thumbnails/heatmap.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/histogram.png
+.. image:: _static/images/viz_thumbnails/histogram.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/horizon.png
+.. image:: _static/images/viz_thumbnails/horizon.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/iframe.png
+.. image:: _static/images/viz_thumbnails/iframe.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/line.png
+.. image:: _static/images/viz_thumbnails/line.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/mapbox.png
+.. image:: _static/images/viz_thumbnails/mapbox.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/markup.png
+.. image:: _static/images/viz_thumbnails/markup.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/paired_ttest.png
+.. image:: _static/images/viz_thumbnails/paired_ttest.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/para.png
+.. image:: _static/images/viz_thumbnails/para.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/partition.png
+.. image:: _static/images/viz_thumbnails/partition.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/pie.png
+.. image:: _static/images/viz_thumbnails/pie.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/pivot_table.png
+.. image:: _static/images/viz_thumbnails/pivot_table.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/rose.png
+.. image:: _static/images/viz_thumbnails/rose.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/sankey.png
+.. image:: _static/images/viz_thumbnails/sankey.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/separator.png
+.. image:: _static/images/viz_thumbnails/separator.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/sunburst.png
+.. image:: _static/images/viz_thumbnails/sunburst.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/table.png
+.. image:: _static/images/viz_thumbnails/table.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/time_pivot.png
+.. image:: _static/images/viz_thumbnails/time_pivot.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/time_table.png
+.. image:: _static/images/viz_thumbnails/time_table.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/treemap.png
+.. image:: _static/images/viz_thumbnails/treemap.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/word_cloud.png
+.. image:: _static/images/viz_thumbnails/word_cloud.png
    :scale: 25 %
 
 
-.. image:: images/viz_thumbnails/world_map.png
+.. image:: _static/images/viz_thumbnails/world_map.png
    :scale: 25 %
-
diff --git a/docs/images b/docs/images
index 4d55b64..b3b4f39 120000
--- a/docs/images
+++ b/docs/images
@@ -1 +1 @@
-../superset/assets/images/
\ No newline at end of file
+../superset-frontend/images
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index ba32a7f..049885f 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -17,12 +17,12 @@
 
 |apache_img| |superset_img|
 
-.. |apache_img| image:: images/apache_feather.png
+.. |apache_img| image:: _static/images/apache_feather.png
    :width: 7%
    :target: http://www.apache.org/
    :alt: The Apache Software Foundation
 
-.. |superset_img| image:: images/s.png
+.. |superset_img| image:: _static/images/s.png
    :width: 25%
 
 Apache Superset (incubating)
@@ -134,19 +134,19 @@ be supported as well.
 Screenshots
 -----------
 
-.. image:: images/screenshots/bank_dash.png
+.. image:: _static/images/screenshots/bank_dash.png
 
 ------
 
-.. image:: images/screenshots/explore.png
+.. image:: _static/images/screenshots/explore.png
 
 ------
 
-.. image:: images/screenshots/sqllab.png
+.. image:: _static/images/screenshots/sqllab.png
 
 ------
 
-.. image:: images/screenshots/deckgl_dash.png
+.. image:: _static/images/screenshots/deckgl_dash.png
 
 ------
 
diff --git a/docs/installation.rst b/docs/installation.rst
index b0a49ce..887edd3 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -648,7 +648,7 @@ It is possible to tweak the database connection information using the
 parameters exposed by SQLAlchemy. In the ``Database`` edit view, you will
 find an ``extra`` field as a ``JSON`` blob.
 
-.. image:: images/tutorial/add_db.png
+.. image:: _static/images/tutorial/add_db.png
    :scale: 30 %
 
 This JSON string contains extra configuration elements. The ``engine_params``
diff --git a/docs/security.rst b/docs/security.rst
index 0e796e3..3569999 100644
--- a/docs/security.rst
+++ b/docs/security.rst
@@ -87,7 +87,7 @@ sure the users with limited access have [only] the Gamma role assigned to
 them. Second, create a new role (``Menu -> Security -> List Roles``) and
 click the ``+`` sign.
 
-.. image:: images/create_role.png
+.. image:: _static/images/create_role.png
    :scale: 50 %
 
 This new window allows you to give this new role a name, attribute it to users
diff --git a/docs/sqllab.rst b/docs/sqllab.rst
index 6060726..992a689 100644
--- a/docs/sqllab.rst
+++ b/docs/sqllab.rst
@@ -23,7 +23,7 @@ SQL Lab is a modern, feature-rich SQL IDE written in
 
 ------
 
-.. image:: images/screenshots/sqllab.png
+.. image:: _static/images/screenshots/sqllab.png
 
 ------
 
diff --git a/docs/usertutorial.rst b/docs/usertutorial.rst
index 096a229..9c69262 100644
--- a/docs/usertutorial.rst
+++ b/docs/usertutorial.rst
@@ -44,7 +44,7 @@ In the top menu, select :menuselection:`Sources --> Databases`. Find the
 :guilabel:`examples` database in the list and select the edit record
 button.
 
-.. image:: images/usertutorial/edit-record.png
+.. image:: _static/images/usertutorial/edit-record.png
 
 Within the :guilabel:`Edit Database` page, check the
 :guilabel:`Allow Csv Upload` checkbox.
@@ -59,17 +59,17 @@ Download the data for this tutorial to your computer from
 
 In the top menu, select :menuselection:`Sources --> Upload a CSV`.
 
-.. image:: images/usertutorial/upload_a_csv.png
+.. image:: _static/images/usertutorial/upload_a_csv.png
 
 Then, enter the :guilabel:`Table name` as `tutorial_flights`
 and select the :guilabel:`CSV file` from your computer.
 
-.. image:: images/usertutorial/csv_to_database_configuration.png
+.. image:: _static/images/usertutorial/csv_to_database_configuration.png
 
 Next enter the text `Travel Date` into the
 :guilabel:`Parse Dates` field.
 
-.. image:: images/usertutorial/parse_dates_column.png
+.. image:: _static/images/usertutorial/parse_dates_column.png
 
 Leaving all the other options in their default settings, select
 :guilabel:`Save` at the bottom of the page.
@@ -82,17 +82,17 @@ the number of flights and cost per travel class.
 
 To create a new chart, select the :menuselection:`New --> Chart`.
 
-.. image:: images/usertutorial/add_new_chart.png
+.. image:: _static/images/usertutorial/add_new_chart.png
 
 Once in the :guilabel:`Create a new chart` dialogue, select
 :guilabel:`tutorial_flights` from the :guilabel:`Chose a datasource`
 dropdown.
 
-.. image:: images/usertutorial/chose_a_datasource.png
+.. image:: _static/images/usertutorial/chose_a_datasource.png
 
 Next, select the visualization type as :guilabel:`Table`.
 
-.. image:: images/usertutorial/select_table_visualization_type.png
+.. image:: _static/images/usertutorial/select_table_visualization_type.png
 
 Then, select :guilabel:`Create new chart` to go into the chart view.
 
@@ -103,7 +103,7 @@ within the :guilabel:`Time` section, remove the filter on
 changing the selection to :guilabel:`No filter`, with a final
 :guilabel:`OK` to confirm your selection.
 
-.. image:: images/usertutorial/no_filter_on_time_filter.png
+.. image:: _static/images/usertutorial/no_filter_on_time_filter.png
 
 Now, we want to specify the rows in our table by using the
 :guilabel:`Group by` option. Since in this example, we want to
@@ -117,11 +117,11 @@ since we have a row per flight), is already there. To add cost, within
 :guilabel:`Metrics`, select :guilabel:`Cost`. :guilabel:`Save` the
 default aggregation option, which is to sum the column.
 
-.. image:: images/usertutorial/sum_cost_column.png
+.. image:: _static/images/usertutorial/sum_cost_column.png
 
 Finally, select :guilabel:`Run Query` to see the results of the table.
 
-.. image:: images/usertutorial/tutorial_table.png
+.. image:: _static/images/usertutorial/tutorial_table.png
 
 Congratulations, you have created your first visualization in Apache
 Superset!
@@ -133,7 +133,7 @@ name as Tutorial Table (you will be able to find it again through the
 select :guilabel:`Add to new dashboard` and enter `Tutorial Dashboard`.
 Finally, select :guilabel:`Save & go to dashboard`.
 
-.. image:: images/usertutorial/save_tutorial_table.png
+.. image:: _static/images/usertutorial/save_tutorial_table.png
 
 Dashboard basics
 ----------------
@@ -149,7 +149,7 @@ section. Select :guilabel:`Edit dashboard` and then hover over the
 table. By selecting the bottom right hand corner of the table (the
 cursor will change too), you can resize it by dragging and dropping.
 
-.. image:: images/usertutorial/resize_tutorial_table_on_dashboard.png
+.. image:: _static/images/usertutorial/resize_tutorial_table_on_dashboard.png
 
 Finally, save your changes by selecting :guilabel:`Save changes` in the
 top right.
@@ -180,7 +180,7 @@ June 2011 respectively by either entering directly the dates or using
 the calendar widget (by selecting the month name and then the year, you
 can move more quickly to far away dates).
 
-.. image:: images/usertutorial/select_dates_pivot_table.png
+.. image:: _static/images/usertutorial/select_dates_pivot_table.png
 
 Next, within the :guilabel:`Query` section, remove the default COUNT(*)
 and add Cost, keeping the default SUM aggregate. Note that Apache
@@ -196,12 +196,12 @@ Within :guilabel:`Columns`, select first :guilabel:`Department` and then
 :guilabel:`Travel Class`. All set – let’s :guilabel:`Run Query` to see
 some data!
 
-.. image:: images/usertutorial/tutorial_pivot_table.png
+.. image:: _static/images/usertutorial/tutorial_pivot_table.png
 
 You should see months in the rows and Department and Travel Class in the
 columns. To get this in our dashboard, select :guilabel:`Save`, name the
 chart Tutorial Pivot and using
-:guilabel:`Add chart to existing dashboard` select 
+:guilabel:`Add chart to existing dashboard` select
 :guilabel:`Tutorial Dashboard`, and then finally
 :guilabel:`Save & go to dashboard`.
 
@@ -224,7 +224,7 @@ add :guilabel:`Cost`. This time, we want to change how this column is
 aggregated to show the mean value: we can do this by selecting
 :guilabel:`AVG` in the :guilabel:`aggregate` dropdown.
 
-.. image:: images/usertutorial/average_aggregate_for_cost.png
+.. image:: _static/images/usertutorial/average_aggregate_for_cost.png
 
 Next, select :guilabel:`Run Query` to show the data on the chart.
 
@@ -245,7 +245,7 @@ filter by selecting No in the :guilabel:`Show Range Filter` drop down
 and adding some labels using :guilabel:`X Axis Label` and
 :guilabel:`Y Axis Label`.
 
-.. image:: images/usertutorial/tutorial_line_chart.png
+.. image:: _static/images/usertutorial/tutorial_line_chart.png
 
 Once you’re done, :guilabel:`Save` as Tutorial Line Chart, use
 :guilabel:`Add chart to
@@ -265,7 +265,7 @@ Within the Insert components pane, drag and drop a :guilabel:`Markdown`
 box on the dashboard. Look for the blue lines which indicate the anchor
 where the box will go.
 
-.. image:: images/usertutorial/blue_bar_insert_component.png
+.. image:: _static/images/usertutorial/blue_bar_insert_component.png
 
 Now, to edit the text, select the box. You can enter text, in markdown
 format (see `this Markdown
@@ -274,7 +274,7 @@ for more information about this format). You can toggle between
 :guilabel:`Edit` and :guilabel:`Preview` using the menu on the top of
 the box.
 
-.. image:: images/usertutorial/markdown.png
+.. image:: _static/images/usertutorial/markdown.png
 
 To exit, select any other part of the dashboard. Finally, don’t forget
 to keep your changes using :guilabel:`Save changes`.
@@ -307,7 +307,7 @@ select :guilabel:`Run Query`. This gives us a preview of our filter.
 Next, remove the date filter by unchecking the :guilabel:`Date Filter`
 checkbox.
 
-.. image:: images/usertutorial/filter_on_origin_country.png
+.. image:: _static/images/usertutorial/filter_on_origin_country.png
 
 Finally, select :guilabel:`Save`, name the chart as Tutorial Filter, add
 the chart to our existing Tutorial Dashboard and then
@@ -329,7 +329,7 @@ simply select :guilabel:`Draft` next to the title of your dashboard on
 the top left to change your dashboard to be in :guilabel:`Published`
 state. You can also favorite this dashboard by selecting the star.
 
-.. image:: images/usertutorial/publish_dashboard.png
+.. image:: _static/images/usertutorial/publish_dashboard.png
 
 Taking your dashboard further
 -----------------------------
@@ -358,7 +358,7 @@ by selecting the green plus sign. Then, select the
 :guilabel:`Volcanic Eruptions` layer, add a short description Grímsvötn
 and the eruption dates (23-25 May 2011) before finally saving.
 
-.. image:: images/usertutorial/edit_annotation.png
+.. image:: _static/images/usertutorial/edit_annotation.png
 
 Then, navigate to the line chart by going to :guilabel:`Charts` then
 selecting :guilabel:`Tutorial
@@ -368,14 +368,14 @@ Line Chart` from the list. Next, go to the
 
 - name the layer as `Volcanic Eruptions`
 - change the :guilabel:`Annotation Layer Type` to :guilabel:`Event`
-- set the :guilabel:`Annotation Source` as :guilabel:`Superset annotation` 
+- set the :guilabel:`Annotation Source` as :guilabel:`Superset annotation`
 - specify the :guilabel:`Annotation Layer` as :guilabel:`Volcanic Eruptions`
 
-.. image:: images/usertutorial/annotation_settings.png
+.. image:: _static/images/usertutorial/annotation_settings.png
 
 Select :guilabel:`Apply` to see your annotation shown on the chart.
 
-.. image:: images/usertutorial/annotation.png
+.. image:: _static/images/usertutorial/annotation.png
 
 If you wish, you can change how your annotation looks by changing the
 settings in the :guilabel:`Display configuration` section. Otherwise,
@@ -418,7 +418,7 @@ Next, in the query section, change the :guilabel:`Metrics` to the sum of
 :guilabel:`Cost`. Select :guilabel:`Run Query` to show the chart. You
 should see the total cost per day for each month in October 2011.
 
-.. image:: images/usertutorial/advanced_analytics_base.png
+.. image:: _static/images/usertutorial/advanced_analytics_base.png
 
 Finally, save the visualization as Tutorial Advanced Analytics Base,
 adding it to the Tutorial Dashboard.
@@ -443,7 +443,7 @@ After displaying the chart by selecting :guilabel:`Run Query` you will
 see that the data is less variable and that the series starts later as
 the ramp up period is excluded.
 
-.. image:: images/usertutorial/rolling_mean.png
+.. image:: _static/images/usertutorial/rolling_mean.png
 
 Save the chart as Tutorial Rolling Mean and add it to the Tutorial
 Dashboard.
@@ -464,14 +464,14 @@ typing in "minus 1 week" (note this box accepts input in natural
 language). :guilabel:`Run Query` to see the new chart, which has an
 additional series with the same values, shifted a week back in time.
 
-.. image:: images/usertutorial/time_comparison_two_series.png
+.. image:: _static/images/usertutorial/time_comparison_two_series.png
 
 Then, change the :guilabel:`Calculation type` to
 :guilabel:`Absolute difference` and select :guilabel:`Run
 Query`. We can now see only one series again, this time showing the
 difference between the two series we saw previously.
 
-.. image:: images/usertutorial/time_comparison_absolute_difference.png
+.. image:: _static/images/usertutorial/time_comparison_absolute_difference.png
 
 Save the chart as Tutorial Time Comparison and add it to the Tutorial
 Dashboard.
@@ -488,7 +488,7 @@ Next, in the :guilabel:`Python Functions` subsection of
 in the :guilabel:`Rule` and median as the :guilabel:`Method` and show
 the chart by selecting :guilabel:`Run Query`.
 
-.. image:: images/usertutorial/resample.png
+.. image:: _static/images/usertutorial/resample.png
 
 Note that now we have a single data point every 7 days. In our case, the
 value showed corresponds to the median value within the seven daily data
@@ -505,4 +505,3 @@ side and compare the different outputs.
 .. [#f1] See the Pandas `rolling method documentation <https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rolling.html>`_ for more information.
 .. [#f2] See the Pandas `cumsum method documentation <https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.cumsum.html>`_ for more information.
 .. [#f3] See the Pandas `resample method documentation <https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html>`_ for more information.
-
diff --git a/docs/visualization.rst b/docs/visualization.rst
index 6351847..b56a979 100644
--- a/docs/visualization.rst
+++ b/docs/visualization.rst
@@ -95,7 +95,7 @@ List of Countries
 +----------+-----------------------+
 |  BR-MS   | Mato Grosso do Sul    |
 +----------+-----------------------+
-|  BR-MT   | Mato Grosso           | 
+|  BR-MT   | Mato Grosso           |
 +----------+-----------------------+
 |  BR-MG   | Minas Gerais          |
 +----------+-----------------------+
@@ -105,11 +105,11 @@ List of Countries
 +----------+-----------------------+
 |  BR-PR   | Paraná                |
 +----------+-----------------------+
-|  BR-PE   | Pernambuco            |  
+|  BR-PE   | Pernambuco            |
 +----------+-----------------------+
-|  BR-PI   | Piauí                 |  
+|  BR-PI   | Piauí                 |
 +----------+-----------------------+
-|  BR-RJ   | Rio de Janeiro        |  
+|  BR-RJ   | Rio de Janeiro        |
 +----------+-----------------------+
 |  BR-RN   | Rio Grande do Norte   |
 +----------+-----------------------+
@@ -1789,7 +1789,7 @@ List of Countries
 +------+------------------------------+
 |ISO   | Name of region               |
 +======+==============================+
-|UA-71 |           Cherkasy           |  
+|UA-71 |           Cherkasy           |
 +------+------------------------------+
 |UA-74 |         Chernihiv            |
 +------+------------------------------+
@@ -1815,7 +1815,7 @@ List of Countries
 +------+------------------------------+
 |UA-35 |         Kirovohrad           |
 +------+------------------------------+
-|UA-46 |         L'viv                | 
+|UA-46 |         L'viv                |
 +------+------------------------------+
 |UA-09 |         Luhans'k             |
 +------+------------------------------+
@@ -1823,7 +1823,7 @@ List of Countries
 +------+------------------------------+
 |UA-51 |         Odessa               |
 +------+------------------------------+
-|UA-53 |         Poltava              | 
+|UA-53 |         Poltava              |
 +------+------------------------------+
 |UA-56 |         Rivne                |
 +------+------------------------------+
@@ -1964,17 +1964,17 @@ To add a new country in country map tools, we need to follow the following steps
 1. You need shapefiles which contain data of your map.
    You can get this file on this site: https://www.diva-gis.org/gdata
 
-2. You need to add ISO 3166-2 with column name ISO for all record in your file. 
+2. You need to add ISO 3166-2 with column name ISO for all record in your file.
    It's important because it's a norm for mapping your data with geojson file
 
 3. You need to convert shapefile to geojson file.
    This action can make with ogr2ogr tools: https://www.gdal.org/ogr2ogr.html
 
-4. Put your geojson file in next folder : superset/assets/src/visualizations/CountryMap/countries with the next name : nameofyourcountries.geojson
+4. Put your geojson file in next folder : superset-frontend/src/visualizations/CountryMap/countries with the next name : nameofyourcountries.geojson
 
 5. You can to reduce size of geojson file on this site: https://mapshaper.org/
 
-6. Go in file superset/assets/src/explore/controls.jsx
+6. Go in file superset-frontend/src/explore/controls.jsx
 
 7. Add your country in component 'select_country'
    Example :
@@ -2005,7 +2005,3 @@ To add a new country in country map tools, we need to follow the following steps
         ].map(s => [s, s]),
         description: 'The name of country that Superset should display',
     },
-       
-
-
-
diff --git a/pypi_push.sh b/pypi_push.sh
index 98daab4..065fa26 100755
--- a/pypi_push.sh
+++ b/pypi_push.sh
@@ -18,8 +18,8 @@
 # and are on the correct branch
 cd ${SUPERSET_REPO_DIR}
 git branch
-rm superset/assets/dist/*
-cd superset/assets/
+rm superset/static/assets/*
+cd superset-frontend/
 npm ci && npm run build
 cd ../..
 python setup.py sdist
diff --git a/scripts/check_license.sh b/scripts/check_license.sh
index f1bea2a..17c6ba6 100755
--- a/scripts/check_license.sh
+++ b/scripts/check_license.sh
@@ -71,9 +71,6 @@ mkdir -p ${TMP_DIR}/lib
     exit 1
 }
 
-# This is the target of a symlink in superset/assets/docs - and rat exclude doesn't cope with the symlink target doesn't exist
-mkdir -p docs/_build/html/
-
 echo "Running license checks. This can take a while."
 echo "$FWDIR"/.rat-excludes
 $java_cmd -jar "$rat_jar" -E "$FWDIR"/.rat-excludes  -d "$FWDIR" > rat-results.txt
diff --git a/setup.py b/setup.py
index 8498e5c..1d30af2 100644
--- a/setup.py
+++ b/setup.py
@@ -27,7 +27,7 @@ if sys.version_info < (3, 6):
 
 BASE_DIR = os.path.abspath(os.path.dirname(__file__))
 
-PACKAGE_JSON = os.path.join(BASE_DIR, "superset", "assets", "package.json")
+PACKAGE_JSON = os.path.join(BASE_DIR, "superset-frontend", "package.json")
 with open(PACKAGE_JSON, "r") as package_file:
     version_string = json.load(package_file)["version"]
 
@@ -50,9 +50,7 @@ print("VERSION: " + version_string)
 print("GIT SHA: " + GIT_SHA)
 print("-==-" * 15)
 
-VERSION_INFO_FILE = os.path.join(
-    BASE_DIR, "superset", "static", "assets", "version_info.json"
-)
+VERSION_INFO_FILE = os.path.join(BASE_DIR, "superset-frontend", "version_info.json")
 
 with open(VERSION_INFO_FILE, "w") as version_file:
     json.dump(version_info, version_file)
diff --git a/superset/assets/.babelrc b/superset-frontend/.babelrc
similarity index 100%
rename from superset/assets/.babelrc
rename to superset-frontend/.babelrc
diff --git a/superset/assets/.eslintignore b/superset-frontend/.eslintignore
similarity index 98%
rename from superset/assets/.eslintignore
rename to superset-frontend/.eslintignore
index 8d79f90..a92bf58 100644
--- a/superset/assets/.eslintignore
+++ b/superset-frontend/.eslintignore
@@ -25,4 +25,4 @@ stylesheets/*
 vendor/*
 docs/*
 src/dashboard/deprecated/*
-**/node_modules
\ No newline at end of file
+**/node_modules
diff --git a/superset/assets/.eslintrc b/superset-frontend/.eslintrc
similarity index 100%
rename from superset/assets/.eslintrc
rename to superset-frontend/.eslintrc
diff --git a/superset/assets/.prettierrc b/superset-frontend/.prettierrc
similarity index 100%
rename from superset/assets/.prettierrc
rename to superset-frontend/.prettierrc
diff --git a/superset/assets/branding/superset-logo-horiz-apache.png b/superset-frontend/branding/superset-logo-horiz-apache.png
similarity index 100%
rename from superset/assets/branding/superset-logo-horiz-apache.png
rename to superset-frontend/branding/superset-logo-horiz-apache.png
diff --git a/superset/assets/branding/superset-logo-horiz-apache.svg b/superset-frontend/branding/superset-logo-horiz-apache.svg
similarity index 100%
rename from superset/assets/branding/superset-logo-horiz-apache.svg
rename to superset-frontend/branding/superset-logo-horiz-apache.svg
diff --git a/superset/assets/branding/superset-logo-horiz.png b/superset-frontend/branding/superset-logo-horiz.png
similarity index 100%
rename from superset/assets/branding/superset-logo-horiz.png
rename to superset-frontend/branding/superset-logo-horiz.png
diff --git a/superset/assets/branding/superset-logo-horiz.svg b/superset-frontend/branding/superset-logo-horiz.svg
similarity index 100%
rename from superset/assets/branding/superset-logo-horiz.svg
rename to superset-frontend/branding/superset-logo-horiz.svg
diff --git a/superset/assets/branding/superset-logo-stacked-apache.png b/superset-frontend/branding/superset-logo-stacked-apache.png
similarity index 100%
rename from superset/assets/branding/superset-logo-stacked-apache.png
rename to superset-frontend/branding/superset-logo-stacked-apache.png
diff --git a/superset/assets/branding/superset-logo-stacked-apache.svg b/superset-frontend/branding/superset-logo-stacked-apache.svg
similarity index 100%
rename from superset/assets/branding/superset-logo-stacked-apache.svg
rename to superset-frontend/branding/superset-logo-stacked-apache.svg
diff --git a/superset/assets/branding/superset-logo-stacked.png b/superset-frontend/branding/superset-logo-stacked.png
similarity index 100%
rename from superset/assets/branding/superset-logo-stacked.png
rename to superset-frontend/branding/superset-logo-stacked.png
diff --git a/superset/assets/branding/superset-logo-stacked.svg b/superset-frontend/branding/superset-logo-stacked.svg
similarity index 100%
rename from superset/assets/branding/superset-logo-stacked.svg
rename to superset-frontend/branding/superset-logo-stacked.svg
diff --git a/superset/assets/cypress-base/cypress.json b/superset-frontend/cypress-base/cypress.json
similarity index 100%
rename from superset/assets/cypress-base/cypress.json
rename to superset-frontend/cypress-base/cypress.json
diff --git a/superset/assets/cypress-base/cypress/.eslintrc b/superset-frontend/cypress-base/cypress/.eslintrc
similarity index 100%
rename from superset/assets/cypress-base/cypress/.eslintrc
rename to superset-frontend/cypress-base/cypress/.eslintrc
diff --git a/superset/assets/cypress-base/cypress/fixtures/example.json b/superset-frontend/cypress-base/cypress/fixtures/example.json
similarity index 100%
rename from superset/assets/cypress-base/cypress/fixtures/example.json
rename to superset-frontend/cypress-base/cypress/fixtures/example.json
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/controls.js b/superset-frontend/cypress-base/cypress/integration/dashboard/controls.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/controls.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/controls.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/dashboard.helper.js b/superset-frontend/cypress-base/cypress/integration/dashboard/dashboard.helper.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/dashboard.helper.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/dashboard.helper.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/edit_mode.js b/superset-frontend/cypress-base/cypress/integration/dashboard/edit_mode.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/edit_mode.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/edit_mode.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/fav_star.js b/superset-frontend/cypress-base/cypress/integration/dashboard/fav_star.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/fav_star.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/fav_star.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/filter.js b/superset-frontend/cypress-base/cypress/integration/dashboard/filter.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/filter.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/filter.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/index.test.js b/superset-frontend/cypress-base/cypress/integration/dashboard/index.test.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/index.test.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/index.test.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/load.js b/superset-frontend/cypress-base/cypress/integration/dashboard/load.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/load.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/load.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/save.js b/superset-frontend/cypress-base/cypress/integration/dashboard/save.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/save.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/save.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/tabs.js b/superset-frontend/cypress-base/cypress/integration/dashboard/tabs.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/tabs.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/tabs.js
diff --git a/superset/assets/cypress-base/cypress/integration/dashboard/url_params.js b/superset-frontend/cypress-base/cypress/integration/dashboard/url_params.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/dashboard/url_params.js
rename to superset-frontend/cypress-base/cypress/integration/dashboard/url_params.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/chart.test.js b/superset-frontend/cypress-base/cypress/integration/explore/chart.test.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/chart.test.js
rename to superset-frontend/cypress-base/cypress/integration/explore/chart.test.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/control.test.js b/superset-frontend/cypress-base/cypress/integration/explore/control.test.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/control.test.js
rename to superset-frontend/cypress-base/cypress/integration/explore/control.test.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/link.test.js b/superset-frontend/cypress-base/cypress/integration/explore/link.test.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/link.test.js
rename to superset-frontend/cypress-base/cypress/integration/explore/link.test.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/area.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/area.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/area.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/area.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/big_number.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/big_number.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/big_number.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/big_number.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/big_number_total.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/big_number_total.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/big_number_total.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/big_number_total.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/box_plot.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/box_plot.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/box_plot.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/box_plot.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/bubble.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/bubble.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/bubble.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/bubble.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/compare.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/compare.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/compare.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/compare.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/dist_bar.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/dist_bar.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/dist_bar.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/dist_bar.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/dual_line.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/dual_line.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/dual_line.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/dual_line.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/filter_box.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/filter_box.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/filter_box.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/filter_box.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/histogram.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/histogram.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/histogram.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/histogram.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/index.test.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/index.test.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/index.test.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/index.test.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/line.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/line.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/line.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/line.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/pie.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/pie.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/pie.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/pie.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/pivot_table.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/pivot_table.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/pivot_table.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/pivot_table.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/sankey.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/sankey.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/sankey.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/sankey.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/shared.helper.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/shared.helper.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/shared.helper.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/shared.helper.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/sunburst.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/sunburst.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/sunburst.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/sunburst.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/table.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/table.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/table.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/table.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/time_table.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/time_table.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/time_table.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/time_table.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/treemap.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/treemap.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/treemap.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/treemap.js
diff --git a/superset/assets/cypress-base/cypress/integration/explore/visualizations/world_map.js b/superset-frontend/cypress-base/cypress/integration/explore/visualizations/world_map.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/explore/visualizations/world_map.js
rename to superset-frontend/cypress-base/cypress/integration/explore/visualizations/world_map.js
diff --git a/superset/assets/cypress-base/cypress/integration/sqllab/index.test.js b/superset-frontend/cypress-base/cypress/integration/sqllab/index.test.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/sqllab/index.test.js
rename to superset-frontend/cypress-base/cypress/integration/sqllab/index.test.js
diff --git a/superset/assets/cypress-base/cypress/integration/sqllab/query.js b/superset-frontend/cypress-base/cypress/integration/sqllab/query.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/sqllab/query.js
rename to superset-frontend/cypress-base/cypress/integration/sqllab/query.js
diff --git a/superset/assets/cypress-base/cypress/integration/sqllab/sourcePanel.js b/superset-frontend/cypress-base/cypress/integration/sqllab/sourcePanel.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/sqllab/sourcePanel.js
rename to superset-frontend/cypress-base/cypress/integration/sqllab/sourcePanel.js
diff --git a/superset/assets/cypress-base/cypress/integration/sqllab/sqllab.helper.js b/superset-frontend/cypress-base/cypress/integration/sqllab/sqllab.helper.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/sqllab/sqllab.helper.js
rename to superset-frontend/cypress-base/cypress/integration/sqllab/sqllab.helper.js
diff --git a/superset/assets/cypress-base/cypress/integration/sqllab/tabs.js b/superset-frontend/cypress-base/cypress/integration/sqllab/tabs.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/integration/sqllab/tabs.js
rename to superset-frontend/cypress-base/cypress/integration/sqllab/tabs.js
diff --git a/superset/assets/cypress-base/cypress/plugins/index.js b/superset-frontend/cypress-base/cypress/plugins/index.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/plugins/index.js
rename to superset-frontend/cypress-base/cypress/plugins/index.js
diff --git a/superset/assets/cypress-base/cypress/support/commands.js b/superset-frontend/cypress-base/cypress/support/commands.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/support/commands.js
rename to superset-frontend/cypress-base/cypress/support/commands.js
diff --git a/superset/assets/cypress-base/cypress/support/index.js b/superset-frontend/cypress-base/cypress/support/index.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/support/index.js
rename to superset-frontend/cypress-base/cypress/support/index.js
diff --git a/superset/assets/cypress-base/cypress/utils/readResponseBlob.js b/superset-frontend/cypress-base/cypress/utils/readResponseBlob.js
similarity index 100%
rename from superset/assets/cypress-base/cypress/utils/readResponseBlob.js
rename to superset-frontend/cypress-base/cypress/utils/readResponseBlob.js
diff --git a/superset/assets/cypress-base/package-lock.json b/superset-frontend/cypress-base/package-lock.json
similarity index 100%
rename from superset/assets/cypress-base/package-lock.json
rename to superset-frontend/cypress-base/package-lock.json
diff --git a/superset/assets/cypress-base/package.json b/superset-frontend/cypress-base/package.json
similarity index 100%
rename from superset/assets/cypress-base/package.json
rename to superset-frontend/cypress-base/package.json
diff --git a/superset/assets/cypress_build.sh b/superset-frontend/cypress_build.sh
similarity index 98%
rename from superset/assets/cypress_build.sh
rename to superset-frontend/cypress_build.sh
index a6ca915..80616e7 100755
--- a/superset/assets/cypress_build.sh
+++ b/superset-frontend/cypress_build.sh
@@ -32,7 +32,7 @@ time npm ci
 time npm run build
 echo "[completed js build steps]"
 
-#setup cypress 
+#setup cypress
 cd cypress-base
 time npm ci
 CYPRESS_PATH='cypress/integration/'${1}'/*'
diff --git a/superset/assets/images/apache_feather.png b/superset-frontend/images/apache_feather.png
similarity index 100%
rename from superset/assets/images/apache_feather.png
rename to superset-frontend/images/apache_feather.png
diff --git a/superset/assets/images/babies.png b/superset-frontend/images/babies.png
similarity index 100%
rename from superset/assets/images/babies.png
rename to superset-frontend/images/babies.png
diff --git a/superset/assets/images/bubble.png b/superset-frontend/images/bubble.png
similarity index 100%
rename from superset/assets/images/bubble.png
rename to superset-frontend/images/bubble.png
diff --git a/superset/assets/images/cloud.png b/superset-frontend/images/cloud.png
similarity index 100%
rename from superset/assets/images/cloud.png
rename to superset-frontend/images/cloud.png
diff --git a/superset/assets/images/create_role.png b/superset-frontend/images/create_role.png
similarity index 100%
rename from superset/assets/images/create_role.png
rename to superset-frontend/images/create_role.png
diff --git a/superset/assets/images/dash.png b/superset-frontend/images/dash.png
similarity index 100%
rename from superset/assets/images/dash.png
rename to superset-frontend/images/dash.png
diff --git a/superset/assets/images/druid_agg.png b/superset-frontend/images/druid_agg.png
similarity index 100%
rename from superset/assets/images/druid_agg.png
rename to superset-frontend/images/druid_agg.png
diff --git a/superset/assets/images/favicon.png b/superset-frontend/images/favicon.png
similarity index 100%
rename from superset/assets/images/favicon.png
rename to superset-frontend/images/favicon.png
diff --git a/superset/assets/images/loading.gif b/superset-frontend/images/loading.gif
similarity index 100%
rename from superset/assets/images/loading.gif
rename to superset-frontend/images/loading.gif
diff --git a/superset/assets/images/noimg.png b/superset-frontend/images/noimg.png
similarity index 100%
rename from superset/assets/images/noimg.png
rename to superset-frontend/images/noimg.png
diff --git a/superset/assets/images/s.png b/superset-frontend/images/s.png
similarity index 100%
rename from superset/assets/images/s.png
rename to superset-frontend/images/s.png
diff --git a/superset/assets/images/screenshots/bank_dash.png b/superset-frontend/images/screenshots/bank_dash.png
similarity index 100%
rename from superset/assets/images/screenshots/bank_dash.png
rename to superset-frontend/images/screenshots/bank_dash.png
diff --git a/superset/assets/images/screenshots/deckgl_dash.png b/superset-frontend/images/screenshots/deckgl_dash.png
similarity index 100%
rename from superset/assets/images/screenshots/deckgl_dash.png
rename to superset-frontend/images/screenshots/deckgl_dash.png
diff --git a/superset/assets/images/screenshots/explore.png b/superset-frontend/images/screenshots/explore.png
similarity index 100%
rename from superset/assets/images/screenshots/explore.png
rename to superset-frontend/images/screenshots/explore.png
diff --git a/superset/assets/images/screenshots/sqllab.png b/superset-frontend/images/screenshots/sqllab.png
similarity index 100%
rename from superset/assets/images/screenshots/sqllab.png
rename to superset-frontend/images/screenshots/sqllab.png
diff --git a/superset/assets/images/screenshots/visualizations.png b/superset-frontend/images/screenshots/visualizations.png
similarity index 100%
rename from superset/assets/images/screenshots/visualizations.png
rename to superset-frontend/images/screenshots/visualizations.png
diff --git a/superset/assets/images/superset-logo@2x.png b/superset-frontend/images/superset-logo@2x.png
similarity index 100%
rename from superset/assets/images/superset-logo@2x.png
rename to superset-frontend/images/superset-logo@2x.png
diff --git a/superset/assets/images/superset.png b/superset-frontend/images/superset.png
similarity index 100%
rename from superset/assets/images/superset.png
rename to superset-frontend/images/superset.png
diff --git a/superset/assets/images/superset_screenshot.png b/superset-frontend/images/superset_screenshot.png
similarity index 100%
rename from superset/assets/images/superset_screenshot.png
rename to superset-frontend/images/superset_screenshot.png
diff --git a/superset/assets/images/tutorial/add_db.png b/superset-frontend/images/tutorial/add_db.png
similarity index 100%
rename from superset/assets/images/tutorial/add_db.png
rename to superset-frontend/images/tutorial/add_db.png
diff --git a/superset/assets/images/tutorial/tutorial_01_sources_database.png b/superset-frontend/images/tutorial/tutorial_01_sources_database.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_01_sources_database.png
rename to superset-frontend/images/tutorial/tutorial_01_sources_database.png
diff --git a/superset/assets/images/tutorial/tutorial_02_add_database.png b/superset-frontend/images/tutorial/tutorial_02_add_database.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_02_add_database.png
rename to superset-frontend/images/tutorial/tutorial_02_add_database.png
diff --git a/superset/assets/images/tutorial/tutorial_03_database_name.png b/superset-frontend/images/tutorial/tutorial_03_database_name.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_03_database_name.png
rename to superset-frontend/images/tutorial/tutorial_03_database_name.png
diff --git a/superset/assets/images/tutorial/tutorial_04_sqlalchemy_connection_string.png b/superset-frontend/images/tutorial/tutorial_04_sqlalchemy_connection_string.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_04_sqlalchemy_connection_string.png
rename to superset-frontend/images/tutorial/tutorial_04_sqlalchemy_connection_string.png
diff --git a/superset/assets/images/tutorial/tutorial_05_connection_popup.png b/superset-frontend/images/tutorial/tutorial_05_connection_popup.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_05_connection_popup.png
rename to superset-frontend/images/tutorial/tutorial_05_connection_popup.png
diff --git a/superset/assets/images/tutorial/tutorial_06_list_of_tables.png b/superset-frontend/images/tutorial/tutorial_06_list_of_tables.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_06_list_of_tables.png
rename to superset-frontend/images/tutorial/tutorial_06_list_of_tables.png
diff --git a/superset/assets/images/tutorial/tutorial_07_save_button.png b/superset-frontend/images/tutorial/tutorial_07_save_button.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_07_save_button.png
rename to superset-frontend/images/tutorial/tutorial_07_save_button.png
diff --git a/superset/assets/images/tutorial/tutorial_08_sources_tables.png b/superset-frontend/images/tutorial/tutorial_08_sources_tables.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_08_sources_tables.png
rename to superset-frontend/images/tutorial/tutorial_08_sources_tables.png
diff --git a/superset/assets/images/tutorial/tutorial_09_add_new_table.png b/superset-frontend/images/tutorial/tutorial_09_add_new_table.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_09_add_new_table.png
rename to superset-frontend/images/tutorial/tutorial_09_add_new_table.png
diff --git a/superset/assets/images/tutorial/tutorial_10_table_name.png b/superset-frontend/images/tutorial/tutorial_10_table_name.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_10_table_name.png
rename to superset-frontend/images/tutorial/tutorial_10_table_name.png
diff --git a/superset/assets/images/tutorial/tutorial_11_choose_db.png b/superset-frontend/images/tutorial/tutorial_11_choose_db.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_11_choose_db.png
rename to superset-frontend/images/tutorial/tutorial_11_choose_db.png
diff --git a/superset/assets/images/tutorial/tutorial_12_table_creation_success_msg.png b/superset-frontend/images/tutorial/tutorial_12_table_creation_success_msg.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_12_table_creation_success_msg.png
rename to superset-frontend/images/tutorial/tutorial_12_table_creation_success_msg.png
diff --git a/superset/assets/images/tutorial/tutorial_13_edit_table_config.png b/superset-frontend/images/tutorial/tutorial_13_edit_table_config.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_13_edit_table_config.png
rename to superset-frontend/images/tutorial/tutorial_13_edit_table_config.png
diff --git a/superset/assets/images/tutorial/tutorial_14_field_config.png b/superset-frontend/images/tutorial/tutorial_14_field_config.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_14_field_config.png
rename to superset-frontend/images/tutorial/tutorial_14_field_config.png
diff --git a/superset/assets/images/tutorial/tutorial_15_click_table_name.png b/superset-frontend/images/tutorial/tutorial_15_click_table_name.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_15_click_table_name.png
rename to superset-frontend/images/tutorial/tutorial_15_click_table_name.png
diff --git a/superset/assets/images/tutorial/tutorial_16_datasource_chart_type.png b/superset-frontend/images/tutorial/tutorial_16_datasource_chart_type.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_16_datasource_chart_type.png
rename to superset-frontend/images/tutorial/tutorial_16_datasource_chart_type.png
diff --git a/superset/assets/images/tutorial/tutorial_17_choose_time_range.png b/superset-frontend/images/tutorial/tutorial_17_choose_time_range.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_17_choose_time_range.png
rename to superset-frontend/images/tutorial/tutorial_17_choose_time_range.png
diff --git a/superset/assets/images/tutorial/tutorial_18_choose_metric.png b/superset-frontend/images/tutorial/tutorial_18_choose_metric.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_18_choose_metric.png
rename to superset-frontend/images/tutorial/tutorial_18_choose_metric.png
diff --git a/superset/assets/images/tutorial/tutorial_19_click_query.png b/superset-frontend/images/tutorial/tutorial_19_click_query.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_19_click_query.png
rename to superset-frontend/images/tutorial/tutorial_19_click_query.png
diff --git a/superset/assets/images/tutorial/tutorial_20_count_star_result.png b/superset-frontend/images/tutorial/tutorial_20_count_star_result.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_20_count_star_result.png
rename to superset-frontend/images/tutorial/tutorial_20_count_star_result.png
diff --git a/superset/assets/images/tutorial/tutorial_21_group_by.png b/superset-frontend/images/tutorial/tutorial_21_group_by.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_21_group_by.png
rename to superset-frontend/images/tutorial/tutorial_21_group_by.png
diff --git a/superset/assets/images/tutorial/tutorial_22_group_by_result.png b/superset-frontend/images/tutorial/tutorial_22_group_by_result.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_22_group_by_result.png
rename to superset-frontend/images/tutorial/tutorial_22_group_by_result.png
diff --git a/superset/assets/images/tutorial/tutorial_23_group_by_more_dimensions.png b/superset-frontend/images/tutorial/tutorial_23_group_by_more_dimensions.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_23_group_by_more_dimensions.png
rename to superset-frontend/images/tutorial/tutorial_23_group_by_more_dimensions.png
diff --git a/superset/assets/images/tutorial/tutorial_24_max_metric.png b/superset-frontend/images/tutorial/tutorial_24_max_metric.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_24_max_metric.png
rename to superset-frontend/images/tutorial/tutorial_24_max_metric.png
diff --git a/superset/assets/images/tutorial/tutorial_25_max_temp_filter.png b/superset-frontend/images/tutorial/tutorial_25_max_temp_filter.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_25_max_temp_filter.png
rename to superset-frontend/images/tutorial/tutorial_25_max_temp_filter.png
diff --git a/superset/assets/images/tutorial/tutorial_26_row_limit.png b/superset-frontend/images/tutorial/tutorial_26_row_limit.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_26_row_limit.png
rename to superset-frontend/images/tutorial/tutorial_26_row_limit.png
diff --git a/superset/assets/images/tutorial/tutorial_27_top_10_max_temps.png b/superset-frontend/images/tutorial/tutorial_27_top_10_max_temps.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_27_top_10_max_temps.png
rename to superset-frontend/images/tutorial/tutorial_27_top_10_max_temps.png
diff --git a/superset/assets/images/tutorial/tutorial_28_bar_chart.png b/superset-frontend/images/tutorial/tutorial_28_bar_chart.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_28_bar_chart.png
rename to superset-frontend/images/tutorial/tutorial_28_bar_chart.png
diff --git a/superset/assets/images/tutorial/tutorial_29_bar_chart_series_metrics.png b/superset-frontend/images/tutorial/tutorial_29_bar_chart_series_metrics.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_29_bar_chart_series_metrics.png
rename to superset-frontend/images/tutorial/tutorial_29_bar_chart_series_metrics.png
diff --git a/superset/assets/images/tutorial/tutorial_30_bar_chart_results.png b/superset-frontend/images/tutorial/tutorial_30_bar_chart_results.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_30_bar_chart_results.png
rename to superset-frontend/images/tutorial/tutorial_30_bar_chart_results.png
diff --git a/superset/assets/images/tutorial/tutorial_31_save_slice_to_dashboard.png b/superset-frontend/images/tutorial/tutorial_31_save_slice_to_dashboard.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_31_save_slice_to_dashboard.png
rename to superset-frontend/images/tutorial/tutorial_31_save_slice_to_dashboard.png
diff --git a/superset/assets/images/tutorial/tutorial_32_save_slice_confirmation.png b/superset-frontend/images/tutorial/tutorial_32_save_slice_confirmation.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_32_save_slice_confirmation.png
rename to superset-frontend/images/tutorial/tutorial_32_save_slice_confirmation.png
diff --git a/superset/assets/images/tutorial/tutorial_33_dashboard.png b/superset-frontend/images/tutorial/tutorial_33_dashboard.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_33_dashboard.png
rename to superset-frontend/images/tutorial/tutorial_33_dashboard.png
diff --git a/superset/assets/images/tutorial/tutorial_34_weather_dashboard.png b/superset-frontend/images/tutorial/tutorial_34_weather_dashboard.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_34_weather_dashboard.png
rename to superset-frontend/images/tutorial/tutorial_34_weather_dashboard.png
diff --git a/superset/assets/images/tutorial/tutorial_35_slice_on_dashboard.png b/superset-frontend/images/tutorial/tutorial_35_slice_on_dashboard.png
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_35_slice_on_dashboard.png
rename to superset-frontend/images/tutorial/tutorial_35_slice_on_dashboard.png
diff --git a/superset/assets/images/tutorial/tutorial_36_adjust_dimensions.gif b/superset-frontend/images/tutorial/tutorial_36_adjust_dimensions.gif
similarity index 100%
rename from superset/assets/images/tutorial/tutorial_36_adjust_dimensions.gif
rename to superset-frontend/images/tutorial/tutorial_36_adjust_dimensions.gif
diff --git a/superset/assets/images/usertutorial/add_new_chart.png b/superset-frontend/images/usertutorial/add_new_chart.png
similarity index 100%
rename from superset/assets/images/usertutorial/add_new_chart.png
rename to superset-frontend/images/usertutorial/add_new_chart.png
diff --git a/superset/assets/images/usertutorial/advanced_analytics_base.png b/superset-frontend/images/usertutorial/advanced_analytics_base.png
similarity index 100%
rename from superset/assets/images/usertutorial/advanced_analytics_base.png
rename to superset-frontend/images/usertutorial/advanced_analytics_base.png
diff --git a/superset/assets/images/usertutorial/annotation.png b/superset-frontend/images/usertutorial/annotation.png
similarity index 100%
rename from superset/assets/images/usertutorial/annotation.png
rename to superset-frontend/images/usertutorial/annotation.png
diff --git a/superset/assets/images/usertutorial/annotation_settings.png b/superset-frontend/images/usertutorial/annotation_settings.png
similarity index 100%
rename from superset/assets/images/usertutorial/annotation_settings.png
rename to superset-frontend/images/usertutorial/annotation_settings.png
diff --git a/superset/assets/images/usertutorial/average_aggregate_for_cost.png b/superset-frontend/images/usertutorial/average_aggregate_for_cost.png
similarity index 100%
rename from superset/assets/images/usertutorial/average_aggregate_for_cost.png
rename to superset-frontend/images/usertutorial/average_aggregate_for_cost.png
diff --git a/superset/assets/images/usertutorial/blue_bar_insert_component.png b/superset-frontend/images/usertutorial/blue_bar_insert_component.png
similarity index 100%
rename from superset/assets/images/usertutorial/blue_bar_insert_component.png
rename to superset-frontend/images/usertutorial/blue_bar_insert_component.png
diff --git a/superset/assets/images/usertutorial/chose_a_datasource.png b/superset-frontend/images/usertutorial/chose_a_datasource.png
similarity index 100%
rename from superset/assets/images/usertutorial/chose_a_datasource.png
rename to superset-frontend/images/usertutorial/chose_a_datasource.png
diff --git a/superset/assets/images/usertutorial/csv_to_database_configuration.png b/superset-frontend/images/usertutorial/csv_to_database_configuration.png
similarity index 100%
rename from superset/assets/images/usertutorial/csv_to_database_configuration.png
rename to superset-frontend/images/usertutorial/csv_to_database_configuration.png
diff --git a/superset/assets/images/usertutorial/edit-record.png b/superset-frontend/images/usertutorial/edit-record.png
similarity index 100%
rename from superset/assets/images/usertutorial/edit-record.png
rename to superset-frontend/images/usertutorial/edit-record.png
diff --git a/superset/assets/images/usertutorial/edit_annotation.png b/superset-frontend/images/usertutorial/edit_annotation.png
similarity index 100%
rename from superset/assets/images/usertutorial/edit_annotation.png
rename to superset-frontend/images/usertutorial/edit_annotation.png
diff --git a/superset/assets/images/usertutorial/filter_on_origin_country.png b/superset-frontend/images/usertutorial/filter_on_origin_country.png
similarity index 100%
rename from superset/assets/images/usertutorial/filter_on_origin_country.png
rename to superset-frontend/images/usertutorial/filter_on_origin_country.png
diff --git a/superset/assets/images/usertutorial/markdown.png b/superset-frontend/images/usertutorial/markdown.png
similarity index 100%
rename from superset/assets/images/usertutorial/markdown.png
rename to superset-frontend/images/usertutorial/markdown.png
diff --git a/superset/assets/images/usertutorial/no_filter_on_time_filter.png b/superset-frontend/images/usertutorial/no_filter_on_time_filter.png
similarity index 100%
rename from superset/assets/images/usertutorial/no_filter_on_time_filter.png
rename to superset-frontend/images/usertutorial/no_filter_on_time_filter.png
diff --git a/superset/assets/images/usertutorial/parse_dates_column.png b/superset-frontend/images/usertutorial/parse_dates_column.png
similarity index 100%
rename from superset/assets/images/usertutorial/parse_dates_column.png
rename to superset-frontend/images/usertutorial/parse_dates_column.png
diff --git a/superset/assets/images/usertutorial/publish_dashboard.png b/superset-frontend/images/usertutorial/publish_dashboard.png
similarity index 100%
rename from superset/assets/images/usertutorial/publish_dashboard.png
rename to superset-frontend/images/usertutorial/publish_dashboard.png
diff --git a/superset/assets/images/usertutorial/resample.png b/superset-frontend/images/usertutorial/resample.png
similarity index 100%
rename from superset/assets/images/usertutorial/resample.png
rename to superset-frontend/images/usertutorial/resample.png
diff --git a/superset/assets/images/usertutorial/resize_tutorial_table_on_dashboard.png b/superset-frontend/images/usertutorial/resize_tutorial_table_on_dashboard.png
similarity index 100%
rename from superset/assets/images/usertutorial/resize_tutorial_table_on_dashboard.png
rename to superset-frontend/images/usertutorial/resize_tutorial_table_on_dashboard.png
diff --git a/superset/assets/images/usertutorial/rolling_mean.png b/superset-frontend/images/usertutorial/rolling_mean.png
similarity index 100%
rename from superset/assets/images/usertutorial/rolling_mean.png
rename to superset-frontend/images/usertutorial/rolling_mean.png
diff --git a/superset/assets/images/usertutorial/save_tutorial_table.png b/superset-frontend/images/usertutorial/save_tutorial_table.png
similarity index 100%
rename from superset/assets/images/usertutorial/save_tutorial_table.png
rename to superset-frontend/images/usertutorial/save_tutorial_table.png
diff --git a/superset/assets/images/usertutorial/select_dates_pivot_table.png b/superset-frontend/images/usertutorial/select_dates_pivot_table.png
similarity index 100%
rename from superset/assets/images/usertutorial/select_dates_pivot_table.png
rename to superset-frontend/images/usertutorial/select_dates_pivot_table.png
diff --git a/superset/assets/images/usertutorial/select_table_visualization_type.png b/superset-frontend/images/usertutorial/select_table_visualization_type.png
similarity index 100%
rename from superset/assets/images/usertutorial/select_table_visualization_type.png
rename to superset-frontend/images/usertutorial/select_table_visualization_type.png
diff --git a/superset/assets/images/usertutorial/sum_cost_column.png b/superset-frontend/images/usertutorial/sum_cost_column.png
similarity index 100%
rename from superset/assets/images/usertutorial/sum_cost_column.png
rename to superset-frontend/images/usertutorial/sum_cost_column.png
diff --git a/superset/assets/images/usertutorial/time_comparison_absolute_difference.png b/superset-frontend/images/usertutorial/time_comparison_absolute_difference.png
similarity index 100%
rename from superset/assets/images/usertutorial/time_comparison_absolute_difference.png
rename to superset-frontend/images/usertutorial/time_comparison_absolute_difference.png
diff --git a/superset/assets/images/usertutorial/time_comparison_two_series.png b/superset-frontend/images/usertutorial/time_comparison_two_series.png
similarity index 100%
rename from superset/assets/images/usertutorial/time_comparison_two_series.png
rename to superset-frontend/images/usertutorial/time_comparison_two_series.png
diff --git a/superset/assets/images/usertutorial/tutorial_line_chart.png b/superset-frontend/images/usertutorial/tutorial_line_chart.png
similarity index 100%
rename from superset/assets/images/usertutorial/tutorial_line_chart.png
rename to superset-frontend/images/usertutorial/tutorial_line_chart.png
diff --git a/superset/assets/images/usertutorial/tutorial_pivot_table.png b/superset-frontend/images/usertutorial/tutorial_pivot_table.png
similarity index 100%
rename from superset/assets/images/usertutorial/tutorial_pivot_table.png
rename to superset-frontend/images/usertutorial/tutorial_pivot_table.png
diff --git a/superset/assets/images/usertutorial/tutorial_table.png b/superset-frontend/images/usertutorial/tutorial_table.png
similarity index 100%
rename from superset/assets/images/usertutorial/tutorial_table.png
rename to superset-frontend/images/usertutorial/tutorial_table.png
diff --git a/superset/assets/images/usertutorial/upload_a_csv.png b/superset-frontend/images/usertutorial/upload_a_csv.png
similarity index 100%
rename from superset/assets/images/usertutorial/upload_a_csv.png
rename to superset-frontend/images/usertutorial/upload_a_csv.png
diff --git a/superset/assets/images/viz_thumbnails/area.png b/superset-frontend/images/viz_thumbnails/area.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/area.png
rename to superset-frontend/images/viz_thumbnails/area.png
diff --git a/superset/assets/images/viz_thumbnails/bar.png b/superset-frontend/images/viz_thumbnails/bar.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/bar.png
rename to superset-frontend/images/viz_thumbnails/bar.png
diff --git a/superset/assets/images/viz_thumbnails/big_number.png b/superset-frontend/images/viz_thumbnails/big_number.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/big_number.png
rename to superset-frontend/images/viz_thumbnails/big_number.png
diff --git a/superset/assets/images/viz_thumbnails/big_number_total.png b/superset-frontend/images/viz_thumbnails/big_number_total.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/big_number_total.png
rename to superset-frontend/images/viz_thumbnails/big_number_total.png
diff --git a/superset/assets/images/viz_thumbnails/box_plot.png b/superset-frontend/images/viz_thumbnails/box_plot.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/box_plot.png
rename to superset-frontend/images/viz_thumbnails/box_plot.png
diff --git a/superset/assets/images/viz_thumbnails/bubble.png b/superset-frontend/images/viz_thumbnails/bubble.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/bubble.png
rename to superset-frontend/images/viz_thumbnails/bubble.png
diff --git a/superset/assets/images/viz_thumbnails/bullet.png b/superset-frontend/images/viz_thumbnails/bullet.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/bullet.png
rename to superset-frontend/images/viz_thumbnails/bullet.png
diff --git a/superset/assets/images/viz_thumbnails/cal_heatmap.png b/superset-frontend/images/viz_thumbnails/cal_heatmap.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/cal_heatmap.png
rename to superset-frontend/images/viz_thumbnails/cal_heatmap.png
diff --git a/superset/assets/images/viz_thumbnails/chord.png b/superset-frontend/images/viz_thumbnails/chord.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/chord.png
rename to superset-frontend/images/viz_thumbnails/chord.png
diff --git a/superset/assets/images/viz_thumbnails/compare.png b/superset-frontend/images/viz_thumbnails/compare.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/compare.png
rename to superset-frontend/images/viz_thumbnails/compare.png
diff --git a/superset/assets/images/viz_thumbnails/country_map.png b/superset-frontend/images/viz_thumbnails/country_map.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/country_map.png
rename to superset-frontend/images/viz_thumbnails/country_map.png
diff --git a/superset/assets/images/viz_thumbnails/deck_arc.png b/superset-frontend/images/viz_thumbnails/deck_arc.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_arc.png
rename to superset-frontend/images/viz_thumbnails/deck_arc.png
diff --git a/superset/assets/images/viz_thumbnails/deck_geojson.png b/superset-frontend/images/viz_thumbnails/deck_geojson.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_geojson.png
rename to superset-frontend/images/viz_thumbnails/deck_geojson.png
diff --git a/superset/assets/images/viz_thumbnails/deck_grid.png b/superset-frontend/images/viz_thumbnails/deck_grid.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_grid.png
rename to superset-frontend/images/viz_thumbnails/deck_grid.png
diff --git a/superset/assets/images/viz_thumbnails/deck_hex.png b/superset-frontend/images/viz_thumbnails/deck_hex.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_hex.png
rename to superset-frontend/images/viz_thumbnails/deck_hex.png
diff --git a/superset/assets/images/viz_thumbnails/deck_multi.png b/superset-frontend/images/viz_thumbnails/deck_multi.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_multi.png
rename to superset-frontend/images/viz_thumbnails/deck_multi.png
diff --git a/superset/assets/images/viz_thumbnails/deck_path.png b/superset-frontend/images/viz_thumbnails/deck_path.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_path.png
rename to superset-frontend/images/viz_thumbnails/deck_path.png
diff --git a/superset/assets/images/viz_thumbnails/deck_polygon.png b/superset-frontend/images/viz_thumbnails/deck_polygon.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_polygon.png
rename to superset-frontend/images/viz_thumbnails/deck_polygon.png
diff --git a/superset/assets/images/viz_thumbnails/deck_scatter.png b/superset-frontend/images/viz_thumbnails/deck_scatter.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_scatter.png
rename to superset-frontend/images/viz_thumbnails/deck_scatter.png
diff --git a/superset/assets/images/viz_thumbnails/deck_screengrid.png b/superset-frontend/images/viz_thumbnails/deck_screengrid.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/deck_screengrid.png
rename to superset-frontend/images/viz_thumbnails/deck_screengrid.png
diff --git a/superset/assets/images/viz_thumbnails/directed_force.png b/superset-frontend/images/viz_thumbnails/directed_force.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/directed_force.png
rename to superset-frontend/images/viz_thumbnails/directed_force.png
diff --git a/superset/assets/images/viz_thumbnails/dist_bar.png b/superset-frontend/images/viz_thumbnails/dist_bar.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/dist_bar.png
rename to superset-frontend/images/viz_thumbnails/dist_bar.png
diff --git a/superset/assets/images/viz_thumbnails/dual_line.png b/superset-frontend/images/viz_thumbnails/dual_line.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/dual_line.png
rename to superset-frontend/images/viz_thumbnails/dual_line.png
diff --git a/superset/assets/images/viz_thumbnails/event_flow.png b/superset-frontend/images/viz_thumbnails/event_flow.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/event_flow.png
rename to superset-frontend/images/viz_thumbnails/event_flow.png
diff --git a/superset/assets/images/viz_thumbnails/filter_box.png b/superset-frontend/images/viz_thumbnails/filter_box.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/filter_box.png
rename to superset-frontend/images/viz_thumbnails/filter_box.png
diff --git a/superset/assets/images/viz_thumbnails/heatmap.png b/superset-frontend/images/viz_thumbnails/heatmap.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/heatmap.png
rename to superset-frontend/images/viz_thumbnails/heatmap.png
diff --git a/superset/assets/images/viz_thumbnails/histogram.png b/superset-frontend/images/viz_thumbnails/histogram.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/histogram.png
rename to superset-frontend/images/viz_thumbnails/histogram.png
diff --git a/superset/assets/images/viz_thumbnails/horizon.png b/superset-frontend/images/viz_thumbnails/horizon.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/horizon.png
rename to superset-frontend/images/viz_thumbnails/horizon.png
diff --git a/superset/assets/images/viz_thumbnails/iframe.png b/superset-frontend/images/viz_thumbnails/iframe.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/iframe.png
rename to superset-frontend/images/viz_thumbnails/iframe.png
diff --git a/superset/assets/images/viz_thumbnails/line.png b/superset-frontend/images/viz_thumbnails/line.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/line.png
rename to superset-frontend/images/viz_thumbnails/line.png
diff --git a/superset/assets/images/viz_thumbnails/line_multi.png b/superset-frontend/images/viz_thumbnails/line_multi.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/line_multi.png
rename to superset-frontend/images/viz_thumbnails/line_multi.png
diff --git a/superset/assets/images/viz_thumbnails/mapbox.png b/superset-frontend/images/viz_thumbnails/mapbox.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/mapbox.png
rename to superset-frontend/images/viz_thumbnails/mapbox.png
diff --git a/superset/assets/images/viz_thumbnails/markup.png b/superset-frontend/images/viz_thumbnails/markup.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/markup.png
rename to superset-frontend/images/viz_thumbnails/markup.png
diff --git a/superset/assets/images/viz_thumbnails/multi.png b/superset-frontend/images/viz_thumbnails/multi.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/multi.png
rename to superset-frontend/images/viz_thumbnails/multi.png
diff --git a/superset/assets/images/viz_thumbnails/paired_ttest.png b/superset-frontend/images/viz_thumbnails/paired_ttest.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/paired_ttest.png
rename to superset-frontend/images/viz_thumbnails/paired_ttest.png
diff --git a/superset/assets/images/viz_thumbnails/para.png b/superset-frontend/images/viz_thumbnails/para.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/para.png
rename to superset-frontend/images/viz_thumbnails/para.png
diff --git a/superset/assets/images/viz_thumbnails/partition.png b/superset-frontend/images/viz_thumbnails/partition.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/partition.png
rename to superset-frontend/images/viz_thumbnails/partition.png
diff --git a/superset/assets/images/viz_thumbnails/pie.png b/superset-frontend/images/viz_thumbnails/pie.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/pie.png
rename to superset-frontend/images/viz_thumbnails/pie.png
diff --git a/superset/assets/images/viz_thumbnails/pivot_table.png b/superset-frontend/images/viz_thumbnails/pivot_table.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/pivot_table.png
rename to superset-frontend/images/viz_thumbnails/pivot_table.png
diff --git a/superset/assets/images/viz_thumbnails/rose.png b/superset-frontend/images/viz_thumbnails/rose.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/rose.png
rename to superset-frontend/images/viz_thumbnails/rose.png
diff --git a/superset/assets/images/viz_thumbnails/sankey.png b/superset-frontend/images/viz_thumbnails/sankey.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/sankey.png
rename to superset-frontend/images/viz_thumbnails/sankey.png
diff --git a/superset/assets/images/viz_thumbnails/separator.png b/superset-frontend/images/viz_thumbnails/separator.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/separator.png
rename to superset-frontend/images/viz_thumbnails/separator.png
diff --git a/superset/assets/images/viz_thumbnails/sunburst.png b/superset-frontend/images/viz_thumbnails/sunburst.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/sunburst.png
rename to superset-frontend/images/viz_thumbnails/sunburst.png
diff --git a/superset/assets/images/viz_thumbnails/table.png b/superset-frontend/images/viz_thumbnails/table.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/table.png
rename to superset-frontend/images/viz_thumbnails/table.png
diff --git a/superset/assets/images/viz_thumbnails/time_pivot.png b/superset-frontend/images/viz_thumbnails/time_pivot.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/time_pivot.png
rename to superset-frontend/images/viz_thumbnails/time_pivot.png
diff --git a/superset/assets/images/viz_thumbnails/time_table.png b/superset-frontend/images/viz_thumbnails/time_table.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/time_table.png
rename to superset-frontend/images/viz_thumbnails/time_table.png
diff --git a/superset/assets/images/viz_thumbnails/treemap.png b/superset-frontend/images/viz_thumbnails/treemap.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/treemap.png
rename to superset-frontend/images/viz_thumbnails/treemap.png
diff --git a/superset/assets/images/viz_thumbnails/word_cloud.png b/superset-frontend/images/viz_thumbnails/word_cloud.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/word_cloud.png
rename to superset-frontend/images/viz_thumbnails/word_cloud.png
diff --git a/superset/assets/images/viz_thumbnails/world_map.png b/superset-frontend/images/viz_thumbnails/world_map.png
similarity index 100%
rename from superset/assets/images/viz_thumbnails/world_map.png
rename to superset-frontend/images/viz_thumbnails/world_map.png
diff --git a/superset/assets/jest.config.js b/superset-frontend/jest.config.js
similarity index 100%
rename from superset/assets/jest.config.js
rename to superset-frontend/jest.config.js
diff --git a/superset/assets/js_build.sh b/superset-frontend/js_build.sh
similarity index 100%
rename from superset/assets/js_build.sh
rename to superset-frontend/js_build.sh
diff --git a/superset/assets/package-lock.json b/superset-frontend/package-lock.json
similarity index 98%
rename from superset/assets/package-lock.json
rename to superset-frontend/package-lock.json
index 4755c51..07ff380 100644
--- a/superset/assets/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -4765,11 +4765,28 @@
         "@types/trusted-types": "*"
       }
     },
+    "@types/events": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
+      "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
+      "dev": true
+    },
     "@types/fast-json-stable-stringify": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
       "integrity": "sha512-mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ=="
     },
+    "@types/glob": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
+      "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
+      "dev": true,
+      "requires": {
+        "@types/events": "*",
+        "@types/minimatch": "*",
+        "@types/node": "*"
+      }
+    },
     "@types/hoist-non-react-statics": {
       "version": "3.3.1",
       "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
@@ -4835,6 +4852,12 @@
       "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-1.15.2.tgz",
       "integrity": "sha512-zHPoyVrLvNaiMRYdhmh88Rn489ZgAgbc6iLxR5Yi0VCNfeNYHcszbhJV2vDHLNrVGy35BPtWBRn4OP2F9BBvFw=="
     },
+    "@types/minimatch": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+      "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+      "dev": true
+    },
     "@types/node": {
       "version": "10.12.15",
       "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.15.tgz",
@@ -8043,12 +8066,75 @@
       "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
     },
     "clean-webpack-plugin": {
-      "version": "0.1.19",
-      "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz",
-      "integrity": "sha512-M1Li5yLHECcN2MahoreuODul5LkjohJGFxLPTjl3j1ttKrF5rgjZET1SJduuqxLAuT1gAPOdkhg03qcaaU1KeA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
+      "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
       "dev": true,
       "requires": {
-        "rimraf": "^2.6.1"
+        "@types/webpack": "^4.4.31",
+        "del": "^4.1.1"
+      },
+      "dependencies": {
+        "del": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+          "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+          "dev": true,
+          "requires": {
+            "@types/glob": "^7.1.1",
+            "globby": "^6.1.0",
+            "is-path-cwd": "^2.0.0",
+            "is-path-in-cwd": "^2.0.0",
+            "p-map": "^2.0.0",
+            "pify": "^4.0.1",
+            "rimraf": "^2.6.3"
+          }
+        },
+        "is-path-cwd": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+          "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+          "dev": true
+        },
+        "is-path-in-cwd": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+          "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+          "dev": true,
+          "requires": {
+            "is-path-inside": "^2.1.0"
+          }
+        },
+        "is-path-inside": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+          "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+          "dev": true,
+          "requires": {
+            "path-is-inside": "^1.0.2"
+          }
+        },
+        "p-map": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+          "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+          "dev": true
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "rimraf": {
+          "version": "2.7.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+          "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        }
       }
     },
     "cli-width": {
@@ -8394,6 +8480,278 @@
         "toggle-selection": "^1.0.6"
       }
     },
+    "copy-webpack-plugin": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz",
+      "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==",
+      "dev": true,
+      "requires": {
+        "cacache": "^12.0.3",
+        "find-cache-dir": "^2.1.0",
+        "glob-parent": "^3.1.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.1",
+        "loader-utils": "^1.2.3",
+        "minimatch": "^3.0.4",
+        "normalize-path": "^3.0.0",
+        "p-limit": "^2.2.1",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^2.1.2",
+        "webpack-log": "^2.0.0"
+      },
+      "dependencies": {
+        "big.js": {
+          "version": "5.2.2",
+          "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+          "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+          "dev": true
+        },
+        "cacache": {
+          "version": "12.0.3",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
+          "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "infer-owner": "^1.0.3",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "find-cache-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+          "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^2.0.0",
+            "pkg-dir": "^3.0.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        },
+        "globby": {
+          "version": "7.1.1",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+          "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "dir-glob": "^2.0.0",
+            "glob": "^7.1.2",
+            "ignore": "^3.3.5",
+            "pify": "^3.0.0",
+            "slash": "^1.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+              "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+              "dev": true
+            }
+          }
+        },
+        "ignore": {
+          "version": "3.3.10",
+          "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+          "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+          "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^2.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+          "dev": true
+        },
+        "p-limit": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        },
+        "rimraf": {
+          "version": "2.7.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+          "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "serialize-javascript": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
+          "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
+          "dev": true
+        },
+        "slash": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+          "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+          "dev": true
+        },
+        "y18n": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+          "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+          "dev": true
+        },
+        "yallist": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "dev": true
+        }
+      }
+    },
     "core-js": {
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
@@ -9595,6 +9953,15 @@
         "randombytes": "^2.0.0"
       }
     },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
     "direction": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.3.tgz",
@@ -13398,6 +13765,12 @@
       "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
       "dev": true
     },
+    "infer-owner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+      "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+      "dev": true
+    },
     "inflight": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
diff --git a/superset/assets/package.json b/superset-frontend/package.json
similarity index 97%
rename from superset/assets/package.json
rename to superset-frontend/package.json
index c90955e..14d4ad8 100644
--- a/superset/assets/package.json
+++ b/superset-frontend/package.json
@@ -13,7 +13,7 @@
     "cover": "jest --coverage",
     "dev": "webpack --mode=development --colors --progress --debug --watch",
     "dev-server": "node --max_old_space_size=4096 ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --mode=development --progress",
-    "prod": "node --max_old_space_size=4096 webpack --mode=production --colors --progress",
+    "prod": "node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --mode=production --colors --progress",
     "build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=production webpack --mode=production --colors --progress",
     "lint": "eslint --ignore-path=.eslintignore --ext .js,.jsx . && tslint -c tslint.json ./{src,spec}/**/*.ts{,x}",
     "lint-fix": "eslint --fix --ignore-path=.eslintignore --ext .js,.jsx . && tslint -c tslint.json --fix ./{src,spec}/**/*.ts{,x} && npm run clean-css",
@@ -172,7 +172,8 @@
     "babel-plugin-lodash": "^3.3.4",
     "babel-preset-airbnb": "^4.0.1",
     "cache-loader": "^1.2.2",
-    "clean-webpack-plugin": "^0.1.19",
+    "clean-webpack-plugin": "^3.0.0",
+    "copy-webpack-plugin": "^5.1.1",
     "cross-env": "^5.2.0",
     "css-loader": "^1.0.0",
     "enzyme": "^3.10.0",
diff --git a/superset/assets/spec/.eslintrc b/superset-frontend/spec/.eslintrc
similarity index 100%
rename from superset/assets/spec/.eslintrc
rename to superset-frontend/spec/.eslintrc
diff --git a/superset/assets/spec/__mocks__/fileMock.js b/superset-frontend/spec/__mocks__/fileMock.js
similarity index 100%
rename from superset/assets/spec/__mocks__/fileMock.js
rename to superset-frontend/spec/__mocks__/fileMock.js
diff --git a/superset/assets/spec/__mocks__/styleMock.js b/superset-frontend/spec/__mocks__/styleMock.js
similarity index 100%
rename from superset/assets/spec/__mocks__/styleMock.js
rename to superset-frontend/spec/__mocks__/styleMock.js
diff --git a/superset/assets/spec/fixtures/mockDatasource.js b/superset-frontend/spec/fixtures/mockDatasource.js
similarity index 100%
rename from superset/assets/spec/fixtures/mockDatasource.js
rename to superset-frontend/spec/fixtures/mockDatasource.js
diff --git a/superset/assets/spec/helpers/setupSupersetClient.js b/superset-frontend/spec/helpers/setupSupersetClient.js
similarity index 100%
rename from superset/assets/spec/helpers/setupSupersetClient.js
rename to superset-frontend/spec/helpers/setupSupersetClient.js
diff --git a/superset/assets/spec/helpers/shim.js b/superset-frontend/spec/helpers/shim.js
similarity index 100%
rename from superset/assets/spec/helpers/shim.js
rename to superset-frontend/spec/helpers/shim.js
diff --git a/superset/assets/spec/javascripts/CRUD/CollectionTable_spec.jsx b/superset-frontend/spec/javascripts/CRUD/CollectionTable_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/CRUD/CollectionTable_spec.jsx
rename to superset-frontend/spec/javascripts/CRUD/CollectionTable_spec.jsx
diff --git a/superset/assets/spec/javascripts/addSlice/AddSliceContainer_spec.jsx b/superset-frontend/spec/javascripts/addSlice/AddSliceContainer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/addSlice/AddSliceContainer_spec.jsx
rename to superset-frontend/spec/javascripts/addSlice/AddSliceContainer_spec.jsx
diff --git a/superset/assets/spec/javascripts/chart/ChartRenderer_spec.jsx b/superset-frontend/spec/javascripts/chart/ChartRenderer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/chart/ChartRenderer_spec.jsx
rename to superset-frontend/spec/javascripts/chart/ChartRenderer_spec.jsx
diff --git a/superset/assets/spec/javascripts/chart/chartActions_spec.js b/superset-frontend/spec/javascripts/chart/chartActions_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/chart/chartActions_spec.js
rename to superset-frontend/spec/javascripts/chart/chartActions_spec.js
diff --git a/superset/assets/spec/javascripts/chart/chartReducers_spec.js b/superset-frontend/spec/javascripts/chart/chartReducers_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/chart/chartReducers_spec.js
rename to superset-frontend/spec/javascripts/chart/chartReducers_spec.js
diff --git a/superset/assets/spec/javascripts/components/AlteredSliceTag_spec.jsx b/superset-frontend/spec/javascripts/components/AlteredSliceTag_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/AlteredSliceTag_spec.jsx
rename to superset-frontend/spec/javascripts/components/AlteredSliceTag_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/AnchorLink_spec.jsx b/superset-frontend/spec/javascripts/components/AnchorLink_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/AnchorLink_spec.jsx
rename to superset-frontend/spec/javascripts/components/AnchorLink_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx b/superset-frontend/spec/javascripts/components/AsyncSelect_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/AsyncSelect_spec.jsx
rename to superset-frontend/spec/javascripts/components/AsyncSelect_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/CachedLabel_spec.jsx b/superset-frontend/spec/javascripts/components/CachedLabel_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/CachedLabel_spec.jsx
rename to superset-frontend/spec/javascripts/components/CachedLabel_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/Checkbox_spec.jsx b/superset-frontend/spec/javascripts/components/Checkbox_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/Checkbox_spec.jsx
rename to superset-frontend/spec/javascripts/components/Checkbox_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/ColumnOption_spec.jsx b/superset-frontend/spec/javascripts/components/ColumnOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/ColumnOption_spec.jsx
rename to superset-frontend/spec/javascripts/components/ColumnOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/ColumnTypeLabel_spec.jsx b/superset-frontend/spec/javascripts/components/ColumnTypeLabel_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/ColumnTypeLabel_spec.jsx
rename to superset-frontend/spec/javascripts/components/ColumnTypeLabel_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/ConfirmStatusChange_spec.jsx b/superset-frontend/spec/javascripts/components/ConfirmStatusChange_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/ConfirmStatusChange_spec.jsx
rename to superset-frontend/spec/javascripts/components/ConfirmStatusChange_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/CopyToClipboard_spec.jsx b/superset-frontend/spec/javascripts/components/CopyToClipboard_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/CopyToClipboard_spec.jsx
rename to superset-frontend/spec/javascripts/components/CopyToClipboard_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx b/superset-frontend/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx
rename to superset-frontend/spec/javascripts/components/FilterableTable/FilterableTable_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/FormRow_spec.jsx b/superset-frontend/spec/javascripts/components/FormRow_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/FormRow_spec.jsx
rename to superset-frontend/spec/javascripts/components/FormRow_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/ListView/ListView_spec.jsx b/superset-frontend/spec/javascripts/components/ListView/ListView_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/ListView/ListView_spec.jsx
rename to superset-frontend/spec/javascripts/components/ListView/ListView_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/Menu_spec.jsx b/superset-frontend/spec/javascripts/components/Menu_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/Menu_spec.jsx
rename to superset-frontend/spec/javascripts/components/Menu_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/MetricOption_spec.jsx b/superset-frontend/spec/javascripts/components/MetricOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/MetricOption_spec.jsx
rename to superset-frontend/spec/javascripts/components/MetricOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/ModalTrigger_spec.jsx b/superset-frontend/spec/javascripts/components/ModalTrigger_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/ModalTrigger_spec.jsx
rename to superset-frontend/spec/javascripts/components/ModalTrigger_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/OnPasteSelect_spec.jsx b/superset-frontend/spec/javascripts/components/OnPasteSelect_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/OnPasteSelect_spec.jsx
rename to superset-frontend/spec/javascripts/components/OnPasteSelect_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/OptionDescription_spec.jsx b/superset-frontend/spec/javascripts/components/OptionDescription_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/OptionDescription_spec.jsx
rename to superset-frontend/spec/javascripts/components/OptionDescription_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/PopoverSection_spec.jsx b/superset-frontend/spec/javascripts/components/PopoverSection_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/PopoverSection_spec.jsx
rename to superset-frontend/spec/javascripts/components/PopoverSection_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/TableSelector_spec.jsx b/superset-frontend/spec/javascripts/components/TableSelector_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/TableSelector_spec.jsx
rename to superset-frontend/spec/javascripts/components/TableSelector_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/URLShortLinkButton_spec.jsx b/superset-frontend/spec/javascripts/components/URLShortLinkButton_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/URLShortLinkButton_spec.jsx
rename to superset-frontend/spec/javascripts/components/URLShortLinkButton_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/URLShortLinkModal_spec.jsx b/superset-frontend/spec/javascripts/components/URLShortLinkModal_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/URLShortLinkModal_spec.jsx
rename to superset-frontend/spec/javascripts/components/URLShortLinkModal_spec.jsx
diff --git a/superset/assets/spec/javascripts/components/VirtualizedRendererWrap_spec.jsx b/superset-frontend/spec/javascripts/components/VirtualizedRendererWrap_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/components/VirtualizedRendererWrap_spec.jsx
rename to superset-frontend/spec/javascripts/components/VirtualizedRendererWrap_spec.jsx
diff --git a/superset/assets/src/dashboard/.eslintrc b/superset-frontend/spec/javascripts/dashboard/.eslintrc
similarity index 100%
rename from superset/assets/src/dashboard/.eslintrc
rename to superset-frontend/spec/javascripts/dashboard/.eslintrc
diff --git a/superset/assets/spec/javascripts/dashboard/actions/dashboardLayout_spec.js b/superset-frontend/spec/javascripts/dashboard/actions/dashboardLayout_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/actions/dashboardLayout_spec.js
rename to superset-frontend/spec/javascripts/dashboard/actions/dashboardLayout_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/actions/dashboardState_spec.js b/superset-frontend/spec/javascripts/dashboard/actions/dashboardState_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/actions/dashboardState_spec.js
rename to superset-frontend/spec/javascripts/dashboard/actions/dashboardState_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/components/CodeModal_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/CodeModal_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/CodeModal_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/CodeModal_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/CssEditor_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/CssEditor_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/CssEditor_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/CssEditor_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/Dashboard_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/Dashboard_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/Dashboard_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/Dashboard_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/FilterIndicatorGroup_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/FilterIndicatorGroup_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/FilterIndicatorGroup_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/FilterIndicatorGroup_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/FilterIndicatorTooltip_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/FilterIndicatorTooltip_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/FilterIndicatorTooltip_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/FilterIndicatorTooltip_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/FilterIndicator_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/FilterIndicator_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/FilterIndicator_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/FilterIndicator_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/FilterIndicatorsContainer_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/FilterIndicatorsContainer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/FilterIndicatorsContainer_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/FilterIndicatorsContainer_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/FilterTooltipWrapper_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/FilterTooltipWrapper_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/FilterTooltipWrapper_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/FilterTooltipWrapper_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/HeaderActionsDropdown_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/HeaderActionsDropdown_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/HeaderActionsDropdown_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/HeaderActionsDropdown_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/Header_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/Header_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/Header_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/Header_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/MissingChart_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/MissingChart_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/MissingChart_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/MissingChart_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/RefreshIntervalModal_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/RefreshIntervalModal_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/RefreshIntervalModal_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/RefreshIntervalModal_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/SliceAdder_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/SliceAdder_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/SliceAdder_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/SliceAdder_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/dnd/DragDroppable_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/dnd/DragDroppable_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/dnd/DragDroppable_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/dnd/DragDroppable_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Divider_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Divider_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Divider_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Divider_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Header_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Header_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Header_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Header_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Markdown_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Markdown_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Markdown_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Markdown_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/new/DraggableNewComponent_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/DraggableNewComponent_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/new/DraggableNewComponent_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/DraggableNewComponent_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewColumn_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewColumn_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewColumn_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewColumn_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewDivider_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewDivider_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewDivider_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewDivider_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewHeader_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewHeader_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewHeader_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewHeader_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewRow_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewRow_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewRow_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewRow_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewTabs_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewTabs_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/gridComponents/new/NewTabs_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewTabs_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/menu/HoverMenu_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/menu/HoverMenu_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/menu/HoverMenu_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/menu/HoverMenu_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/menu/WithPopoverMenu_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/menu/WithPopoverMenu_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/menu/WithPopoverMenu_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/menu/WithPopoverMenu_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/components/resizable/ResizableHandle_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableHandle_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/components/resizable/ResizableHandle_spec.jsx
rename to superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableHandle_spec.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockChartQueries.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockChartQueries.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockChartQueries.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockChartQueries.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardData.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardData.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardData.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardData.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardFilters.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardFilters.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardFilters.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardFilters.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardLayout.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardLayout.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardLayout.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardLayout.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardState.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardState.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockDashboardState.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardState.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockSliceEntities.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockSliceEntities.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockSliceEntities.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockSliceEntities.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockState.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockState.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockState.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockState.js
diff --git a/superset/assets/spec/javascripts/dashboard/fixtures/mockStore.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockStore.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/fixtures/mockStore.js
rename to superset-frontend/spec/javascripts/dashboard/fixtures/mockStore.js
diff --git a/superset/assets/spec/javascripts/dashboard/helpers/WithDragDropContext.jsx b/superset-frontend/spec/javascripts/dashboard/helpers/WithDragDropContext.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/helpers/WithDragDropContext.jsx
rename to superset-frontend/spec/javascripts/dashboard/helpers/WithDragDropContext.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/reducers/dashboardFilters_spec.js b/superset-frontend/spec/javascripts/dashboard/reducers/dashboardFilters_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/reducers/dashboardFilters_spec.js
rename to superset-frontend/spec/javascripts/dashboard/reducers/dashboardFilters_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/reducers/dashboardLayout_spec.js b/superset-frontend/spec/javascripts/dashboard/reducers/dashboardLayout_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/reducers/dashboardLayout_spec.js
rename to superset-frontend/spec/javascripts/dashboard/reducers/dashboardLayout_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/reducers/dashboardState_spec.js b/superset-frontend/spec/javascripts/dashboard/reducers/dashboardState_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/reducers/dashboardState_spec.js
rename to superset-frontend/spec/javascripts/dashboard/reducers/dashboardState_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/reducers/sliceEntities_spec.js b/superset-frontend/spec/javascripts/dashboard/reducers/sliceEntities_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/reducers/sliceEntities_spec.js
rename to superset-frontend/spec/javascripts/dashboard/reducers/sliceEntities_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/componentIsResizable_spec.js b/superset-frontend/spec/javascripts/dashboard/util/componentIsResizable_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/componentIsResizable_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/componentIsResizable_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/dnd-reorder_spec.js b/superset-frontend/spec/javascripts/dashboard/util/dnd-reorder_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/dnd-reorder_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/dnd-reorder_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/dropOverflowsParent_spec.js b/superset-frontend/spec/javascripts/dashboard/util/dropOverflowsParent_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/dropOverflowsParent_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/dropOverflowsParent_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/findFirstParentContainer_spec.js b/superset-frontend/spec/javascripts/dashboard/util/findFirstParentContainer_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/findFirstParentContainer_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/findFirstParentContainer_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/findParentId_spec.js b/superset-frontend/spec/javascripts/dashboard/util/findParentId_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/findParentId_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/findParentId_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/findTabIndexByComponentId_spec.js b/superset-frontend/spec/javascripts/dashboard/util/findTabIndexByComponentId_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/findTabIndexByComponentId_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/findTabIndexByComponentId_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getChartAndLabelComponentIdFromPath_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getChartAndLabelComponentIdFromPath_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getChartAndLabelComponentIdFromPath_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getChartAndLabelComponentIdFromPath_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getChartIdsFromLayout_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getChartIdsFromLayout_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getChartIdsFromLayout_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getChartIdsFromLayout_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getDashboardUrl_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getDashboardUrl_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getDashboardUrl_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getDashboardUrl_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getDetailedComponentWidth_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getDetailedComponentWidth_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getDetailedComponentWidth_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getDetailedComponentWidth_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getDropPosition_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getDropPosition_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getDropPosition_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getDropPosition_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getFilterConfigsFromFormdata_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getFilterScopeFromNodesTree_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getFilterScopeFromNodesTree_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getFilterScopeFromNodesTree_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getFilterScopeFromNodesTree_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getFormDataWithExtraFilters_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getFormDataWithExtraFilters_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getFormDataWithExtraFilters_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getFormDataWithExtraFilters_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/getLeafComponentIdFromPath_spec.js b/superset-frontend/spec/javascripts/dashboard/util/getLeafComponentIdFromPath_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/getLeafComponentIdFromPath_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/getLeafComponentIdFromPath_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/isValidChild_spec.js b/superset-frontend/spec/javascripts/dashboard/util/isValidChild_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/isValidChild_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/isValidChild_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/newComponentFactory_spec.js b/superset-frontend/spec/javascripts/dashboard/util/newComponentFactory_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/newComponentFactory_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/newComponentFactory_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/newEntitiesFromDrop_spec.js b/superset-frontend/spec/javascripts/dashboard/util/newEntitiesFromDrop_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/newEntitiesFromDrop_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/newEntitiesFromDrop_spec.js
diff --git a/superset/assets/spec/javascripts/dashboard/util/updateComponentParentsList_spec.js b/superset-frontend/spec/javascripts/dashboard/util/updateComponentParentsList_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/util/updateComponentParentsList_spec.js
rename to superset-frontend/spec/javascripts/dashboard/util/updateComponentParentsList_spec.js
diff --git a/superset/assets/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx b/superset-frontend/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx
rename to superset-frontend/spec/javascripts/datasource/ChangeDatasourceModal_spec.jsx
diff --git a/superset/assets/spec/javascripts/datasource/DatasourceEditor_spec.jsx b/superset-frontend/spec/javascripts/datasource/DatasourceEditor_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/datasource/DatasourceEditor_spec.jsx
rename to superset-frontend/spec/javascripts/datasource/DatasourceEditor_spec.jsx
diff --git a/superset/assets/spec/javascripts/datasource/DatasourceModal_spec.jsx b/superset-frontend/spec/javascripts/datasource/DatasourceModal_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/datasource/DatasourceModal_spec.jsx
rename to superset-frontend/spec/javascripts/datasource/DatasourceModal_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/AdhocFilter_spec.js b/superset-frontend/spec/javascripts/explore/AdhocFilter_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/explore/AdhocFilter_spec.js
rename to superset-frontend/spec/javascripts/explore/AdhocFilter_spec.js
diff --git a/superset/assets/spec/javascripts/explore/AdhocMetric_spec.js b/superset-frontend/spec/javascripts/explore/AdhocMetric_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/explore/AdhocMetric_spec.js
rename to superset-frontend/spec/javascripts/explore/AdhocMetric_spec.js
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocFilterControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocFilterControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocFilterControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocFilterControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocFilterEditPopoverSimpleTabContent_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocFilterEditPopoverSimpleTabContent_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocFilterEditPopoverSimpleTabContent_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocFilterEditPopoverSimpleTabContent_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocFilterEditPopoverSqlTabContent_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocFilterEditPopoverSqlTabContent_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocFilterEditPopoverSqlTabContent_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocFilterEditPopoverSqlTabContent_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocFilterEditPopover_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocFilterEditPopover_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocFilterEditPopover_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocFilterEditPopover_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocFilterOption_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocFilterOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocFilterOption_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocFilterOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocMetricEditPopoverTitle_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocMetricEditPopoverTitle_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocMetricEditPopoverTitle_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocMetricEditPopoverTitle_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocMetricEditPopover_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocMetricEditPopover_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocMetricEditPopover_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocMetricEditPopover_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocMetricOption_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocMetricOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocMetricOption_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocMetricOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AdhocMetricStaticOption_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AdhocMetricStaticOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AdhocMetricStaticOption_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AdhocMetricStaticOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/AggregateOption_spec.jsx b/superset-frontend/spec/javascripts/explore/components/AggregateOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/AggregateOption_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/AggregateOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/BoundsControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/BoundsControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/BoundsControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/BoundsControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/CheckboxControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/CheckboxControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/CheckboxControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/CheckboxControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ColorPickerControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ColorPickerControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ColorPickerControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ColorPickerControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ColorScheme_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ColorScheme_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ColorScheme_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ColorScheme_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ControlPanelSection_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ControlPanelSection_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ControlPanelSection_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ControlPanelSection_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ControlPanelsContainer_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ControlRow_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ControlRow_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ControlRow_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ControlRow_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/DatasourceControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/DatasourceControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/DatasourceControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/DatasourceControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/DateFilterControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/DateFilterControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/DateFilterControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/DateFilterControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx b/superset-frontend/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/DisplayQueryButton_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/EmbedCodeButton_spec.jsx b/superset-frontend/spec/javascripts/explore/components/EmbedCodeButton_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/EmbedCodeButton_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/EmbedCodeButton_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ExploreChartHeader_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ExploreChartHeader_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ExploreChartHeader_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ExploreChartHeader_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ExploreChartPanel_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ExploreChartPanel_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ExploreChartPanel_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ExploreChartPanel_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ExploreViewContainer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ExploreViewContainer_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ExploreViewContainer_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx b/superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/FixedOrMetricControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/FixedOrMetricControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/FixedOrMetricControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/FixedOrMetricControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx b/superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/MetricDefinitionValue_spec.jsx b/superset-frontend/spec/javascripts/explore/components/MetricDefinitionValue_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/MetricDefinitionValue_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/MetricDefinitionValue_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/MetricsControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/MetricsControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx b/superset-frontend/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/RowCountLabel_spec.jsx b/superset-frontend/spec/javascripts/explore/components/RowCountLabel_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/RowCountLabel_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/RowCountLabel_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx b/superset-frontend/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/SaveModal_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/SelectControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/SelectControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/SelectControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/SelectControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/TextArea_spec.jsx b/superset-frontend/spec/javascripts/explore/components/TextArea_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/TextArea_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/TextArea_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/TimeSeriesColumnControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/TimeSeriesColumnControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/TimeSeriesColumnControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/TimeSeriesColumnControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/ViewportControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ViewportControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/ViewportControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/ViewportControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/VizTypeControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/VizTypeControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/components/withVerification_spec.jsx b/superset-frontend/spec/javascripts/explore/components/withVerification_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/components/withVerification_spec.jsx
rename to superset-frontend/spec/javascripts/explore/components/withVerification_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/controlUtils_spec.jsx b/superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/controlUtils_spec.jsx
rename to superset-frontend/spec/javascripts/explore/controlUtils_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/exploreActions_spec.js b/superset-frontend/spec/javascripts/explore/exploreActions_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/explore/exploreActions_spec.js
rename to superset-frontend/spec/javascripts/explore/exploreActions_spec.js
diff --git a/superset/assets/spec/javascripts/explore/store_spec.jsx b/superset-frontend/spec/javascripts/explore/store_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/store_spec.jsx
rename to superset-frontend/spec/javascripts/explore/store_spec.jsx
diff --git a/superset/assets/spec/javascripts/explore/utils_spec.jsx b/superset-frontend/spec/javascripts/explore/utils_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/explore/utils_spec.jsx
rename to superset-frontend/spec/javascripts/explore/utils_spec.jsx
diff --git a/superset/assets/spec/javascripts/messageToasts/.eslintrc b/superset-frontend/spec/javascripts/messageToasts/.eslintrc
similarity index 100%
rename from superset/assets/spec/javascripts/messageToasts/.eslintrc
rename to superset-frontend/spec/javascripts/messageToasts/.eslintrc
diff --git a/superset/assets/spec/javascripts/messageToasts/components/ToastPresenter_spec.jsx b/superset-frontend/spec/javascripts/messageToasts/components/ToastPresenter_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/messageToasts/components/ToastPresenter_spec.jsx
rename to superset-frontend/spec/javascripts/messageToasts/components/ToastPresenter_spec.jsx
diff --git a/superset/assets/spec/javascripts/messageToasts/components/Toast_spec.jsx b/superset-frontend/spec/javascripts/messageToasts/components/Toast_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/messageToasts/components/Toast_spec.jsx
rename to superset-frontend/spec/javascripts/messageToasts/components/Toast_spec.jsx
diff --git a/superset/assets/spec/javascripts/messageToasts/mockMessageToasts.js b/superset-frontend/spec/javascripts/messageToasts/mockMessageToasts.js
similarity index 100%
rename from superset/assets/spec/javascripts/messageToasts/mockMessageToasts.js
rename to superset-frontend/spec/javascripts/messageToasts/mockMessageToasts.js
diff --git a/superset/assets/spec/javascripts/messageToasts/reducers/messageToasts_spec.js b/superset-frontend/spec/javascripts/messageToasts/reducers/messageToasts_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/messageToasts/reducers/messageToasts_spec.js
rename to superset-frontend/spec/javascripts/messageToasts/reducers/messageToasts_spec.js
diff --git a/superset/assets/spec/javascripts/messageToasts/utils/getToastsFromPyFlashMessages_spec.js b/superset-frontend/spec/javascripts/messageToasts/utils/getToastsFromPyFlashMessages_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/messageToasts/utils/getToastsFromPyFlashMessages_spec.js
rename to superset-frontend/spec/javascripts/messageToasts/utils/getToastsFromPyFlashMessages_spec.js
diff --git a/superset/assets/spec/javascripts/middleware/logger_spec.js b/superset-frontend/spec/javascripts/middleware/logger_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/middleware/logger_spec.js
rename to superset-frontend/spec/javascripts/middleware/logger_spec.js
diff --git a/superset/assets/spec/javascripts/modules/dates_spec.js b/superset-frontend/spec/javascripts/modules/dates_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/modules/dates_spec.js
rename to superset-frontend/spec/javascripts/modules/dates_spec.js
diff --git a/superset/assets/spec/javascripts/modules/utils_spec.jsx b/superset-frontend/spec/javascripts/modules/utils_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/modules/utils_spec.jsx
rename to superset-frontend/spec/javascripts/modules/utils_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/App_spec.jsx b/superset-frontend/spec/javascripts/profile/App_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/App_spec.jsx
rename to superset-frontend/spec/javascripts/profile/App_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/CreatedContent_spec.jsx b/superset-frontend/spec/javascripts/profile/CreatedContent_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/CreatedContent_spec.jsx
rename to superset-frontend/spec/javascripts/profile/CreatedContent_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/EditableTitle_spec.jsx b/superset-frontend/spec/javascripts/profile/EditableTitle_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/EditableTitle_spec.jsx
rename to superset-frontend/spec/javascripts/profile/EditableTitle_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/Favorites_spec.jsx b/superset-frontend/spec/javascripts/profile/Favorites_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/Favorites_spec.jsx
rename to superset-frontend/spec/javascripts/profile/Favorites_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/RecentActivity_spec.jsx b/superset-frontend/spec/javascripts/profile/RecentActivity_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/RecentActivity_spec.jsx
rename to superset-frontend/spec/javascripts/profile/RecentActivity_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/Security_spec.jsx b/superset-frontend/spec/javascripts/profile/Security_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/Security_spec.jsx
rename to superset-frontend/spec/javascripts/profile/Security_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/UserInfo_spec.jsx b/superset-frontend/spec/javascripts/profile/UserInfo_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/UserInfo_spec.jsx
rename to superset-frontend/spec/javascripts/profile/UserInfo_spec.jsx
diff --git a/superset/assets/spec/javascripts/profile/fixtures.jsx b/superset-frontend/spec/javascripts/profile/fixtures.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/profile/fixtures.jsx
rename to superset-frontend/spec/javascripts/profile/fixtures.jsx
diff --git a/superset/assets/spec/javascripts/showSavedQuery/utils_spec.jsx b/superset-frontend/spec/javascripts/showSavedQuery/utils_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/showSavedQuery/utils_spec.jsx
rename to superset-frontend/spec/javascripts/showSavedQuery/utils_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/App_spec.jsx b/superset-frontend/spec/javascripts/sqllab/App_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/App_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/App_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/ColumnElement_spec.jsx b/superset-frontend/spec/javascripts/sqllab/ColumnElement_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/ColumnElement_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/ColumnElement_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx b/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/HighlightedSql_spec.jsx b/superset-frontend/spec/javascripts/sqllab/HighlightedSql_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/HighlightedSql_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/HighlightedSql_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/LimitControl_spec.jsx b/superset-frontend/spec/javascripts/sqllab/LimitControl_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/LimitControl_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/LimitControl_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/Link_spec.jsx b/superset-frontend/spec/javascripts/sqllab/Link_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/Link_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/Link_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx b/superset-frontend/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/QueryAutoRefresh_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/QuerySearch_spec.jsx b/superset-frontend/spec/javascripts/sqllab/QuerySearch_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/QuerySearch_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/QuerySearch_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/QueryStateLabel_spec.jsx b/superset-frontend/spec/javascripts/sqllab/QueryStateLabel_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/QueryStateLabel_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/QueryStateLabel_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/QueryTable_spec.jsx b/superset-frontend/spec/javascripts/sqllab/QueryTable_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/QueryTable_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/QueryTable_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/ResultSet_spec.jsx b/superset-frontend/spec/javascripts/sqllab/ResultSet_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/ResultSet_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/ResultSet_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/SaveQuery_spec.jsx b/superset-frontend/spec/javascripts/sqllab/SaveQuery_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/SaveQuery_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/SaveQuery_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/ShareSqlLabQuery_spec.jsx b/superset-frontend/spec/javascripts/sqllab/ShareSqlLabQuery_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/ShareSqlLabQuery_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/ShareSqlLabQuery_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/SouthPane_spec.jsx b/superset-frontend/spec/javascripts/sqllab/SouthPane_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/SouthPane_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/SouthPane_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx b/superset-frontend/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/SqlEditorLeftBar_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx b/superset-frontend/spec/javascripts/sqllab/SqlEditor_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/SqlEditor_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/TabStatusIcon_spec.jsx b/superset-frontend/spec/javascripts/sqllab/TabStatusIcon_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/TabStatusIcon_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/TabStatusIcon_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx b/superset-frontend/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/TabbedSqlEditors_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/TableElement_spec.jsx b/superset-frontend/spec/javascripts/sqllab/TableElement_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/TableElement_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/TableElement_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/Timer_spec.jsx b/superset-frontend/spec/javascripts/sqllab/Timer_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/Timer_spec.jsx
rename to superset-frontend/spec/javascripts/sqllab/Timer_spec.jsx
diff --git a/superset/assets/spec/javascripts/sqllab/actions/sqlLab_spec.js b/superset-frontend/spec/javascripts/sqllab/actions/sqlLab_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/actions/sqlLab_spec.js
rename to superset-frontend/spec/javascripts/sqllab/actions/sqlLab_spec.js
diff --git a/superset/assets/spec/javascripts/sqllab/fixtures.js b/superset-frontend/spec/javascripts/sqllab/fixtures.js
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/fixtures.js
rename to superset-frontend/spec/javascripts/sqllab/fixtures.js
diff --git a/superset/assets/spec/javascripts/sqllab/reducers/sqlLab_spec.js b/superset-frontend/spec/javascripts/sqllab/reducers/sqlLab_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/reducers/sqlLab_spec.js
rename to superset-frontend/spec/javascripts/sqllab/reducers/sqlLab_spec.js
diff --git a/superset/assets/spec/javascripts/sqllab/utils/emptyQueryResults_spec.js b/superset-frontend/spec/javascripts/sqllab/utils/emptyQueryResults_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/sqllab/utils/emptyQueryResults_spec.js
rename to superset-frontend/spec/javascripts/sqllab/utils/emptyQueryResults_spec.js
diff --git a/superset/assets/spec/javascripts/utils/common_spec.jsx b/superset-frontend/spec/javascripts/utils/common_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/utils/common_spec.jsx
rename to superset-frontend/spec/javascripts/utils/common_spec.jsx
diff --git a/superset/assets/spec/javascripts/utils/getClientErrorObject_spec.js b/superset-frontend/spec/javascripts/utils/getClientErrorObject_spec.js
similarity index 100%
rename from superset/assets/spec/javascripts/utils/getClientErrorObject_spec.js
rename to superset-frontend/spec/javascripts/utils/getClientErrorObject_spec.js
diff --git a/superset/assets/spec/javascripts/utils/safeStringify_spec.ts b/superset-frontend/spec/javascripts/utils/safeStringify_spec.ts
similarity index 100%
rename from superset/assets/spec/javascripts/utils/safeStringify_spec.ts
rename to superset-frontend/spec/javascripts/utils/safeStringify_spec.ts
diff --git a/superset/assets/spec/javascripts/views/chartList/ChartList_spec.jsx b/superset-frontend/spec/javascripts/views/chartList/ChartList_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/views/chartList/ChartList_spec.jsx
rename to superset-frontend/spec/javascripts/views/chartList/ChartList_spec.jsx
diff --git a/superset/assets/spec/javascripts/views/dashboardList/DashboardList_spec.jsx b/superset-frontend/spec/javascripts/views/dashboardList/DashboardList_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/views/dashboardList/DashboardList_spec.jsx
rename to superset-frontend/spec/javascripts/views/dashboardList/DashboardList_spec.jsx
diff --git a/superset/assets/spec/javascripts/welcome/DashboardTable_spec.jsx b/superset-frontend/spec/javascripts/welcome/DashboardTable_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/welcome/DashboardTable_spec.jsx
rename to superset-frontend/spec/javascripts/welcome/DashboardTable_spec.jsx
diff --git a/superset/assets/spec/javascripts/welcome/Welcome_spec.jsx b/superset-frontend/spec/javascripts/welcome/Welcome_spec.jsx
similarity index 100%
rename from superset/assets/spec/javascripts/welcome/Welcome_spec.jsx
rename to superset-frontend/spec/javascripts/welcome/Welcome_spec.jsx
diff --git a/superset/assets/src/CRUD/CollectionTable.jsx b/superset-frontend/src/CRUD/CollectionTable.jsx
similarity index 100%
rename from superset/assets/src/CRUD/CollectionTable.jsx
rename to superset-frontend/src/CRUD/CollectionTable.jsx
diff --git a/superset/assets/src/CRUD/Field.jsx b/superset-frontend/src/CRUD/Field.jsx
similarity index 100%
rename from superset/assets/src/CRUD/Field.jsx
rename to superset-frontend/src/CRUD/Field.jsx
diff --git a/superset/assets/src/CRUD/Fieldset.jsx b/superset-frontend/src/CRUD/Fieldset.jsx
similarity index 100%
rename from superset/assets/src/CRUD/Fieldset.jsx
rename to superset-frontend/src/CRUD/Fieldset.jsx
diff --git a/superset/assets/src/CRUD/crud.less b/superset-frontend/src/CRUD/crud.less
similarity index 100%
rename from superset/assets/src/CRUD/crud.less
rename to superset-frontend/src/CRUD/crud.less
diff --git a/superset/assets/src/CRUD/utils.js b/superset-frontend/src/CRUD/utils.js
similarity index 100%
rename from superset/assets/src/CRUD/utils.js
rename to superset-frontend/src/CRUD/utils.js
diff --git a/superset/assets/src/SqlLab/App.jsx b/superset-frontend/src/SqlLab/App.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/App.jsx
rename to superset-frontend/src/SqlLab/App.jsx
diff --git a/superset/assets/src/SqlLab/actions/sqlLab.js b/superset-frontend/src/SqlLab/actions/sqlLab.js
similarity index 100%
rename from superset/assets/src/SqlLab/actions/sqlLab.js
rename to superset-frontend/src/SqlLab/actions/sqlLab.js
diff --git a/superset/assets/src/SqlLab/components/AceEditorWrapper.jsx b/superset-frontend/src/SqlLab/components/AceEditorWrapper.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/AceEditorWrapper.jsx
rename to superset-frontend/src/SqlLab/components/AceEditorWrapper.jsx
diff --git a/superset/assets/src/SqlLab/components/App.jsx b/superset-frontend/src/SqlLab/components/App.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/App.jsx
rename to superset-frontend/src/SqlLab/components/App.jsx
diff --git a/superset/assets/src/SqlLab/components/ColumnElement.jsx b/superset-frontend/src/SqlLab/components/ColumnElement.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/ColumnElement.jsx
rename to superset-frontend/src/SqlLab/components/ColumnElement.jsx
diff --git a/superset/assets/src/SqlLab/components/EstimateQueryCostButton.jsx b/superset-frontend/src/SqlLab/components/EstimateQueryCostButton.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/EstimateQueryCostButton.jsx
rename to superset-frontend/src/SqlLab/components/EstimateQueryCostButton.jsx
diff --git a/superset/assets/src/SqlLab/components/ExploreResultsButton.jsx b/superset-frontend/src/SqlLab/components/ExploreResultsButton.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/ExploreResultsButton.jsx
rename to superset-frontend/src/SqlLab/components/ExploreResultsButton.jsx
diff --git a/superset/assets/src/SqlLab/components/HighlightedSql.jsx b/superset-frontend/src/SqlLab/components/HighlightedSql.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/HighlightedSql.jsx
rename to superset-frontend/src/SqlLab/components/HighlightedSql.jsx
diff --git a/superset/assets/src/SqlLab/components/LimitControl.jsx b/superset-frontend/src/SqlLab/components/LimitControl.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/LimitControl.jsx
rename to superset-frontend/src/SqlLab/components/LimitControl.jsx
diff --git a/superset/assets/src/SqlLab/components/Link.jsx b/superset-frontend/src/SqlLab/components/Link.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/Link.jsx
rename to superset-frontend/src/SqlLab/components/Link.jsx
diff --git a/superset/assets/src/SqlLab/components/QueryAutoRefresh.jsx b/superset-frontend/src/SqlLab/components/QueryAutoRefresh.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/QueryAutoRefresh.jsx
rename to superset-frontend/src/SqlLab/components/QueryAutoRefresh.jsx
diff --git a/superset/assets/src/SqlLab/components/QueryHistory.jsx b/superset-frontend/src/SqlLab/components/QueryHistory.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/QueryHistory.jsx
rename to superset-frontend/src/SqlLab/components/QueryHistory.jsx
diff --git a/superset/assets/src/SqlLab/components/QuerySearch.jsx b/superset-frontend/src/SqlLab/components/QuerySearch.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/QuerySearch.jsx
rename to superset-frontend/src/SqlLab/components/QuerySearch.jsx
diff --git a/superset/assets/src/SqlLab/components/QueryStateLabel.jsx b/superset-frontend/src/SqlLab/components/QueryStateLabel.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/QueryStateLabel.jsx
rename to superset-frontend/src/SqlLab/components/QueryStateLabel.jsx
diff --git a/superset/assets/src/SqlLab/components/QueryTable.jsx b/superset-frontend/src/SqlLab/components/QueryTable.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/QueryTable.jsx
rename to superset-frontend/src/SqlLab/components/QueryTable.jsx
diff --git a/superset/assets/src/SqlLab/components/ResultSet.jsx b/superset-frontend/src/SqlLab/components/ResultSet.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/ResultSet.jsx
rename to superset-frontend/src/SqlLab/components/ResultSet.jsx
diff --git a/superset/assets/src/SqlLab/components/RunQueryActionButton.jsx b/superset-frontend/src/SqlLab/components/RunQueryActionButton.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/RunQueryActionButton.jsx
rename to superset-frontend/src/SqlLab/components/RunQueryActionButton.jsx
diff --git a/superset/assets/src/SqlLab/components/SaveQuery.jsx b/superset-frontend/src/SqlLab/components/SaveQuery.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/SaveQuery.jsx
rename to superset-frontend/src/SqlLab/components/SaveQuery.jsx
diff --git a/superset/assets/src/SqlLab/components/ScheduleQueryButton.jsx b/superset-frontend/src/SqlLab/components/ScheduleQueryButton.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/ScheduleQueryButton.jsx
rename to superset-frontend/src/SqlLab/components/ScheduleQueryButton.jsx
diff --git a/superset/assets/src/SqlLab/components/ShareSqlLabQuery.jsx b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/ShareSqlLabQuery.jsx
rename to superset-frontend/src/SqlLab/components/ShareSqlLabQuery.jsx
diff --git a/superset/assets/src/SqlLab/components/ShowSQL.jsx b/superset-frontend/src/SqlLab/components/ShowSQL.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/ShowSQL.jsx
rename to superset-frontend/src/SqlLab/components/ShowSQL.jsx
diff --git a/superset/assets/src/SqlLab/components/SouthPane.jsx b/superset-frontend/src/SqlLab/components/SouthPane.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/SouthPane.jsx
rename to superset-frontend/src/SqlLab/components/SouthPane.jsx
diff --git a/superset/assets/src/SqlLab/components/SqlEditor.jsx b/superset-frontend/src/SqlLab/components/SqlEditor.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/SqlEditor.jsx
rename to superset-frontend/src/SqlLab/components/SqlEditor.jsx
diff --git a/superset/assets/src/SqlLab/components/SqlEditorLeftBar.jsx b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/SqlEditorLeftBar.jsx
rename to superset-frontend/src/SqlLab/components/SqlEditorLeftBar.jsx
diff --git a/superset/assets/src/SqlLab/components/TabStatusIcon.jsx b/superset-frontend/src/SqlLab/components/TabStatusIcon.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/TabStatusIcon.jsx
rename to superset-frontend/src/SqlLab/components/TabStatusIcon.jsx
diff --git a/superset/assets/src/SqlLab/components/TabbedSqlEditors.jsx b/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/TabbedSqlEditors.jsx
rename to superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
diff --git a/superset/assets/src/SqlLab/components/TableElement.jsx b/superset-frontend/src/SqlLab/components/TableElement.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/TableElement.jsx
rename to superset-frontend/src/SqlLab/components/TableElement.jsx
diff --git a/superset/assets/src/SqlLab/components/TemplateParamsEditor.jsx b/superset-frontend/src/SqlLab/components/TemplateParamsEditor.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/components/TemplateParamsEditor.jsx
rename to superset-frontend/src/SqlLab/components/TemplateParamsEditor.jsx
diff --git a/superset/assets/src/SqlLab/constants.js b/superset-frontend/src/SqlLab/constants.js
similarity index 100%
rename from superset/assets/src/SqlLab/constants.js
rename to superset-frontend/src/SqlLab/constants.js
diff --git a/superset/assets/src/welcome/index.jsx b/superset-frontend/src/SqlLab/index.jsx
similarity index 100%
rename from superset/assets/src/welcome/index.jsx
rename to superset-frontend/src/SqlLab/index.jsx
diff --git a/superset/assets/src/SqlLab/main.less b/superset-frontend/src/SqlLab/main.less
similarity index 100%
rename from superset/assets/src/SqlLab/main.less
rename to superset-frontend/src/SqlLab/main.less
diff --git a/superset/assets/src/SqlLab/reducers/common.js b/superset-frontend/src/SqlLab/reducers/common.js
similarity index 100%
rename from superset/assets/src/SqlLab/reducers/common.js
rename to superset-frontend/src/SqlLab/reducers/common.js
diff --git a/superset/assets/src/SqlLab/reducers/getInitialState.js b/superset-frontend/src/SqlLab/reducers/getInitialState.js
similarity index 100%
rename from superset/assets/src/SqlLab/reducers/getInitialState.js
rename to superset-frontend/src/SqlLab/reducers/getInitialState.js
diff --git a/superset/assets/src/SqlLab/reducers/index.js b/superset-frontend/src/SqlLab/reducers/index.js
similarity index 100%
rename from superset/assets/src/SqlLab/reducers/index.js
rename to superset-frontend/src/SqlLab/reducers/index.js
diff --git a/superset/assets/src/SqlLab/reducers/localStorageUsage.js b/superset-frontend/src/SqlLab/reducers/localStorageUsage.js
similarity index 100%
rename from superset/assets/src/SqlLab/reducers/localStorageUsage.js
rename to superset-frontend/src/SqlLab/reducers/localStorageUsage.js
diff --git a/superset/assets/src/SqlLab/reducers/sqlLab.js b/superset-frontend/src/SqlLab/reducers/sqlLab.js
similarity index 100%
rename from superset/assets/src/SqlLab/reducers/sqlLab.js
rename to superset-frontend/src/SqlLab/reducers/sqlLab.js
diff --git a/superset/assets/src/SqlLab/utils/reduxStateToLocalStorageHelper.js b/superset-frontend/src/SqlLab/utils/reduxStateToLocalStorageHelper.js
similarity index 100%
rename from superset/assets/src/SqlLab/utils/reduxStateToLocalStorageHelper.js
rename to superset-frontend/src/SqlLab/utils/reduxStateToLocalStorageHelper.js
diff --git a/superset/assets/src/SqlLab/utils/sqlKeywords.ts b/superset-frontend/src/SqlLab/utils/sqlKeywords.ts
similarity index 100%
rename from superset/assets/src/SqlLab/utils/sqlKeywords.ts
rename to superset-frontend/src/SqlLab/utils/sqlKeywords.ts
diff --git a/superset/assets/src/addSlice/AddSliceContainer.jsx b/superset-frontend/src/addSlice/AddSliceContainer.jsx
similarity index 100%
rename from superset/assets/src/addSlice/AddSliceContainer.jsx
rename to superset-frontend/src/addSlice/AddSliceContainer.jsx
diff --git a/superset/assets/src/addSlice/App.jsx b/superset-frontend/src/addSlice/App.jsx
similarity index 100%
rename from superset/assets/src/addSlice/App.jsx
rename to superset-frontend/src/addSlice/App.jsx
diff --git a/superset/assets/src/addSlice/index.jsx b/superset-frontend/src/addSlice/index.jsx
similarity index 100%
rename from superset/assets/src/addSlice/index.jsx
rename to superset-frontend/src/addSlice/index.jsx
diff --git a/superset/assets/src/chart/Chart.jsx b/superset-frontend/src/chart/Chart.jsx
similarity index 100%
rename from superset/assets/src/chart/Chart.jsx
rename to superset-frontend/src/chart/Chart.jsx
diff --git a/superset/assets/src/chart/ChartContainer.jsx b/superset-frontend/src/chart/ChartContainer.jsx
similarity index 100%
rename from superset/assets/src/chart/ChartContainer.jsx
rename to superset-frontend/src/chart/ChartContainer.jsx
diff --git a/superset/assets/src/chart/ChartRenderer.jsx b/superset-frontend/src/chart/ChartRenderer.jsx
similarity index 100%
rename from superset/assets/src/chart/ChartRenderer.jsx
rename to superset-frontend/src/chart/ChartRenderer.jsx
diff --git a/superset/assets/src/chart/chart.less b/superset-frontend/src/chart/chart.less
similarity index 100%
rename from superset/assets/src/chart/chart.less
rename to superset-frontend/src/chart/chart.less
diff --git a/superset/assets/src/chart/chartAction.js b/superset-frontend/src/chart/chartAction.js
similarity index 100%
rename from superset/assets/src/chart/chartAction.js
rename to superset-frontend/src/chart/chartAction.js
diff --git a/superset/assets/src/chart/chartReducer.js b/superset-frontend/src/chart/chartReducer.js
similarity index 100%
rename from superset/assets/src/chart/chartReducer.js
rename to superset-frontend/src/chart/chartReducer.js
diff --git a/superset/assets/src/components/ActionMenuItem.jsx b/superset-frontend/src/components/ActionMenuItem.jsx
similarity index 100%
rename from superset/assets/src/components/ActionMenuItem.jsx
rename to superset-frontend/src/components/ActionMenuItem.jsx
diff --git a/superset/assets/src/components/AlteredSliceTag.jsx b/superset-frontend/src/components/AlteredSliceTag.jsx
similarity index 100%
rename from superset/assets/src/components/AlteredSliceTag.jsx
rename to superset-frontend/src/components/AlteredSliceTag.jsx
diff --git a/superset/assets/src/components/AnchorLink.jsx b/superset-frontend/src/components/AnchorLink.jsx
similarity index 100%
rename from superset/assets/src/components/AnchorLink.jsx
rename to superset-frontend/src/components/AnchorLink.jsx
diff --git a/superset/assets/src/components/AsyncSelect.jsx b/superset-frontend/src/components/AsyncSelect.jsx
similarity index 100%
rename from superset/assets/src/components/AsyncSelect.jsx
rename to superset-frontend/src/components/AsyncSelect.jsx
diff --git a/superset/assets/src/components/BootstrapSliderWrapper.jsx b/superset-frontend/src/components/BootstrapSliderWrapper.jsx
similarity index 100%
rename from superset/assets/src/components/BootstrapSliderWrapper.jsx
rename to superset-frontend/src/components/BootstrapSliderWrapper.jsx
diff --git a/superset/assets/src/components/BootstrapSliderWrapper.less b/superset-frontend/src/components/BootstrapSliderWrapper.less
similarity index 100%
rename from superset/assets/src/components/BootstrapSliderWrapper.less
rename to superset-frontend/src/components/BootstrapSliderWrapper.less
diff --git a/superset/assets/src/components/Button.jsx b/superset-frontend/src/components/Button.jsx
similarity index 100%
rename from superset/assets/src/components/Button.jsx
rename to superset-frontend/src/components/Button.jsx
diff --git a/superset/assets/src/components/CachedLabel.jsx b/superset-frontend/src/components/CachedLabel.jsx
similarity index 100%
rename from superset/assets/src/components/CachedLabel.jsx
rename to superset-frontend/src/components/CachedLabel.jsx
diff --git a/superset/assets/src/components/ChartIcon.jsx b/superset-frontend/src/components/ChartIcon.jsx
similarity index 100%
rename from superset/assets/src/components/ChartIcon.jsx
rename to superset-frontend/src/components/ChartIcon.jsx
diff --git a/superset/assets/src/components/Checkbox.jsx b/superset-frontend/src/components/Checkbox.jsx
similarity index 100%
rename from superset/assets/src/components/Checkbox.jsx
rename to superset-frontend/src/components/Checkbox.jsx
diff --git a/superset/assets/src/components/CheckboxIcons.jsx b/superset-frontend/src/components/CheckboxIcons.jsx
similarity index 100%
rename from superset/assets/src/components/CheckboxIcons.jsx
rename to superset-frontend/src/components/CheckboxIcons.jsx
diff --git a/superset/assets/src/components/ColumnOption.jsx b/superset-frontend/src/components/ColumnOption.jsx
similarity index 100%
rename from superset/assets/src/components/ColumnOption.jsx
rename to superset-frontend/src/components/ColumnOption.jsx
diff --git a/superset/assets/src/components/ColumnTypeLabel.jsx b/superset-frontend/src/components/ColumnTypeLabel.jsx
similarity index 100%
rename from superset/assets/src/components/ColumnTypeLabel.jsx
rename to superset-frontend/src/components/ColumnTypeLabel.jsx
diff --git a/superset/assets/src/components/ConfirmStatusChange.tsx b/superset-frontend/src/components/ConfirmStatusChange.tsx
similarity index 100%
rename from superset/assets/src/components/ConfirmStatusChange.tsx
rename to superset-frontend/src/components/ConfirmStatusChange.tsx
diff --git a/superset/assets/src/components/CopyToClipboard.jsx b/superset-frontend/src/components/CopyToClipboard.jsx
similarity index 100%
rename from superset/assets/src/components/CopyToClipboard.jsx
rename to superset-frontend/src/components/CopyToClipboard.jsx
diff --git a/superset/assets/src/components/EditableTitle.jsx b/superset-frontend/src/components/EditableTitle.jsx
similarity index 100%
rename from superset/assets/src/components/EditableTitle.jsx
rename to superset-frontend/src/components/EditableTitle.jsx
diff --git a/superset/assets/src/components/ErrorBoundary.jsx b/superset-frontend/src/components/ErrorBoundary.jsx
similarity index 100%
rename from superset/assets/src/components/ErrorBoundary.jsx
rename to superset-frontend/src/components/ErrorBoundary.jsx
diff --git a/superset/assets/src/components/FaveStar.jsx b/superset-frontend/src/components/FaveStar.jsx
similarity index 100%
rename from superset/assets/src/components/FaveStar.jsx
rename to superset-frontend/src/components/FaveStar.jsx
diff --git a/superset/assets/src/components/FilterBadgeIcon.jsx b/superset-frontend/src/components/FilterBadgeIcon.jsx
similarity index 100%
rename from superset/assets/src/components/FilterBadgeIcon.jsx
rename to superset-frontend/src/components/FilterBadgeIcon.jsx
diff --git a/superset/assets/src/components/FilterBadgeIcon.less b/superset-frontend/src/components/FilterBadgeIcon.less
similarity index 100%
rename from superset/assets/src/components/FilterBadgeIcon.less
rename to superset-frontend/src/components/FilterBadgeIcon.less
diff --git a/superset/assets/src/components/FilterableTable/FilterableTable.jsx b/superset-frontend/src/components/FilterableTable/FilterableTable.jsx
similarity index 100%
rename from superset/assets/src/components/FilterableTable/FilterableTable.jsx
rename to superset-frontend/src/components/FilterableTable/FilterableTable.jsx
diff --git a/superset/assets/src/components/FilterableTable/FilterableTableStyles.less b/superset-frontend/src/components/FilterableTable/FilterableTableStyles.less
similarity index 100%
rename from superset/assets/src/components/FilterableTable/FilterableTableStyles.less
rename to superset-frontend/src/components/FilterableTable/FilterableTableStyles.less
diff --git a/superset/assets/src/components/FormRow.jsx b/superset-frontend/src/components/FormRow.jsx
similarity index 100%
rename from superset/assets/src/components/FormRow.jsx
rename to superset-frontend/src/components/FormRow.jsx
diff --git a/superset/assets/src/components/Hotkeys.jsx b/superset-frontend/src/components/Hotkeys.jsx
similarity index 100%
rename from superset/assets/src/components/Hotkeys.jsx
rename to superset-frontend/src/components/Hotkeys.jsx
diff --git a/superset/assets/src/components/IndeterminateCheckbox.jsx b/superset-frontend/src/components/IndeterminateCheckbox.jsx
similarity index 100%
rename from superset/assets/src/components/IndeterminateCheckbox.jsx
rename to superset-frontend/src/components/IndeterminateCheckbox.jsx
diff --git a/superset/assets/src/components/InfoTooltipWithTrigger.jsx b/superset-frontend/src/components/InfoTooltipWithTrigger.jsx
similarity index 100%
rename from superset/assets/src/components/InfoTooltipWithTrigger.jsx
rename to superset-frontend/src/components/InfoTooltipWithTrigger.jsx
diff --git a/superset/assets/src/components/ListView/ListView.tsx b/superset-frontend/src/components/ListView/ListView.tsx
similarity index 100%
rename from superset/assets/src/components/ListView/ListView.tsx
rename to superset-frontend/src/components/ListView/ListView.tsx
diff --git a/superset/assets/src/components/ListView/ListViewStyles.less b/superset-frontend/src/components/ListView/ListViewStyles.less
similarity index 100%
rename from superset/assets/src/components/ListView/ListViewStyles.less
rename to superset-frontend/src/components/ListView/ListViewStyles.less
diff --git a/superset/assets/src/components/ListView/TableCollection.tsx b/superset-frontend/src/components/ListView/TableCollection.tsx
similarity index 100%
rename from superset/assets/src/components/ListView/TableCollection.tsx
rename to superset-frontend/src/components/ListView/TableCollection.tsx
diff --git a/superset/assets/src/components/ListView/types.ts b/superset-frontend/src/components/ListView/types.ts
similarity index 100%
rename from superset/assets/src/components/ListView/types.ts
rename to superset-frontend/src/components/ListView/types.ts
diff --git a/superset/assets/src/components/ListView/utils.ts b/superset-frontend/src/components/ListView/utils.ts
similarity index 100%
rename from superset/assets/src/components/ListView/utils.ts
rename to superset-frontend/src/components/ListView/utils.ts
diff --git a/superset/assets/src/components/Loading.jsx b/superset-frontend/src/components/Loading.jsx
similarity index 100%
rename from superset/assets/src/components/Loading.jsx
rename to superset-frontend/src/components/Loading.jsx
diff --git a/superset/assets/src/components/Loading.less b/superset-frontend/src/components/Loading.less
similarity index 100%
rename from superset/assets/src/components/Loading.less
rename to superset-frontend/src/components/Loading.less
diff --git a/superset/assets/src/components/Menu/LanguagePicker.jsx b/superset-frontend/src/components/Menu/LanguagePicker.jsx
similarity index 100%
rename from superset/assets/src/components/Menu/LanguagePicker.jsx
rename to superset-frontend/src/components/Menu/LanguagePicker.jsx
diff --git a/superset/assets/src/components/Menu/Menu.jsx b/superset-frontend/src/components/Menu/Menu.jsx
similarity index 100%
rename from superset/assets/src/components/Menu/Menu.jsx
rename to superset-frontend/src/components/Menu/Menu.jsx
diff --git a/superset/assets/src/components/Menu/Menu.less b/superset-frontend/src/components/Menu/Menu.less
similarity index 100%
rename from superset/assets/src/components/Menu/Menu.less
rename to superset-frontend/src/components/Menu/Menu.less
diff --git a/superset/assets/src/components/Menu/MenuObject.jsx b/superset-frontend/src/components/Menu/MenuObject.jsx
similarity index 100%
rename from superset/assets/src/components/Menu/MenuObject.jsx
rename to superset-frontend/src/components/Menu/MenuObject.jsx
diff --git a/superset/assets/src/components/Menu/NewMenu.jsx b/superset-frontend/src/components/Menu/NewMenu.jsx
similarity index 100%
rename from superset/assets/src/components/Menu/NewMenu.jsx
rename to superset-frontend/src/components/Menu/NewMenu.jsx
diff --git a/superset/assets/src/components/Menu/UserMenu.jsx b/superset-frontend/src/components/Menu/UserMenu.jsx
similarity index 100%
rename from superset/assets/src/components/Menu/UserMenu.jsx
rename to superset-frontend/src/components/Menu/UserMenu.jsx
diff --git a/superset/assets/src/components/MetricOption.jsx b/superset-frontend/src/components/MetricOption.jsx
similarity index 100%
rename from superset/assets/src/components/MetricOption.jsx
rename to superset-frontend/src/components/MetricOption.jsx
diff --git a/superset/assets/src/components/ModalTrigger.jsx b/superset-frontend/src/components/ModalTrigger.jsx
similarity index 100%
rename from superset/assets/src/components/ModalTrigger.jsx
rename to superset-frontend/src/components/ModalTrigger.jsx
diff --git a/superset/assets/src/components/OmniContainer.jsx b/superset-frontend/src/components/OmniContainer.jsx
similarity index 100%
rename from superset/assets/src/components/OmniContainer.jsx
rename to superset-frontend/src/components/OmniContainer.jsx
diff --git a/superset/assets/src/components/OnPasteSelect.jsx b/superset-frontend/src/components/OnPasteSelect.jsx
similarity index 100%
rename from superset/assets/src/components/OnPasteSelect.jsx
rename to superset-frontend/src/components/OnPasteSelect.jsx
diff --git a/superset/assets/src/components/OptionDescription.jsx b/superset-frontend/src/components/OptionDescription.jsx
similarity index 100%
rename from superset/assets/src/components/OptionDescription.jsx
rename to superset-frontend/src/components/OptionDescription.jsx
diff --git a/superset/assets/src/components/PopoverSection.jsx b/superset-frontend/src/components/PopoverSection.jsx
similarity index 100%
rename from superset/assets/src/components/PopoverSection.jsx
rename to superset-frontend/src/components/PopoverSection.jsx
diff --git a/superset/assets/src/components/RefreshChartOverlay.jsx b/superset-frontend/src/components/RefreshChartOverlay.jsx
similarity index 100%
rename from superset/assets/src/components/RefreshChartOverlay.jsx
rename to superset-frontend/src/components/RefreshChartOverlay.jsx
diff --git a/superset/assets/src/components/RefreshLabel.jsx b/superset-frontend/src/components/RefreshLabel.jsx
similarity index 100%
rename from superset/assets/src/components/RefreshLabel.jsx
rename to superset-frontend/src/components/RefreshLabel.jsx
diff --git a/superset/assets/src/components/RefreshLabel.less b/superset-frontend/src/components/RefreshLabel.less
similarity index 100%
rename from superset/assets/src/components/RefreshLabel.less
rename to superset-frontend/src/components/RefreshLabel.less
diff --git a/superset/assets/src/components/StackTraceMessage.jsx b/superset-frontend/src/components/StackTraceMessage.jsx
similarity index 100%
rename from superset/assets/src/components/StackTraceMessage.jsx
rename to superset-frontend/src/components/StackTraceMessage.jsx
diff --git a/superset/assets/src/components/TableLoader.jsx b/superset-frontend/src/components/TableLoader.jsx
similarity index 100%
rename from superset/assets/src/components/TableLoader.jsx
rename to superset-frontend/src/components/TableLoader.jsx
diff --git a/superset/assets/src/components/TableSelector.jsx b/superset-frontend/src/components/TableSelector.jsx
similarity index 100%
rename from superset/assets/src/components/TableSelector.jsx
rename to superset-frontend/src/components/TableSelector.jsx
diff --git a/superset/assets/src/components/TableSelector.less b/superset-frontend/src/components/TableSelector.less
similarity index 100%
rename from superset/assets/src/components/TableSelector.less
rename to superset-frontend/src/components/TableSelector.less
diff --git a/superset/assets/src/components/Timer.jsx b/superset-frontend/src/components/Timer.jsx
similarity index 100%
rename from superset/assets/src/components/Timer.jsx
rename to superset-frontend/src/components/Timer.jsx
diff --git a/superset/assets/src/components/TooltipWrapper.jsx b/superset-frontend/src/components/TooltipWrapper.jsx
similarity index 100%
rename from superset/assets/src/components/TooltipWrapper.jsx
rename to superset-frontend/src/components/TooltipWrapper.jsx
diff --git a/superset/assets/src/components/URLShortLinkButton.jsx b/superset-frontend/src/components/URLShortLinkButton.jsx
similarity index 100%
rename from superset/assets/src/components/URLShortLinkButton.jsx
rename to superset-frontend/src/components/URLShortLinkButton.jsx
diff --git a/superset/assets/src/components/URLShortLinkModal.jsx b/superset-frontend/src/components/URLShortLinkModal.jsx
similarity index 100%
rename from superset/assets/src/components/URLShortLinkModal.jsx
rename to superset-frontend/src/components/URLShortLinkModal.jsx
diff --git a/superset/assets/src/components/VictoryTheme.js b/superset-frontend/src/components/VictoryTheme.js
similarity index 100%
rename from superset/assets/src/components/VictoryTheme.js
rename to superset-frontend/src/components/VictoryTheme.js
diff --git a/superset/assets/src/components/VirtualizedRendererWrap.jsx b/superset-frontend/src/components/VirtualizedRendererWrap.jsx
similarity index 100%
rename from superset/assets/src/components/VirtualizedRendererWrap.jsx
rename to superset-frontend/src/components/VirtualizedRendererWrap.jsx
diff --git a/superset/assets/spec/javascripts/dashboard/.eslintrc b/superset-frontend/src/dashboard/.eslintrc
similarity index 100%
rename from superset/assets/spec/javascripts/dashboard/.eslintrc
rename to superset-frontend/src/dashboard/.eslintrc
diff --git a/superset/assets/src/dashboard/App.jsx b/superset-frontend/src/dashboard/App.jsx
similarity index 100%
rename from superset/assets/src/dashboard/App.jsx
rename to superset-frontend/src/dashboard/App.jsx
diff --git a/superset/assets/src/dashboard/actions/dashboardFilters.js b/superset-frontend/src/dashboard/actions/dashboardFilters.js
similarity index 100%
rename from superset/assets/src/dashboard/actions/dashboardFilters.js
rename to superset-frontend/src/dashboard/actions/dashboardFilters.js
diff --git a/superset/assets/src/dashboard/actions/dashboardInfo.js b/superset-frontend/src/dashboard/actions/dashboardInfo.js
similarity index 100%
rename from superset/assets/src/dashboard/actions/dashboardInfo.js
rename to superset-frontend/src/dashboard/actions/dashboardInfo.js
diff --git a/superset/assets/src/dashboard/actions/dashboardLayout.js b/superset-frontend/src/dashboard/actions/dashboardLayout.js
similarity index 100%
rename from superset/assets/src/dashboard/actions/dashboardLayout.js
rename to superset-frontend/src/dashboard/actions/dashboardLayout.js
diff --git a/superset/assets/src/dashboard/actions/dashboardState.js b/superset-frontend/src/dashboard/actions/dashboardState.js
similarity index 100%
rename from superset/assets/src/dashboard/actions/dashboardState.js
rename to superset-frontend/src/dashboard/actions/dashboardState.js
diff --git a/superset/assets/src/dashboard/actions/datasources.js b/superset-frontend/src/dashboard/actions/datasources.js
similarity index 100%
rename from superset/assets/src/dashboard/actions/datasources.js
rename to superset-frontend/src/dashboard/actions/datasources.js
diff --git a/superset/assets/src/dashboard/actions/sliceEntities.js b/superset-frontend/src/dashboard/actions/sliceEntities.js
similarity index 100%
rename from superset/assets/src/dashboard/actions/sliceEntities.js
rename to superset-frontend/src/dashboard/actions/sliceEntities.js
diff --git a/superset/assets/src/dashboard/components/AddSliceCard.jsx b/superset-frontend/src/dashboard/components/AddSliceCard.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/AddSliceCard.jsx
rename to superset-frontend/src/dashboard/components/AddSliceCard.jsx
diff --git a/superset/assets/src/dashboard/components/BuilderComponentPane.jsx b/superset-frontend/src/dashboard/components/BuilderComponentPane.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/BuilderComponentPane.jsx
rename to superset-frontend/src/dashboard/components/BuilderComponentPane.jsx
diff --git a/superset/assets/src/dashboard/components/CodeModal.jsx b/superset-frontend/src/dashboard/components/CodeModal.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/CodeModal.jsx
rename to superset-frontend/src/dashboard/components/CodeModal.jsx
diff --git a/superset/assets/src/dashboard/components/ColorComponentPane.jsx b/superset-frontend/src/dashboard/components/ColorComponentPane.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/ColorComponentPane.jsx
rename to superset-frontend/src/dashboard/components/ColorComponentPane.jsx
diff --git a/superset/assets/src/dashboard/components/CssEditor.jsx b/superset-frontend/src/dashboard/components/CssEditor.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/CssEditor.jsx
rename to superset-frontend/src/dashboard/components/CssEditor.jsx
diff --git a/superset/assets/src/dashboard/components/Dashboard.jsx b/superset-frontend/src/dashboard/components/Dashboard.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/Dashboard.jsx
rename to superset-frontend/src/dashboard/components/Dashboard.jsx
diff --git a/superset/assets/src/dashboard/components/DashboardBuilder.jsx b/superset-frontend/src/dashboard/components/DashboardBuilder.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/DashboardBuilder.jsx
rename to superset-frontend/src/dashboard/components/DashboardBuilder.jsx
diff --git a/superset/assets/src/dashboard/components/DashboardGrid.jsx b/superset-frontend/src/dashboard/components/DashboardGrid.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/DashboardGrid.jsx
rename to superset-frontend/src/dashboard/components/DashboardGrid.jsx
diff --git a/superset/assets/src/dashboard/components/DeleteComponentButton.jsx b/superset-frontend/src/dashboard/components/DeleteComponentButton.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/DeleteComponentButton.jsx
rename to superset-frontend/src/dashboard/components/DeleteComponentButton.jsx
diff --git a/superset/assets/src/dashboard/components/DeleteComponentModal.jsx b/superset-frontend/src/dashboard/components/DeleteComponentModal.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/DeleteComponentModal.jsx
rename to superset-frontend/src/dashboard/components/DeleteComponentModal.jsx
diff --git a/superset/assets/src/dashboard/components/FilterIndicator.jsx b/superset-frontend/src/dashboard/components/FilterIndicator.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/FilterIndicator.jsx
rename to superset-frontend/src/dashboard/components/FilterIndicator.jsx
diff --git a/superset/assets/src/dashboard/components/FilterIndicatorGroup.jsx b/superset-frontend/src/dashboard/components/FilterIndicatorGroup.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/FilterIndicatorGroup.jsx
rename to superset-frontend/src/dashboard/components/FilterIndicatorGroup.jsx
diff --git a/superset/assets/src/dashboard/components/FilterIndicatorTooltip.jsx b/superset-frontend/src/dashboard/components/FilterIndicatorTooltip.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/FilterIndicatorTooltip.jsx
rename to superset-frontend/src/dashboard/components/FilterIndicatorTooltip.jsx
diff --git a/superset/assets/src/dashboard/components/FilterIndicatorsContainer.jsx b/superset-frontend/src/dashboard/components/FilterIndicatorsContainer.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/FilterIndicatorsContainer.jsx
rename to superset-frontend/src/dashboard/components/FilterIndicatorsContainer.jsx
diff --git a/superset/assets/src/dashboard/components/FilterTooltipWrapper.jsx b/superset-frontend/src/dashboard/components/FilterTooltipWrapper.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/FilterTooltipWrapper.jsx
rename to superset-frontend/src/dashboard/components/FilterTooltipWrapper.jsx
diff --git a/superset/assets/src/dashboard/components/Header.jsx b/superset-frontend/src/dashboard/components/Header.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/Header.jsx
rename to superset-frontend/src/dashboard/components/Header.jsx
diff --git a/superset/assets/src/dashboard/components/HeaderActionsDropdown.jsx b/superset-frontend/src/dashboard/components/HeaderActionsDropdown.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/HeaderActionsDropdown.jsx
rename to superset-frontend/src/dashboard/components/HeaderActionsDropdown.jsx
diff --git a/superset/assets/src/dashboard/components/IconButton.jsx b/superset-frontend/src/dashboard/components/IconButton.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/IconButton.jsx
rename to superset-frontend/src/dashboard/components/IconButton.jsx
diff --git a/superset/assets/src/dashboard/components/InsertComponentPane.jsx b/superset-frontend/src/dashboard/components/InsertComponentPane.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/InsertComponentPane.jsx
rename to superset-frontend/src/dashboard/components/InsertComponentPane.jsx
diff --git a/superset/assets/src/dashboard/components/MissingChart.jsx b/superset-frontend/src/dashboard/components/MissingChart.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/MissingChart.jsx
rename to superset-frontend/src/dashboard/components/MissingChart.jsx
diff --git a/superset/assets/src/dashboard/components/PropertiesModal.jsx b/superset-frontend/src/dashboard/components/PropertiesModal.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/PropertiesModal.jsx
rename to superset-frontend/src/dashboard/components/PropertiesModal.jsx
diff --git a/superset/assets/src/dashboard/components/PublishedStatus.jsx b/superset-frontend/src/dashboard/components/PublishedStatus.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/PublishedStatus.jsx
rename to superset-frontend/src/dashboard/components/PublishedStatus.jsx
diff --git a/superset/assets/src/dashboard/components/RefreshIntervalModal.jsx b/superset-frontend/src/dashboard/components/RefreshIntervalModal.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/RefreshIntervalModal.jsx
rename to superset-frontend/src/dashboard/components/RefreshIntervalModal.jsx
diff --git a/superset/assets/src/dashboard/components/SaveModal.jsx b/superset-frontend/src/dashboard/components/SaveModal.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/SaveModal.jsx
rename to superset-frontend/src/dashboard/components/SaveModal.jsx
diff --git a/superset/assets/src/dashboard/components/SliceAdder.jsx b/superset-frontend/src/dashboard/components/SliceAdder.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/SliceAdder.jsx
rename to superset-frontend/src/dashboard/components/SliceAdder.jsx
diff --git a/superset/assets/src/dashboard/components/SliceHeader.jsx b/superset-frontend/src/dashboard/components/SliceHeader.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/SliceHeader.jsx
rename to superset-frontend/src/dashboard/components/SliceHeader.jsx
diff --git a/superset/assets/src/dashboard/components/SliceHeaderControls.jsx b/superset-frontend/src/dashboard/components/SliceHeaderControls.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/SliceHeaderControls.jsx
rename to superset-frontend/src/dashboard/components/SliceHeaderControls.jsx
diff --git a/superset/assets/src/dashboard/components/UndoRedoKeylisteners.jsx b/superset-frontend/src/dashboard/components/UndoRedoKeylisteners.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/UndoRedoKeylisteners.jsx
rename to superset-frontend/src/dashboard/components/UndoRedoKeylisteners.jsx
diff --git a/superset/assets/src/dashboard/components/dnd/AddSliceDragPreview.jsx b/superset-frontend/src/dashboard/components/dnd/AddSliceDragPreview.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/dnd/AddSliceDragPreview.jsx
rename to superset-frontend/src/dashboard/components/dnd/AddSliceDragPreview.jsx
diff --git a/superset/assets/src/dashboard/components/dnd/DragDroppable.jsx b/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/dnd/DragDroppable.jsx
rename to superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx
diff --git a/superset/assets/src/dashboard/components/dnd/DragHandle.jsx b/superset-frontend/src/dashboard/components/dnd/DragHandle.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/dnd/DragHandle.jsx
rename to superset-frontend/src/dashboard/components/dnd/DragHandle.jsx
diff --git a/superset/assets/src/dashboard/components/dnd/dragDroppableConfig.js b/superset-frontend/src/dashboard/components/dnd/dragDroppableConfig.js
similarity index 100%
rename from superset/assets/src/dashboard/components/dnd/dragDroppableConfig.js
rename to superset-frontend/src/dashboard/components/dnd/dragDroppableConfig.js
diff --git a/superset/assets/src/dashboard/components/dnd/handleDrop.js b/superset-frontend/src/dashboard/components/dnd/handleDrop.js
similarity index 100%
rename from superset/assets/src/dashboard/components/dnd/handleDrop.js
rename to superset-frontend/src/dashboard/components/dnd/handleDrop.js
diff --git a/superset/assets/src/dashboard/components/dnd/handleHover.js b/superset-frontend/src/dashboard/components/dnd/handleHover.js
similarity index 100%
rename from superset/assets/src/dashboard/components/dnd/handleHover.js
rename to superset-frontend/src/dashboard/components/dnd/handleHover.js
diff --git a/superset/assets/src/dashboard/components/filterscope/FilterFieldItem.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterFieldItem.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/FilterFieldItem.jsx
rename to superset-frontend/src/dashboard/components/filterscope/FilterFieldItem.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/FilterFieldTree.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/FilterFieldTree.jsx
rename to superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/FilterScopeModal.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/FilterScopeModal.jsx
rename to superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/FilterScopeSelector.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/FilterScopeSelector.jsx
rename to superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/FilterScopeTree.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/FilterScopeTree.jsx
rename to superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/renderFilterFieldTreeNodes.jsx b/superset-frontend/src/dashboard/components/filterscope/renderFilterFieldTreeNodes.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/renderFilterFieldTreeNodes.jsx
rename to superset-frontend/src/dashboard/components/filterscope/renderFilterFieldTreeNodes.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx b/superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx
rename to superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx
diff --git a/superset/assets/src/dashboard/components/filterscope/treeIcons.jsx b/superset-frontend/src/dashboard/components/filterscope/treeIcons.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/filterscope/treeIcons.jsx
rename to superset-frontend/src/dashboard/components/filterscope/treeIcons.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Chart.jsx b/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Chart.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Chart.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/ChartHolder.jsx b/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/ChartHolder.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Column.jsx b/superset-frontend/src/dashboard/components/gridComponents/Column.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Column.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Column.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Divider.jsx b/superset-frontend/src/dashboard/components/gridComponents/Divider.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Divider.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Divider.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Header.jsx b/superset-frontend/src/dashboard/components/gridComponents/Header.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Header.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Header.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Markdown.jsx b/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Markdown.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Row.jsx b/superset-frontend/src/dashboard/components/gridComponents/Row.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Row.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Row.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Tab.jsx b/superset-frontend/src/dashboard/components/gridComponents/Tab.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Tab.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Tab.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/Tabs.jsx b/superset-frontend/src/dashboard/components/gridComponents/Tabs.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/Tabs.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/Tabs.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/index.js b/superset-frontend/src/dashboard/components/gridComponents/index.js
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/index.js
rename to superset-frontend/src/dashboard/components/gridComponents/index.js
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/NewColumn.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/NewColumn.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/NewColumn.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/NewColumn.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/NewDivider.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/NewDivider.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/NewDivider.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/NewDivider.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/NewHeader.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/NewHeader.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/NewHeader.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/NewHeader.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/NewMarkdown.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/NewMarkdown.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/NewMarkdown.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/NewMarkdown.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/NewRow.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/NewRow.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/NewRow.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/NewRow.jsx
diff --git a/superset/assets/src/dashboard/components/gridComponents/new/NewTabs.jsx b/superset-frontend/src/dashboard/components/gridComponents/new/NewTabs.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/gridComponents/new/NewTabs.jsx
rename to superset-frontend/src/dashboard/components/gridComponents/new/NewTabs.jsx
diff --git a/superset/assets/src/dashboard/components/menu/BackgroundStyleDropdown.jsx b/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/menu/BackgroundStyleDropdown.jsx
rename to superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.jsx
diff --git a/superset/assets/src/dashboard/components/menu/HoverMenu.jsx b/superset-frontend/src/dashboard/components/menu/HoverMenu.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/menu/HoverMenu.jsx
rename to superset-frontend/src/dashboard/components/menu/HoverMenu.jsx
diff --git a/superset/assets/src/dashboard/components/menu/MarkdownModeDropdown.jsx b/superset-frontend/src/dashboard/components/menu/MarkdownModeDropdown.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/menu/MarkdownModeDropdown.jsx
rename to superset-frontend/src/dashboard/components/menu/MarkdownModeDropdown.jsx
diff --git a/superset/assets/src/dashboard/components/menu/PopoverDropdown.jsx b/superset-frontend/src/dashboard/components/menu/PopoverDropdown.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/menu/PopoverDropdown.jsx
rename to superset-frontend/src/dashboard/components/menu/PopoverDropdown.jsx
diff --git a/superset/assets/src/dashboard/components/menu/WithPopoverMenu.jsx b/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/menu/WithPopoverMenu.jsx
rename to superset-frontend/src/dashboard/components/menu/WithPopoverMenu.jsx
diff --git a/superset/assets/src/dashboard/components/resizable/ResizableContainer.jsx b/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/resizable/ResizableContainer.jsx
rename to superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx
diff --git a/superset/assets/src/dashboard/components/resizable/ResizableHandle.jsx b/superset-frontend/src/dashboard/components/resizable/ResizableHandle.jsx
similarity index 100%
rename from superset/assets/src/dashboard/components/resizable/ResizableHandle.jsx
rename to superset-frontend/src/dashboard/components/resizable/ResizableHandle.jsx
diff --git a/superset/assets/src/dashboard/containers/Chart.jsx b/superset-frontend/src/dashboard/containers/Chart.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/Chart.jsx
rename to superset-frontend/src/dashboard/containers/Chart.jsx
diff --git a/superset/assets/src/dashboard/containers/Dashboard.jsx b/superset-frontend/src/dashboard/containers/Dashboard.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/Dashboard.jsx
rename to superset-frontend/src/dashboard/containers/Dashboard.jsx
diff --git a/superset/assets/src/dashboard/containers/DashboardBuilder.jsx b/superset-frontend/src/dashboard/containers/DashboardBuilder.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/DashboardBuilder.jsx
rename to superset-frontend/src/dashboard/containers/DashboardBuilder.jsx
diff --git a/superset/assets/src/dashboard/containers/DashboardComponent.jsx b/superset-frontend/src/dashboard/containers/DashboardComponent.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/DashboardComponent.jsx
rename to superset-frontend/src/dashboard/containers/DashboardComponent.jsx
diff --git a/superset/assets/src/dashboard/containers/DashboardGrid.jsx b/superset-frontend/src/dashboard/containers/DashboardGrid.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/DashboardGrid.jsx
rename to superset-frontend/src/dashboard/containers/DashboardGrid.jsx
diff --git a/superset/assets/src/dashboard/containers/DashboardHeader.jsx b/superset-frontend/src/dashboard/containers/DashboardHeader.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/DashboardHeader.jsx
rename to superset-frontend/src/dashboard/containers/DashboardHeader.jsx
diff --git a/superset/assets/src/dashboard/containers/FilterIndicators.jsx b/superset-frontend/src/dashboard/containers/FilterIndicators.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/FilterIndicators.jsx
rename to superset-frontend/src/dashboard/containers/FilterIndicators.jsx
diff --git a/superset/assets/src/dashboard/containers/FilterScope.jsx b/superset-frontend/src/dashboard/containers/FilterScope.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/FilterScope.jsx
rename to superset-frontend/src/dashboard/containers/FilterScope.jsx
diff --git a/superset/assets/src/dashboard/containers/SliceAdder.jsx b/superset-frontend/src/dashboard/containers/SliceAdder.jsx
similarity index 100%
rename from superset/assets/src/dashboard/containers/SliceAdder.jsx
rename to superset-frontend/src/dashboard/containers/SliceAdder.jsx
diff --git a/superset/assets/src/dashboard/fixtures/emptyDashboardLayout.js b/superset-frontend/src/dashboard/fixtures/emptyDashboardLayout.js
similarity index 100%
rename from superset/assets/src/dashboard/fixtures/emptyDashboardLayout.js
rename to superset-frontend/src/dashboard/fixtures/emptyDashboardLayout.js
diff --git a/superset/assets/src/profile/index.jsx b/superset-frontend/src/dashboard/index.jsx
similarity index 100%
rename from superset/assets/src/profile/index.jsx
rename to superset-frontend/src/dashboard/index.jsx
diff --git a/superset/assets/src/dashboard/reducers/dashboardFilters.js b/superset-frontend/src/dashboard/reducers/dashboardFilters.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/dashboardFilters.js
rename to superset-frontend/src/dashboard/reducers/dashboardFilters.js
diff --git a/superset/assets/src/dashboard/reducers/dashboardInfo.js b/superset-frontend/src/dashboard/reducers/dashboardInfo.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/dashboardInfo.js
rename to superset-frontend/src/dashboard/reducers/dashboardInfo.js
diff --git a/superset/assets/src/dashboard/reducers/dashboardLayout.js b/superset-frontend/src/dashboard/reducers/dashboardLayout.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/dashboardLayout.js
rename to superset-frontend/src/dashboard/reducers/dashboardLayout.js
diff --git a/superset/assets/src/dashboard/reducers/dashboardState.js b/superset-frontend/src/dashboard/reducers/dashboardState.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/dashboardState.js
rename to superset-frontend/src/dashboard/reducers/dashboardState.js
diff --git a/superset/assets/src/dashboard/reducers/datasources.js b/superset-frontend/src/dashboard/reducers/datasources.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/datasources.js
rename to superset-frontend/src/dashboard/reducers/datasources.js
diff --git a/superset/assets/src/dashboard/reducers/getInitialState.js b/superset-frontend/src/dashboard/reducers/getInitialState.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/getInitialState.js
rename to superset-frontend/src/dashboard/reducers/getInitialState.js
diff --git a/superset/assets/src/dashboard/reducers/index.js b/superset-frontend/src/dashboard/reducers/index.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/index.js
rename to superset-frontend/src/dashboard/reducers/index.js
diff --git a/superset/assets/src/dashboard/reducers/sliceEntities.js b/superset-frontend/src/dashboard/reducers/sliceEntities.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/sliceEntities.js
rename to superset-frontend/src/dashboard/reducers/sliceEntities.js
diff --git a/superset/assets/src/dashboard/reducers/undoableDashboardLayout.js b/superset-frontend/src/dashboard/reducers/undoableDashboardLayout.js
similarity index 100%
rename from superset/assets/src/dashboard/reducers/undoableDashboardLayout.js
rename to superset-frontend/src/dashboard/reducers/undoableDashboardLayout.js
diff --git a/superset/assets/src/dashboard/stylesheets/builder-sidepane.less b/superset-frontend/src/dashboard/stylesheets/builder-sidepane.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/builder-sidepane.less
rename to superset-frontend/src/dashboard/stylesheets/builder-sidepane.less
diff --git a/superset/assets/src/dashboard/stylesheets/builder.less b/superset-frontend/src/dashboard/stylesheets/builder.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/builder.less
rename to superset-frontend/src/dashboard/stylesheets/builder.less
diff --git a/superset/assets/src/dashboard/stylesheets/buttons.less b/superset-frontend/src/dashboard/stylesheets/buttons.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/buttons.less
rename to superset-frontend/src/dashboard/stylesheets/buttons.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/chart.less b/superset-frontend/src/dashboard/stylesheets/components/chart.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/chart.less
rename to superset-frontend/src/dashboard/stylesheets/components/chart.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/column.less b/superset-frontend/src/dashboard/stylesheets/components/column.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/column.less
rename to superset-frontend/src/dashboard/stylesheets/components/column.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/divider.less b/superset-frontend/src/dashboard/stylesheets/components/divider.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/divider.less
rename to superset-frontend/src/dashboard/stylesheets/components/divider.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/header.less b/superset-frontend/src/dashboard/stylesheets/components/header.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/header.less
rename to superset-frontend/src/dashboard/stylesheets/components/header.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/index.less b/superset-frontend/src/dashboard/stylesheets/components/index.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/index.less
rename to superset-frontend/src/dashboard/stylesheets/components/index.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/markdown.less b/superset-frontend/src/dashboard/stylesheets/components/markdown.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/markdown.less
rename to superset-frontend/src/dashboard/stylesheets/components/markdown.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/new-component.less b/superset-frontend/src/dashboard/stylesheets/components/new-component.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/new-component.less
rename to superset-frontend/src/dashboard/stylesheets/components/new-component.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/row.less b/superset-frontend/src/dashboard/stylesheets/components/row.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/row.less
rename to superset-frontend/src/dashboard/stylesheets/components/row.less
diff --git a/superset/assets/src/dashboard/stylesheets/components/tabs.less b/superset-frontend/src/dashboard/stylesheets/components/tabs.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/components/tabs.less
rename to superset-frontend/src/dashboard/stylesheets/components/tabs.less
diff --git a/superset/assets/src/dashboard/stylesheets/dashboard.less b/superset-frontend/src/dashboard/stylesheets/dashboard.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/dashboard.less
rename to superset-frontend/src/dashboard/stylesheets/dashboard.less
diff --git a/superset/assets/src/dashboard/stylesheets/dnd.less b/superset-frontend/src/dashboard/stylesheets/dnd.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/dnd.less
rename to superset-frontend/src/dashboard/stylesheets/dnd.less
diff --git a/superset/assets/src/dashboard/stylesheets/filter-indicator-tooltip.less b/superset-frontend/src/dashboard/stylesheets/filter-indicator-tooltip.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/filter-indicator-tooltip.less
rename to superset-frontend/src/dashboard/stylesheets/filter-indicator-tooltip.less
diff --git a/superset/assets/src/dashboard/stylesheets/filter-indicator.less b/superset-frontend/src/dashboard/stylesheets/filter-indicator.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/filter-indicator.less
rename to superset-frontend/src/dashboard/stylesheets/filter-indicator.less
diff --git a/superset/assets/src/dashboard/stylesheets/filter-scope-selector.less b/superset-frontend/src/dashboard/stylesheets/filter-scope-selector.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/filter-scope-selector.less
rename to superset-frontend/src/dashboard/stylesheets/filter-scope-selector.less
diff --git a/superset/assets/src/dashboard/stylesheets/grid.less b/superset-frontend/src/dashboard/stylesheets/grid.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/grid.less
rename to superset-frontend/src/dashboard/stylesheets/grid.less
diff --git a/superset/assets/src/dashboard/stylesheets/hover-menu.less b/superset-frontend/src/dashboard/stylesheets/hover-menu.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/hover-menu.less
rename to superset-frontend/src/dashboard/stylesheets/hover-menu.less
diff --git a/superset/assets/src/dashboard/stylesheets/index.less b/superset-frontend/src/dashboard/stylesheets/index.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/index.less
rename to superset-frontend/src/dashboard/stylesheets/index.less
diff --git a/superset/assets/src/dashboard/stylesheets/popover-menu.less b/superset-frontend/src/dashboard/stylesheets/popover-menu.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/popover-menu.less
rename to superset-frontend/src/dashboard/stylesheets/popover-menu.less
diff --git a/superset/assets/src/dashboard/stylesheets/resizable.less b/superset-frontend/src/dashboard/stylesheets/resizable.less
similarity index 100%
rename from superset/assets/src/dashboard/stylesheets/resizable.less
rename to superset-frontend/src/dashboard/stylesheets/resizable.less
diff --git a/superset/assets/src/dashboard/util/activeDashboardFilters.js b/superset-frontend/src/dashboard/util/activeDashboardFilters.js
similarity index 100%
rename from superset/assets/src/dashboard/util/activeDashboardFilters.js
rename to superset-frontend/src/dashboard/util/activeDashboardFilters.js
diff --git a/superset/assets/src/dashboard/util/backgroundStyleOptions.js b/superset-frontend/src/dashboard/util/backgroundStyleOptions.js
similarity index 100%
rename from superset/assets/src/dashboard/util/backgroundStyleOptions.js
rename to superset-frontend/src/dashboard/util/backgroundStyleOptions.js
diff --git a/superset/assets/src/dashboard/util/buildFilterScopeTreeEntry.js b/superset-frontend/src/dashboard/util/buildFilterScopeTreeEntry.js
similarity index 100%
rename from superset/assets/src/dashboard/util/buildFilterScopeTreeEntry.js
rename to superset-frontend/src/dashboard/util/buildFilterScopeTreeEntry.js
diff --git a/superset/assets/src/dashboard/util/charts/getEffectiveExtraFilters.js b/superset-frontend/src/dashboard/util/charts/getEffectiveExtraFilters.js
similarity index 100%
rename from superset/assets/src/dashboard/util/charts/getEffectiveExtraFilters.js
rename to superset-frontend/src/dashboard/util/charts/getEffectiveExtraFilters.js
diff --git a/superset/assets/src/dashboard/util/charts/getFormDataWithExtraFilters.js b/superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.js
similarity index 100%
rename from superset/assets/src/dashboard/util/charts/getFormDataWithExtraFilters.js
rename to superset-frontend/src/dashboard/util/charts/getFormDataWithExtraFilters.js
diff --git a/superset/assets/src/dashboard/util/componentIsResizable.js b/superset-frontend/src/dashboard/util/componentIsResizable.js
similarity index 100%
rename from superset/assets/src/dashboard/util/componentIsResizable.js
rename to superset-frontend/src/dashboard/util/componentIsResizable.js
diff --git a/superset/assets/src/dashboard/util/componentTypes.js b/superset-frontend/src/dashboard/util/componentTypes.js
similarity index 100%
rename from superset/assets/src/dashboard/util/componentTypes.js
rename to superset-frontend/src/dashboard/util/componentTypes.js
diff --git a/superset/assets/src/dashboard/util/constants.js b/superset-frontend/src/dashboard/util/constants.js
similarity index 100%
rename from superset/assets/src/dashboard/util/constants.js
rename to superset-frontend/src/dashboard/util/constants.js
diff --git a/superset/assets/src/dashboard/util/dashboardFiltersColorMap.js b/superset-frontend/src/dashboard/util/dashboardFiltersColorMap.js
similarity index 100%
rename from superset/assets/src/dashboard/util/dashboardFiltersColorMap.js
rename to superset-frontend/src/dashboard/util/dashboardFiltersColorMap.js
diff --git a/superset/assets/src/dashboard/util/dnd-reorder.js b/superset-frontend/src/dashboard/util/dnd-reorder.js
similarity index 100%
rename from superset/assets/src/dashboard/util/dnd-reorder.js
rename to superset-frontend/src/dashboard/util/dnd-reorder.js
diff --git a/superset/assets/src/dashboard/util/dropOverflowsParent.js b/superset-frontend/src/dashboard/util/dropOverflowsParent.js
similarity index 100%
rename from superset/assets/src/dashboard/util/dropOverflowsParent.js
rename to superset-frontend/src/dashboard/util/dropOverflowsParent.js
diff --git a/superset/assets/src/dashboard/util/findFirstParentContainer.js b/superset-frontend/src/dashboard/util/findFirstParentContainer.js
similarity index 100%
rename from superset/assets/src/dashboard/util/findFirstParentContainer.js
rename to superset-frontend/src/dashboard/util/findFirstParentContainer.js
diff --git a/superset/assets/src/dashboard/util/findParentId.js b/superset-frontend/src/dashboard/util/findParentId.js
similarity index 100%
rename from superset/assets/src/dashboard/util/findParentId.js
rename to superset-frontend/src/dashboard/util/findParentId.js
diff --git a/superset/assets/src/dashboard/util/findTabIndexByComponentId.js b/superset-frontend/src/dashboard/util/findTabIndexByComponentId.js
similarity index 100%
rename from superset/assets/src/dashboard/util/findTabIndexByComponentId.js
rename to superset-frontend/src/dashboard/util/findTabIndexByComponentId.js
diff --git a/superset/assets/src/dashboard/util/getChartAndLabelComponentIdFromPath.js b/superset-frontend/src/dashboard/util/getChartAndLabelComponentIdFromPath.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getChartAndLabelComponentIdFromPath.js
rename to superset-frontend/src/dashboard/util/getChartAndLabelComponentIdFromPath.js
diff --git a/superset/assets/src/dashboard/util/getChartIdsFromLayout.js b/superset-frontend/src/dashboard/util/getChartIdsFromLayout.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getChartIdsFromLayout.js
rename to superset-frontend/src/dashboard/util/getChartIdsFromLayout.js
diff --git a/superset/assets/src/dashboard/util/getComponentWidthFromDrop.js b/superset-frontend/src/dashboard/util/getComponentWidthFromDrop.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getComponentWidthFromDrop.js
rename to superset-frontend/src/dashboard/util/getComponentWidthFromDrop.js
diff --git a/superset/assets/src/dashboard/util/getDashboardFilterKey.js b/superset-frontend/src/dashboard/util/getDashboardFilterKey.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getDashboardFilterKey.js
rename to superset-frontend/src/dashboard/util/getDashboardFilterKey.js
diff --git a/superset/assets/src/dashboard/util/getDashboardUrl.js b/superset-frontend/src/dashboard/util/getDashboardUrl.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getDashboardUrl.js
rename to superset-frontend/src/dashboard/util/getDashboardUrl.js
diff --git a/superset/assets/src/dashboard/util/getDetailedComponentWidth.js b/superset-frontend/src/dashboard/util/getDetailedComponentWidth.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getDetailedComponentWidth.js
rename to superset-frontend/src/dashboard/util/getDetailedComponentWidth.js
diff --git a/superset/assets/src/dashboard/util/getDirectPathToTabIndex.js b/superset-frontend/src/dashboard/util/getDirectPathToTabIndex.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getDirectPathToTabIndex.js
rename to superset-frontend/src/dashboard/util/getDirectPathToTabIndex.js
diff --git a/superset/assets/src/dashboard/util/getDragDropManager.js b/superset-frontend/src/dashboard/util/getDragDropManager.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getDragDropManager.js
rename to superset-frontend/src/dashboard/util/getDragDropManager.js
diff --git a/superset/assets/src/dashboard/util/getDropPosition.js b/superset-frontend/src/dashboard/util/getDropPosition.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getDropPosition.js
rename to superset-frontend/src/dashboard/util/getDropPosition.js
diff --git a/superset/assets/src/dashboard/util/getEmptyLayout.js b/superset-frontend/src/dashboard/util/getEmptyLayout.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getEmptyLayout.js
rename to superset-frontend/src/dashboard/util/getEmptyLayout.js
diff --git a/superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js b/superset-frontend/src/dashboard/util/getFilterConfigsFromFormdata.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getFilterConfigsFromFormdata.js
rename to superset-frontend/src/dashboard/util/getFilterConfigsFromFormdata.js
diff --git a/superset/assets/src/dashboard/util/getFilterFieldNodesTree.js b/superset-frontend/src/dashboard/util/getFilterFieldNodesTree.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getFilterFieldNodesTree.js
rename to superset-frontend/src/dashboard/util/getFilterFieldNodesTree.js
diff --git a/superset/assets/src/dashboard/util/getFilterScopeFromNodesTree.js b/superset-frontend/src/dashboard/util/getFilterScopeFromNodesTree.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getFilterScopeFromNodesTree.js
rename to superset-frontend/src/dashboard/util/getFilterScopeFromNodesTree.js
diff --git a/superset/assets/src/dashboard/util/getFilterScopeNodesTree.js b/superset-frontend/src/dashboard/util/getFilterScopeNodesTree.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getFilterScopeNodesTree.js
rename to superset-frontend/src/dashboard/util/getFilterScopeNodesTree.js
diff --git a/superset/assets/src/dashboard/util/getFilterScopeParentNodes.js b/superset-frontend/src/dashboard/util/getFilterScopeParentNodes.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getFilterScopeParentNodes.js
rename to superset-frontend/src/dashboard/util/getFilterScopeParentNodes.js
diff --git a/superset/assets/src/dashboard/util/getFilterValuesByFilterId.js b/superset-frontend/src/dashboard/util/getFilterValuesByFilterId.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getFilterValuesByFilterId.js
rename to superset-frontend/src/dashboard/util/getFilterValuesByFilterId.js
diff --git a/superset/assets/src/dashboard/util/getKeyForFilterScopeTree.js b/superset-frontend/src/dashboard/util/getKeyForFilterScopeTree.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getKeyForFilterScopeTree.js
rename to superset-frontend/src/dashboard/util/getKeyForFilterScopeTree.js
diff --git a/superset/assets/src/dashboard/util/getLayoutComponentFromChartId.js b/superset-frontend/src/dashboard/util/getLayoutComponentFromChartId.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getLayoutComponentFromChartId.js
rename to superset-frontend/src/dashboard/util/getLayoutComponentFromChartId.js
diff --git a/superset/assets/src/dashboard/util/getLeafComponentIdFromPath.js b/superset-frontend/src/dashboard/util/getLeafComponentIdFromPath.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getLeafComponentIdFromPath.js
rename to superset-frontend/src/dashboard/util/getLeafComponentIdFromPath.js
diff --git a/superset/assets/src/dashboard/util/getLocationHash.js b/superset-frontend/src/dashboard/util/getLocationHash.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getLocationHash.js
rename to superset-frontend/src/dashboard/util/getLocationHash.js
diff --git a/superset/assets/src/dashboard/util/getRevertedFilterScope.js b/superset-frontend/src/dashboard/util/getRevertedFilterScope.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getRevertedFilterScope.js
rename to superset-frontend/src/dashboard/util/getRevertedFilterScope.js
diff --git a/superset/assets/src/dashboard/util/getSelectedChartIdForFilterScopeTree.js b/superset-frontend/src/dashboard/util/getSelectedChartIdForFilterScopeTree.js
similarity index 100%
rename from superset/assets/src/dashboard/util/getSelectedChartIdForFilterScopeTree.js
rename to superset-frontend/src/dashboard/util/getSelectedChartIdForFilterScopeTree.js
diff --git a/superset/assets/src/dashboard/util/headerStyleOptions.js b/superset-frontend/src/dashboard/util/headerStyleOptions.js
similarity index 100%
rename from superset/assets/src/dashboard/util/headerStyleOptions.js
rename to superset-frontend/src/dashboard/util/headerStyleOptions.js
diff --git a/superset/assets/src/dashboard/util/injectCustomCss.js b/superset-frontend/src/dashboard/util/injectCustomCss.js
similarity index 100%
rename from superset/assets/src/dashboard/util/injectCustomCss.js
rename to superset-frontend/src/dashboard/util/injectCustomCss.js
diff --git a/superset/assets/src/dashboard/util/isDashboardLoading.js b/superset-frontend/src/dashboard/util/isDashboardLoading.js
similarity index 100%
rename from superset/assets/src/dashboard/util/isDashboardLoading.js
rename to superset-frontend/src/dashboard/util/isDashboardLoading.js
diff --git a/superset/assets/src/dashboard/util/isInDifferentFilterScopes.js b/superset-frontend/src/dashboard/util/isInDifferentFilterScopes.js
similarity index 100%
rename from superset/assets/src/dashboard/util/isInDifferentFilterScopes.js
rename to superset-frontend/src/dashboard/util/isInDifferentFilterScopes.js
diff --git a/superset/assets/src/dashboard/util/isValidChild.js b/superset-frontend/src/dashboard/util/isValidChild.js
similarity index 100%
rename from superset/assets/src/dashboard/util/isValidChild.js
rename to superset-frontend/src/dashboard/util/isValidChild.js
diff --git a/superset/assets/src/dashboard/util/logging/childChartsDidLoad.js b/superset-frontend/src/dashboard/util/logging/childChartsDidLoad.js
similarity index 100%
rename from superset/assets/src/dashboard/util/logging/childChartsDidLoad.js
rename to superset-frontend/src/dashboard/util/logging/childChartsDidLoad.js
diff --git a/superset/assets/src/dashboard/util/logging/findNonTabChildChartIds.js b/superset-frontend/src/dashboard/util/logging/findNonTabChildChartIds.js
similarity index 100%
rename from superset/assets/src/dashboard/util/logging/findNonTabChildChartIds.js
rename to superset-frontend/src/dashboard/util/logging/findNonTabChildChartIds.js
diff --git a/superset/assets/src/dashboard/util/logging/findTopLevelComponentIds.js b/superset-frontend/src/dashboard/util/logging/findTopLevelComponentIds.js
similarity index 100%
rename from superset/assets/src/dashboard/util/logging/findTopLevelComponentIds.js
rename to superset-frontend/src/dashboard/util/logging/findTopLevelComponentIds.js
diff --git a/superset/assets/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.js b/superset-frontend/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.js
similarity index 100%
rename from superset/assets/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.js
rename to superset-frontend/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.js
diff --git a/superset/assets/src/dashboard/util/newComponentFactory.js b/superset-frontend/src/dashboard/util/newComponentFactory.js
similarity index 100%
rename from superset/assets/src/dashboard/util/newComponentFactory.js
rename to superset-frontend/src/dashboard/util/newComponentFactory.js
diff --git a/superset/assets/src/dashboard/util/newEntitiesFromDrop.js b/superset-frontend/src/dashboard/util/newEntitiesFromDrop.js
similarity index 100%
rename from superset/assets/src/dashboard/util/newEntitiesFromDrop.js
rename to superset-frontend/src/dashboard/util/newEntitiesFromDrop.js
diff --git a/superset/assets/src/dashboard/util/propShapes.jsx b/superset-frontend/src/dashboard/util/propShapes.jsx
similarity index 100%
rename from superset/assets/src/dashboard/util/propShapes.jsx
rename to superset-frontend/src/dashboard/util/propShapes.jsx
diff --git a/superset/assets/src/dashboard/util/resizableConfig.js b/superset-frontend/src/dashboard/util/resizableConfig.js
similarity index 100%
rename from superset/assets/src/dashboard/util/resizableConfig.js
rename to superset-frontend/src/dashboard/util/resizableConfig.js
diff --git a/superset/assets/src/dashboard/util/serializeActiveFilterValues.js b/superset-frontend/src/dashboard/util/serializeActiveFilterValues.js
similarity index 100%
rename from superset/assets/src/dashboard/util/serializeActiveFilterValues.js
rename to superset-frontend/src/dashboard/util/serializeActiveFilterValues.js
diff --git a/superset/assets/src/dashboard/util/serializeFilterScopes.js b/superset-frontend/src/dashboard/util/serializeFilterScopes.js
similarity index 100%
rename from superset/assets/src/dashboard/util/serializeFilterScopes.js
rename to superset-frontend/src/dashboard/util/serializeFilterScopes.js
diff --git a/superset/assets/src/dashboard/util/setPeriodicRunner.js b/superset-frontend/src/dashboard/util/setPeriodicRunner.js
similarity index 100%
rename from superset/assets/src/dashboard/util/setPeriodicRunner.js
rename to superset-frontend/src/dashboard/util/setPeriodicRunner.js
diff --git a/superset/assets/src/dashboard/util/shouldWrapChildInRow.js b/superset-frontend/src/dashboard/util/shouldWrapChildInRow.js
similarity index 100%
rename from superset/assets/src/dashboard/util/shouldWrapChildInRow.js
rename to superset-frontend/src/dashboard/util/shouldWrapChildInRow.js
diff --git a/superset/assets/src/dashboard/util/updateComponentParentsList.js b/superset-frontend/src/dashboard/util/updateComponentParentsList.js
similarity index 100%
rename from superset/assets/src/dashboard/util/updateComponentParentsList.js
rename to superset-frontend/src/dashboard/util/updateComponentParentsList.js
diff --git a/superset/assets/src/datasource/ChangeDatasourceModal.jsx b/superset-frontend/src/datasource/ChangeDatasourceModal.jsx
similarity index 100%
rename from superset/assets/src/datasource/ChangeDatasourceModal.jsx
rename to superset-frontend/src/datasource/ChangeDatasourceModal.jsx
diff --git a/superset/assets/src/datasource/DatasourceEditor.jsx b/superset-frontend/src/datasource/DatasourceEditor.jsx
similarity index 100%
rename from superset/assets/src/datasource/DatasourceEditor.jsx
rename to superset-frontend/src/datasource/DatasourceEditor.jsx
diff --git a/superset/assets/src/datasource/DatasourceModal.jsx b/superset-frontend/src/datasource/DatasourceModal.jsx
similarity index 100%
rename from superset/assets/src/datasource/DatasourceModal.jsx
rename to superset-frontend/src/datasource/DatasourceModal.jsx
diff --git a/superset/assets/src/datasource/main.less b/superset-frontend/src/datasource/main.less
similarity index 100%
rename from superset/assets/src/datasource/main.less
rename to superset-frontend/src/datasource/main.less
diff --git a/superset/assets/src/explore/AdhocFilter.js b/superset-frontend/src/explore/AdhocFilter.js
similarity index 100%
rename from superset/assets/src/explore/AdhocFilter.js
rename to superset-frontend/src/explore/AdhocFilter.js
diff --git a/superset/assets/src/explore/AdhocMetric.js b/superset-frontend/src/explore/AdhocMetric.js
similarity index 100%
rename from superset/assets/src/explore/AdhocMetric.js
rename to superset-frontend/src/explore/AdhocMetric.js
diff --git a/superset/assets/src/explore/App.jsx b/superset-frontend/src/explore/App.jsx
similarity index 100%
rename from superset/assets/src/explore/App.jsx
rename to superset-frontend/src/explore/App.jsx
diff --git a/superset/assets/src/explore/actions/exploreActions.js b/superset-frontend/src/explore/actions/exploreActions.js
similarity index 100%
rename from superset/assets/src/explore/actions/exploreActions.js
rename to superset-frontend/src/explore/actions/exploreActions.js
diff --git a/superset/assets/src/explore/actions/saveModalActions.js b/superset-frontend/src/explore/actions/saveModalActions.js
similarity index 100%
rename from superset/assets/src/explore/actions/saveModalActions.js
rename to superset-frontend/src/explore/actions/saveModalActions.js
diff --git a/superset/assets/src/explore/components/AdhocFilterEditPopover.jsx b/superset-frontend/src/explore/components/AdhocFilterEditPopover.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocFilterEditPopover.jsx
rename to superset-frontend/src/explore/components/AdhocFilterEditPopover.jsx
diff --git a/superset/assets/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx b/superset-frontend/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx
rename to superset-frontend/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx
diff --git a/superset/assets/src/explore/components/AdhocFilterEditPopoverSqlTabContent.jsx b/superset-frontend/src/explore/components/AdhocFilterEditPopoverSqlTabContent.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocFilterEditPopoverSqlTabContent.jsx
rename to superset-frontend/src/explore/components/AdhocFilterEditPopoverSqlTabContent.jsx
diff --git a/superset/assets/src/explore/components/AdhocFilterOption.jsx b/superset-frontend/src/explore/components/AdhocFilterOption.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocFilterOption.jsx
rename to superset-frontend/src/explore/components/AdhocFilterOption.jsx
diff --git a/superset/assets/src/explore/components/AdhocMetricEditPopover.jsx b/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocMetricEditPopover.jsx
rename to superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
diff --git a/superset/assets/src/explore/components/AdhocMetricEditPopoverTitle.jsx b/superset-frontend/src/explore/components/AdhocMetricEditPopoverTitle.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocMetricEditPopoverTitle.jsx
rename to superset-frontend/src/explore/components/AdhocMetricEditPopoverTitle.jsx
diff --git a/superset/assets/src/explore/components/AdhocMetricOption.jsx b/superset-frontend/src/explore/components/AdhocMetricOption.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocMetricOption.jsx
rename to superset-frontend/src/explore/components/AdhocMetricOption.jsx
diff --git a/superset/assets/src/explore/components/AdhocMetricStaticOption.jsx b/superset-frontend/src/explore/components/AdhocMetricStaticOption.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AdhocMetricStaticOption.jsx
rename to superset-frontend/src/explore/components/AdhocMetricStaticOption.jsx
diff --git a/superset/assets/src/explore/components/AggregateOption.jsx b/superset-frontend/src/explore/components/AggregateOption.jsx
similarity index 100%
rename from superset/assets/src/explore/components/AggregateOption.jsx
rename to superset-frontend/src/explore/components/AggregateOption.jsx
diff --git a/superset/assets/src/explore/components/Control.jsx b/superset-frontend/src/explore/components/Control.jsx
similarity index 100%
rename from superset/assets/src/explore/components/Control.jsx
rename to superset-frontend/src/explore/components/Control.jsx
diff --git a/superset/assets/src/explore/components/Control.less b/superset-frontend/src/explore/components/Control.less
similarity index 100%
rename from superset/assets/src/explore/components/Control.less
rename to superset-frontend/src/explore/components/Control.less
diff --git a/superset/assets/src/explore/components/ControlHeader.jsx b/superset-frontend/src/explore/components/ControlHeader.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ControlHeader.jsx
rename to superset-frontend/src/explore/components/ControlHeader.jsx
diff --git a/superset/assets/src/explore/components/ControlPanelSection.jsx b/superset-frontend/src/explore/components/ControlPanelSection.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ControlPanelSection.jsx
rename to superset-frontend/src/explore/components/ControlPanelSection.jsx
diff --git a/superset/assets/src/explore/components/ControlPanelsContainer.jsx b/superset-frontend/src/explore/components/ControlPanelsContainer.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ControlPanelsContainer.jsx
rename to superset-frontend/src/explore/components/ControlPanelsContainer.jsx
diff --git a/superset/assets/src/explore/components/ControlRow.jsx b/superset-frontend/src/explore/components/ControlRow.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ControlRow.jsx
rename to superset-frontend/src/explore/components/ControlRow.jsx
diff --git a/superset/assets/src/explore/components/DisplayQueryButton.jsx b/superset-frontend/src/explore/components/DisplayQueryButton.jsx
similarity index 100%
rename from superset/assets/src/explore/components/DisplayQueryButton.jsx
rename to superset-frontend/src/explore/components/DisplayQueryButton.jsx
diff --git a/superset/assets/src/explore/components/EmbedCodeButton.jsx b/superset-frontend/src/explore/components/EmbedCodeButton.jsx
similarity index 100%
rename from superset/assets/src/explore/components/EmbedCodeButton.jsx
rename to superset-frontend/src/explore/components/EmbedCodeButton.jsx
diff --git a/superset/assets/src/explore/components/ExploreActionButtons.jsx b/superset-frontend/src/explore/components/ExploreActionButtons.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ExploreActionButtons.jsx
rename to superset-frontend/src/explore/components/ExploreActionButtons.jsx
diff --git a/superset/assets/src/explore/components/ExploreChartHeader.jsx b/superset-frontend/src/explore/components/ExploreChartHeader.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ExploreChartHeader.jsx
rename to superset-frontend/src/explore/components/ExploreChartHeader.jsx
diff --git a/superset/assets/src/explore/components/ExploreChartPanel.jsx b/superset-frontend/src/explore/components/ExploreChartPanel.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ExploreChartPanel.jsx
rename to superset-frontend/src/explore/components/ExploreChartPanel.jsx
diff --git a/superset/assets/src/explore/components/ExploreViewContainer.jsx b/superset-frontend/src/explore/components/ExploreViewContainer.jsx
similarity index 100%
rename from superset/assets/src/explore/components/ExploreViewContainer.jsx
rename to superset-frontend/src/explore/components/ExploreViewContainer.jsx
diff --git a/superset/assets/src/explore/components/FilterDefinitionOption.jsx b/superset-frontend/src/explore/components/FilterDefinitionOption.jsx
similarity index 100%
rename from superset/assets/src/explore/components/FilterDefinitionOption.jsx
rename to superset-frontend/src/explore/components/FilterDefinitionOption.jsx
diff --git a/superset/assets/src/explore/components/MetricDefinitionOption.jsx b/superset-frontend/src/explore/components/MetricDefinitionOption.jsx
similarity index 100%
rename from superset/assets/src/explore/components/MetricDefinitionOption.jsx
rename to superset-frontend/src/explore/components/MetricDefinitionOption.jsx
diff --git a/superset/assets/src/explore/components/MetricDefinitionValue.jsx b/superset-frontend/src/explore/components/MetricDefinitionValue.jsx
similarity index 100%
rename from superset/assets/src/explore/components/MetricDefinitionValue.jsx
rename to superset-frontend/src/explore/components/MetricDefinitionValue.jsx
diff --git a/superset/assets/src/explore/components/PropertiesModal.jsx b/superset-frontend/src/explore/components/PropertiesModal.jsx
similarity index 100%
rename from superset/assets/src/explore/components/PropertiesModal.jsx
rename to superset-frontend/src/explore/components/PropertiesModal.jsx
diff --git a/superset/assets/src/explore/components/QueryAndSaveBtns.jsx b/superset-frontend/src/explore/components/QueryAndSaveBtns.jsx
similarity index 100%
rename from superset/assets/src/explore/components/QueryAndSaveBtns.jsx
rename to superset-frontend/src/explore/components/QueryAndSaveBtns.jsx
diff --git a/superset/assets/src/explore/components/RowCountLabel.jsx b/superset-frontend/src/explore/components/RowCountLabel.jsx
similarity index 100%
rename from superset/assets/src/explore/components/RowCountLabel.jsx
rename to superset-frontend/src/explore/components/RowCountLabel.jsx
diff --git a/superset/assets/src/explore/components/SaveModal.jsx b/superset-frontend/src/explore/components/SaveModal.jsx
similarity index 100%
rename from superset/assets/src/explore/components/SaveModal.jsx
rename to superset-frontend/src/explore/components/SaveModal.jsx
diff --git a/superset/assets/src/explore/components/controls/AdhocFilterControl.jsx b/superset-frontend/src/explore/components/controls/AdhocFilterControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/AdhocFilterControl.jsx
rename to superset-frontend/src/explore/components/controls/AdhocFilterControl.jsx
diff --git a/superset/assets/src/explore/components/controls/AnnotationLayer.jsx b/superset-frontend/src/explore/components/controls/AnnotationLayer.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/AnnotationLayer.jsx
rename to superset-frontend/src/explore/components/controls/AnnotationLayer.jsx
diff --git a/superset/assets/src/explore/components/controls/AnnotationLayer.less b/superset-frontend/src/explore/components/controls/AnnotationLayer.less
similarity index 100%
rename from superset/assets/src/explore/components/controls/AnnotationLayer.less
rename to superset-frontend/src/explore/components/controls/AnnotationLayer.less
diff --git a/superset/assets/src/explore/components/controls/AnnotationLayerControl.jsx b/superset-frontend/src/explore/components/controls/AnnotationLayerControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/AnnotationLayerControl.jsx
rename to superset-frontend/src/explore/components/controls/AnnotationLayerControl.jsx
diff --git a/superset/assets/src/explore/components/controls/BoundsControl.jsx b/superset-frontend/src/explore/components/controls/BoundsControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/BoundsControl.jsx
rename to superset-frontend/src/explore/components/controls/BoundsControl.jsx
diff --git a/superset/assets/src/explore/components/controls/CheckboxControl.jsx b/superset-frontend/src/explore/components/controls/CheckboxControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/CheckboxControl.jsx
rename to superset-frontend/src/explore/components/controls/CheckboxControl.jsx
diff --git a/superset/assets/src/explore/components/controls/CollectionControl.jsx b/superset-frontend/src/explore/components/controls/CollectionControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/CollectionControl.jsx
rename to superset-frontend/src/explore/components/controls/CollectionControl.jsx
diff --git a/superset/assets/src/explore/components/controls/CollectionControl.less b/superset-frontend/src/explore/components/controls/CollectionControl.less
similarity index 100%
rename from superset/assets/src/explore/components/controls/CollectionControl.less
rename to superset-frontend/src/explore/components/controls/CollectionControl.less
diff --git a/superset/assets/src/explore/components/controls/ColorMapControl.jsx b/superset-frontend/src/explore/components/controls/ColorMapControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/ColorMapControl.jsx
rename to superset-frontend/src/explore/components/controls/ColorMapControl.jsx
diff --git a/superset/assets/src/explore/components/controls/ColorPickerControl.jsx b/superset-frontend/src/explore/components/controls/ColorPickerControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/ColorPickerControl.jsx
rename to superset-frontend/src/explore/components/controls/ColorPickerControl.jsx
diff --git a/superset/assets/src/explore/components/controls/ColorSchemeControl.jsx b/superset-frontend/src/explore/components/controls/ColorSchemeControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/ColorSchemeControl.jsx
rename to superset-frontend/src/explore/components/controls/ColorSchemeControl.jsx
diff --git a/superset/assets/src/explore/components/controls/DatasourceControl.jsx b/superset-frontend/src/explore/components/controls/DatasourceControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/DatasourceControl.jsx
rename to superset-frontend/src/explore/components/controls/DatasourceControl.jsx
diff --git a/superset/assets/src/explore/components/controls/DatasourceControl.less b/superset-frontend/src/explore/components/controls/DatasourceControl.less
similarity index 100%
rename from superset/assets/src/explore/components/controls/DatasourceControl.less
rename to superset-frontend/src/explore/components/controls/DatasourceControl.less
diff --git a/superset/assets/src/explore/components/controls/DateFilterControl.jsx b/superset-frontend/src/explore/components/controls/DateFilterControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/DateFilterControl.jsx
rename to superset-frontend/src/explore/components/controls/DateFilterControl.jsx
diff --git a/superset/assets/src/explore/components/controls/DateFilterControl.less b/superset-frontend/src/explore/components/controls/DateFilterControl.less
similarity index 100%
rename from superset/assets/src/explore/components/controls/DateFilterControl.less
rename to superset-frontend/src/explore/components/controls/DateFilterControl.less
diff --git a/superset/assets/src/explore/components/controls/FilterBoxItemControl.jsx b/superset-frontend/src/explore/components/controls/FilterBoxItemControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/FilterBoxItemControl.jsx
rename to superset-frontend/src/explore/components/controls/FilterBoxItemControl.jsx
diff --git a/superset/assets/src/explore/components/controls/FixedOrMetricControl.jsx b/superset-frontend/src/explore/components/controls/FixedOrMetricControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/FixedOrMetricControl.jsx
rename to superset-frontend/src/explore/components/controls/FixedOrMetricControl.jsx
diff --git a/superset/assets/src/explore/components/controls/HiddenControl.jsx b/superset-frontend/src/explore/components/controls/HiddenControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/HiddenControl.jsx
rename to superset-frontend/src/explore/components/controls/HiddenControl.jsx
diff --git a/superset/assets/src/explore/components/controls/MetricsControl.jsx b/superset-frontend/src/explore/components/controls/MetricsControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/MetricsControl.jsx
rename to superset-frontend/src/explore/components/controls/MetricsControl.jsx
diff --git a/superset/assets/src/explore/components/controls/SelectAsyncControl.jsx b/superset-frontend/src/explore/components/controls/SelectAsyncControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/SelectAsyncControl.jsx
rename to superset-frontend/src/explore/components/controls/SelectAsyncControl.jsx
diff --git a/superset/assets/src/explore/components/controls/SelectControl.jsx b/superset-frontend/src/explore/components/controls/SelectControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/SelectControl.jsx
rename to superset-frontend/src/explore/components/controls/SelectControl.jsx
diff --git a/superset/assets/src/explore/components/controls/SliderControl.jsx b/superset-frontend/src/explore/components/controls/SliderControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/SliderControl.jsx
rename to superset-frontend/src/explore/components/controls/SliderControl.jsx
diff --git a/superset/assets/src/explore/components/controls/SpatialControl.jsx b/superset-frontend/src/explore/components/controls/SpatialControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/SpatialControl.jsx
rename to superset-frontend/src/explore/components/controls/SpatialControl.jsx
diff --git a/superset/assets/src/explore/components/controls/TextAreaControl.jsx b/superset-frontend/src/explore/components/controls/TextAreaControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/TextAreaControl.jsx
rename to superset-frontend/src/explore/components/controls/TextAreaControl.jsx
diff --git a/superset/assets/src/explore/components/controls/TextControl.jsx b/superset-frontend/src/explore/components/controls/TextControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/TextControl.jsx
rename to superset-frontend/src/explore/components/controls/TextControl.jsx
diff --git a/superset/assets/src/explore/components/controls/TimeSeriesColumnControl.jsx b/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/TimeSeriesColumnControl.jsx
rename to superset-frontend/src/explore/components/controls/TimeSeriesColumnControl.jsx
diff --git a/superset/assets/src/explore/components/controls/ViewportControl.jsx b/superset-frontend/src/explore/components/controls/ViewportControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/ViewportControl.jsx
rename to superset-frontend/src/explore/components/controls/ViewportControl.jsx
diff --git a/superset/assets/src/explore/components/controls/VizTypeControl.jsx b/superset-frontend/src/explore/components/controls/VizTypeControl.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/VizTypeControl.jsx
rename to superset-frontend/src/explore/components/controls/VizTypeControl.jsx
diff --git a/superset/assets/src/explore/components/controls/VizTypeControl.less b/superset-frontend/src/explore/components/controls/VizTypeControl.less
similarity index 100%
rename from superset/assets/src/explore/components/controls/VizTypeControl.less
rename to superset-frontend/src/explore/components/controls/VizTypeControl.less
diff --git a/superset/assets/src/explore/components/controls/index.js b/superset-frontend/src/explore/components/controls/index.js
similarity index 100%
rename from superset/assets/src/explore/components/controls/index.js
rename to superset-frontend/src/explore/components/controls/index.js
diff --git a/superset/assets/src/explore/components/controls/withVerification.jsx b/superset-frontend/src/explore/components/controls/withVerification.jsx
similarity index 100%
rename from superset/assets/src/explore/components/controls/withVerification.jsx
rename to superset-frontend/src/explore/components/controls/withVerification.jsx
diff --git a/superset/assets/src/explore/constants.js b/superset-frontend/src/explore/constants.js
similarity index 100%
rename from superset/assets/src/explore/constants.js
rename to superset-frontend/src/explore/constants.js
diff --git a/superset/assets/src/explore/controlPanels/Area.js b/superset-frontend/src/explore/controlPanels/Area.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Area.js
rename to superset-frontend/src/explore/controlPanels/Area.js
diff --git a/superset/assets/src/explore/controlPanels/Bar.js b/superset-frontend/src/explore/controlPanels/Bar.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Bar.js
rename to superset-frontend/src/explore/controlPanels/Bar.js
diff --git a/superset/assets/src/explore/controlPanels/BigNumber.js b/superset-frontend/src/explore/controlPanels/BigNumber.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/BigNumber.js
rename to superset-frontend/src/explore/controlPanels/BigNumber.js
diff --git a/superset/assets/src/explore/controlPanels/BigNumberTotal.js b/superset-frontend/src/explore/controlPanels/BigNumberTotal.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/BigNumberTotal.js
rename to superset-frontend/src/explore/controlPanels/BigNumberTotal.js
diff --git a/superset/assets/src/explore/controlPanels/BoxPlot.js b/superset-frontend/src/explore/controlPanels/BoxPlot.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/BoxPlot.js
rename to superset-frontend/src/explore/controlPanels/BoxPlot.js
diff --git a/superset/assets/src/explore/controlPanels/Bubble.js b/superset-frontend/src/explore/controlPanels/Bubble.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Bubble.js
rename to superset-frontend/src/explore/controlPanels/Bubble.js
diff --git a/superset/assets/src/explore/controlPanels/Bullet.js b/superset-frontend/src/explore/controlPanels/Bullet.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Bullet.js
rename to superset-frontend/src/explore/controlPanels/Bullet.js
diff --git a/superset/assets/src/explore/controlPanels/CalHeatmap.js b/superset-frontend/src/explore/controlPanels/CalHeatmap.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/CalHeatmap.js
rename to superset-frontend/src/explore/controlPanels/CalHeatmap.js
diff --git a/superset/assets/src/explore/controlPanels/Chord.js b/superset-frontend/src/explore/controlPanels/Chord.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Chord.js
rename to superset-frontend/src/explore/controlPanels/Chord.js
diff --git a/superset/assets/src/explore/controlPanels/Compare.js b/superset-frontend/src/explore/controlPanels/Compare.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Compare.js
rename to superset-frontend/src/explore/controlPanels/Compare.js
diff --git a/superset/assets/src/explore/controlPanels/CountryMap.js b/superset-frontend/src/explore/controlPanels/CountryMap.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/CountryMap.js
rename to superset-frontend/src/explore/controlPanels/CountryMap.js
diff --git a/superset/assets/src/explore/controlPanels/DeckArc.js b/superset-frontend/src/explore/controlPanels/DeckArc.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckArc.js
rename to superset-frontend/src/explore/controlPanels/DeckArc.js
diff --git a/superset/assets/src/explore/controlPanels/DeckGeojson.js b/superset-frontend/src/explore/controlPanels/DeckGeojson.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckGeojson.js
rename to superset-frontend/src/explore/controlPanels/DeckGeojson.js
diff --git a/superset/assets/src/explore/controlPanels/DeckGrid.js b/superset-frontend/src/explore/controlPanels/DeckGrid.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckGrid.js
rename to superset-frontend/src/explore/controlPanels/DeckGrid.js
diff --git a/superset/assets/src/explore/controlPanels/DeckHex.js b/superset-frontend/src/explore/controlPanels/DeckHex.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckHex.js
rename to superset-frontend/src/explore/controlPanels/DeckHex.js
diff --git a/superset/assets/src/explore/controlPanels/DeckMulti.js b/superset-frontend/src/explore/controlPanels/DeckMulti.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckMulti.js
rename to superset-frontend/src/explore/controlPanels/DeckMulti.js
diff --git a/superset/assets/src/explore/controlPanels/DeckPath.js b/superset-frontend/src/explore/controlPanels/DeckPath.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckPath.js
rename to superset-frontend/src/explore/controlPanels/DeckPath.js
diff --git a/superset/assets/src/explore/controlPanels/DeckPolygon.js b/superset-frontend/src/explore/controlPanels/DeckPolygon.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckPolygon.js
rename to superset-frontend/src/explore/controlPanels/DeckPolygon.js
diff --git a/superset/assets/src/explore/controlPanels/DeckScatter.js b/superset-frontend/src/explore/controlPanels/DeckScatter.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckScatter.js
rename to superset-frontend/src/explore/controlPanels/DeckScatter.js
diff --git a/superset/assets/src/explore/controlPanels/DeckScreengrid.js b/superset-frontend/src/explore/controlPanels/DeckScreengrid.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DeckScreengrid.js
rename to superset-frontend/src/explore/controlPanels/DeckScreengrid.js
diff --git a/superset/assets/src/explore/controlPanels/DirectedForce.js b/superset-frontend/src/explore/controlPanels/DirectedForce.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DirectedForce.js
rename to superset-frontend/src/explore/controlPanels/DirectedForce.js
diff --git a/superset/assets/src/explore/controlPanels/DistBar.js b/superset-frontend/src/explore/controlPanels/DistBar.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DistBar.js
rename to superset-frontend/src/explore/controlPanels/DistBar.js
diff --git a/superset/assets/src/explore/controlPanels/DualLine.js b/superset-frontend/src/explore/controlPanels/DualLine.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/DualLine.js
rename to superset-frontend/src/explore/controlPanels/DualLine.js
diff --git a/superset/assets/src/explore/controlPanels/EventFlow.js b/superset-frontend/src/explore/controlPanels/EventFlow.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/EventFlow.js
rename to superset-frontend/src/explore/controlPanels/EventFlow.js
diff --git a/superset/assets/src/explore/controlPanels/FilterBox.jsx b/superset-frontend/src/explore/controlPanels/FilterBox.jsx
similarity index 100%
rename from superset/assets/src/explore/controlPanels/FilterBox.jsx
rename to superset-frontend/src/explore/controlPanels/FilterBox.jsx
diff --git a/superset/assets/src/explore/controlPanels/Heatmap.js b/superset-frontend/src/explore/controlPanels/Heatmap.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Heatmap.js
rename to superset-frontend/src/explore/controlPanels/Heatmap.js
diff --git a/superset/assets/src/explore/controlPanels/Histogram.js b/superset-frontend/src/explore/controlPanels/Histogram.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Histogram.js
rename to superset-frontend/src/explore/controlPanels/Histogram.js
diff --git a/superset/assets/src/explore/controlPanels/Horizon.js b/superset-frontend/src/explore/controlPanels/Horizon.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Horizon.js
rename to superset-frontend/src/explore/controlPanels/Horizon.js
diff --git a/superset/assets/src/explore/controlPanels/Iframe.js b/superset-frontend/src/explore/controlPanels/Iframe.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Iframe.js
rename to superset-frontend/src/explore/controlPanels/Iframe.js
diff --git a/superset/assets/src/explore/controlPanels/Line.js b/superset-frontend/src/explore/controlPanels/Line.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Line.js
rename to superset-frontend/src/explore/controlPanels/Line.js
diff --git a/superset/assets/src/explore/controlPanels/LineMulti.js b/superset-frontend/src/explore/controlPanels/LineMulti.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/LineMulti.js
rename to superset-frontend/src/explore/controlPanels/LineMulti.js
diff --git a/superset/assets/src/explore/controlPanels/Mapbox.js b/superset-frontend/src/explore/controlPanels/Mapbox.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Mapbox.js
rename to superset-frontend/src/explore/controlPanels/Mapbox.js
diff --git a/superset/assets/src/explore/controlPanels/Markup.js b/superset-frontend/src/explore/controlPanels/Markup.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Markup.js
rename to superset-frontend/src/explore/controlPanels/Markup.js
diff --git a/superset/assets/src/explore/controlPanels/PairedTtest.js b/superset-frontend/src/explore/controlPanels/PairedTtest.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/PairedTtest.js
rename to superset-frontend/src/explore/controlPanels/PairedTtest.js
diff --git a/superset/assets/src/explore/controlPanels/Para.js b/superset-frontend/src/explore/controlPanels/Para.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Para.js
rename to superset-frontend/src/explore/controlPanels/Para.js
diff --git a/superset/assets/src/explore/controlPanels/Partition.js b/superset-frontend/src/explore/controlPanels/Partition.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Partition.js
rename to superset-frontend/src/explore/controlPanels/Partition.js
diff --git a/superset/assets/src/explore/controlPanels/Pie.js b/superset-frontend/src/explore/controlPanels/Pie.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Pie.js
rename to superset-frontend/src/explore/controlPanels/Pie.js
diff --git a/superset/assets/src/explore/controlPanels/PivotTable.js b/superset-frontend/src/explore/controlPanels/PivotTable.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/PivotTable.js
rename to superset-frontend/src/explore/controlPanels/PivotTable.js
diff --git a/superset/assets/src/explore/controlPanels/Rose.js b/superset-frontend/src/explore/controlPanels/Rose.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Rose.js
rename to superset-frontend/src/explore/controlPanels/Rose.js
diff --git a/superset/assets/src/explore/controlPanels/Sankey.js b/superset-frontend/src/explore/controlPanels/Sankey.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Sankey.js
rename to superset-frontend/src/explore/controlPanels/Sankey.js
diff --git a/superset/assets/src/explore/controlPanels/Separator.js b/superset-frontend/src/explore/controlPanels/Separator.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Separator.js
rename to superset-frontend/src/explore/controlPanels/Separator.js
diff --git a/superset/assets/src/explore/controlPanels/Sunburst.js b/superset-frontend/src/explore/controlPanels/Sunburst.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Sunburst.js
rename to superset-frontend/src/explore/controlPanels/Sunburst.js
diff --git a/superset/assets/src/explore/controlPanels/Table.js b/superset-frontend/src/explore/controlPanels/Table.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Table.js
rename to superset-frontend/src/explore/controlPanels/Table.js
diff --git a/superset/assets/src/explore/controlPanels/TimePivot.js b/superset-frontend/src/explore/controlPanels/TimePivot.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/TimePivot.js
rename to superset-frontend/src/explore/controlPanels/TimePivot.js
diff --git a/superset/assets/src/explore/controlPanels/TimeTable.js b/superset-frontend/src/explore/controlPanels/TimeTable.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/TimeTable.js
rename to superset-frontend/src/explore/controlPanels/TimeTable.js
diff --git a/superset/assets/src/explore/controlPanels/Treemap.js b/superset-frontend/src/explore/controlPanels/Treemap.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/Treemap.js
rename to superset-frontend/src/explore/controlPanels/Treemap.js
diff --git a/superset/assets/src/explore/controlPanels/WordCloud.js b/superset-frontend/src/explore/controlPanels/WordCloud.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/WordCloud.js
rename to superset-frontend/src/explore/controlPanels/WordCloud.js
diff --git a/superset/assets/src/explore/controlPanels/WorldMap.js b/superset-frontend/src/explore/controlPanels/WorldMap.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/WorldMap.js
rename to superset-frontend/src/explore/controlPanels/WorldMap.js
diff --git a/superset/assets/src/explore/controlPanels/sections.jsx b/superset-frontend/src/explore/controlPanels/sections.jsx
similarity index 100%
rename from superset/assets/src/explore/controlPanels/sections.jsx
rename to superset-frontend/src/explore/controlPanels/sections.jsx
diff --git a/superset/assets/src/explore/controlPanels/timeGrainSqlaAnimationOverrides.js b/superset-frontend/src/explore/controlPanels/timeGrainSqlaAnimationOverrides.js
similarity index 100%
rename from superset/assets/src/explore/controlPanels/timeGrainSqlaAnimationOverrides.js
rename to superset-frontend/src/explore/controlPanels/timeGrainSqlaAnimationOverrides.js
diff --git a/superset/assets/src/explore/controlUtils.js b/superset-frontend/src/explore/controlUtils.js
similarity index 100%
rename from superset/assets/src/explore/controlUtils.js
rename to superset-frontend/src/explore/controlUtils.js
diff --git a/superset/assets/src/explore/controls.jsx b/superset-frontend/src/explore/controls.jsx
similarity index 99%
rename from superset/assets/src/explore/controls.jsx
rename to superset-frontend/src/explore/controls.jsx
index 06c0c5c..b477e70 100644
--- a/superset/assets/src/explore/controls.jsx
+++ b/superset-frontend/src/explore/controls.jsx
@@ -185,7 +185,7 @@ const metric = {
 
 const sandboxUrl =
   'https://github.com/apache/incubator-superset/' +
-  'blob/master/superset/assets/src/modules/sandbox.js';
+  'blob/master/superset-frontend/src/modules/sandbox.js';
 const jsFunctionInfo = (
   <div>
     {t(
diff --git a/superset/assets/src/explore/exploreUtils.js b/superset-frontend/src/explore/exploreUtils.js
similarity index 100%
rename from superset/assets/src/explore/exploreUtils.js
rename to superset-frontend/src/explore/exploreUtils.js
diff --git a/superset/assets/src/explore/index.jsx b/superset-frontend/src/explore/index.jsx
similarity index 100%
rename from superset/assets/src/explore/index.jsx
rename to superset-frontend/src/explore/index.jsx
diff --git a/superset/assets/src/explore/main.less b/superset-frontend/src/explore/main.less
similarity index 100%
rename from superset/assets/src/explore/main.less
rename to superset-frontend/src/explore/main.less
diff --git a/superset/assets/src/explore/propTypes/adhocFilterType.js b/superset-frontend/src/explore/propTypes/adhocFilterType.js
similarity index 100%
rename from superset/assets/src/explore/propTypes/adhocFilterType.js
rename to superset-frontend/src/explore/propTypes/adhocFilterType.js
diff --git a/superset/assets/src/explore/propTypes/adhocMetricType.js b/superset-frontend/src/explore/propTypes/adhocMetricType.js
similarity index 100%
rename from superset/assets/src/explore/propTypes/adhocMetricType.js
rename to superset-frontend/src/explore/propTypes/adhocMetricType.js
diff --git a/superset/assets/src/explore/propTypes/aggregateOptionType.js b/superset-frontend/src/explore/propTypes/aggregateOptionType.js
similarity index 100%
rename from superset/assets/src/explore/propTypes/aggregateOptionType.js
rename to superset-frontend/src/explore/propTypes/aggregateOptionType.js
diff --git a/superset/assets/src/explore/propTypes/columnType.js b/superset-frontend/src/explore/propTypes/columnType.js
similarity index 100%
rename from superset/assets/src/explore/propTypes/columnType.js
rename to superset-frontend/src/explore/propTypes/columnType.js
diff --git a/superset/assets/src/explore/propTypes/savedMetricType.js b/superset-frontend/src/explore/propTypes/savedMetricType.js
similarity index 100%
rename from superset/assets/src/explore/propTypes/savedMetricType.js
rename to superset-frontend/src/explore/propTypes/savedMetricType.js
diff --git a/superset/assets/src/explore/reducers/exploreReducer.js b/superset-frontend/src/explore/reducers/exploreReducer.js
similarity index 100%
rename from superset/assets/src/explore/reducers/exploreReducer.js
rename to superset-frontend/src/explore/reducers/exploreReducer.js
diff --git a/superset/assets/src/explore/reducers/getInitialState.js b/superset-frontend/src/explore/reducers/getInitialState.js
similarity index 100%
rename from superset/assets/src/explore/reducers/getInitialState.js
rename to superset-frontend/src/explore/reducers/getInitialState.js
diff --git a/superset/assets/src/explore/reducers/index.js b/superset-frontend/src/explore/reducers/index.js
similarity index 100%
rename from superset/assets/src/explore/reducers/index.js
rename to superset-frontend/src/explore/reducers/index.js
diff --git a/superset/assets/src/explore/reducers/saveModalReducer.js b/superset-frontend/src/explore/reducers/saveModalReducer.js
similarity index 100%
rename from superset/assets/src/explore/reducers/saveModalReducer.js
rename to superset-frontend/src/explore/reducers/saveModalReducer.js
diff --git a/superset/assets/src/explore/store.js b/superset-frontend/src/explore/store.js
similarity index 100%
rename from superset/assets/src/explore/store.js
rename to superset-frontend/src/explore/store.js
diff --git a/superset/assets/src/explore/validators.js b/superset-frontend/src/explore/validators.js
similarity index 100%
rename from superset/assets/src/explore/validators.js
rename to superset-frontend/src/explore/validators.js
diff --git a/superset/assets/src/featureFlags.ts b/superset-frontend/src/featureFlags.ts
similarity index 100%
rename from superset/assets/src/featureFlags.ts
rename to superset-frontend/src/featureFlags.ts
diff --git a/superset/assets/src/logger/LogUtils.js b/superset-frontend/src/logger/LogUtils.js
similarity index 100%
rename from superset/assets/src/logger/LogUtils.js
rename to superset-frontend/src/logger/LogUtils.js
diff --git a/superset/assets/src/logger/actions/index.js b/superset-frontend/src/logger/actions/index.js
similarity index 100%
rename from superset/assets/src/logger/actions/index.js
rename to superset-frontend/src/logger/actions/index.js
diff --git a/superset/assets/src/messageToasts/actions/index.js b/superset-frontend/src/messageToasts/actions/index.js
similarity index 100%
rename from superset/assets/src/messageToasts/actions/index.js
rename to superset-frontend/src/messageToasts/actions/index.js
diff --git a/superset/assets/src/messageToasts/components/Toast.jsx b/superset-frontend/src/messageToasts/components/Toast.jsx
similarity index 100%
rename from superset/assets/src/messageToasts/components/Toast.jsx
rename to superset-frontend/src/messageToasts/components/Toast.jsx
diff --git a/superset/assets/src/messageToasts/components/ToastPresenter.jsx b/superset-frontend/src/messageToasts/components/ToastPresenter.jsx
similarity index 100%
rename from superset/assets/src/messageToasts/components/ToastPresenter.jsx
rename to superset-frontend/src/messageToasts/components/ToastPresenter.jsx
diff --git a/superset/assets/src/messageToasts/constants.js b/superset-frontend/src/messageToasts/constants.js
similarity index 100%
rename from superset/assets/src/messageToasts/constants.js
rename to superset-frontend/src/messageToasts/constants.js
diff --git a/superset/assets/src/messageToasts/containers/ToastPresenter.jsx b/superset-frontend/src/messageToasts/containers/ToastPresenter.jsx
similarity index 100%
rename from superset/assets/src/messageToasts/containers/ToastPresenter.jsx
rename to superset-frontend/src/messageToasts/containers/ToastPresenter.jsx
diff --git a/superset/assets/src/messageToasts/enhancers/withToasts.jsx b/superset-frontend/src/messageToasts/enhancers/withToasts.jsx
similarity index 100%
rename from superset/assets/src/messageToasts/enhancers/withToasts.jsx
rename to superset-frontend/src/messageToasts/enhancers/withToasts.jsx
diff --git a/superset/assets/src/messageToasts/propShapes.js b/superset-frontend/src/messageToasts/propShapes.js
similarity index 100%
rename from superset/assets/src/messageToasts/propShapes.js
rename to superset-frontend/src/messageToasts/propShapes.js
diff --git a/superset/assets/src/messageToasts/reducers/index.js b/superset-frontend/src/messageToasts/reducers/index.js
similarity index 100%
rename from superset/assets/src/messageToasts/reducers/index.js
rename to superset-frontend/src/messageToasts/reducers/index.js
diff --git a/superset/assets/src/messageToasts/stylesheets/toast.less b/superset-frontend/src/messageToasts/stylesheets/toast.less
similarity index 100%
rename from superset/assets/src/messageToasts/stylesheets/toast.less
rename to superset-frontend/src/messageToasts/stylesheets/toast.less
diff --git a/superset/assets/src/messageToasts/utils/getToastsFromPyFlashMessages.js b/superset-frontend/src/messageToasts/utils/getToastsFromPyFlashMessages.js
similarity index 100%
rename from superset/assets/src/messageToasts/utils/getToastsFromPyFlashMessages.js
rename to superset-frontend/src/messageToasts/utils/getToastsFromPyFlashMessages.js
diff --git a/superset/assets/src/middleware/loggerMiddleware.js b/superset-frontend/src/middleware/loggerMiddleware.js
similarity index 100%
rename from superset/assets/src/middleware/loggerMiddleware.js
rename to superset-frontend/src/middleware/loggerMiddleware.js
diff --git a/superset/assets/src/modules/AnnotationTypes.js b/superset-frontend/src/modules/AnnotationTypes.js
similarity index 100%
rename from superset/assets/src/modules/AnnotationTypes.js
rename to superset-frontend/src/modules/AnnotationTypes.js
diff --git a/superset/assets/src/modules/dates.js b/superset-frontend/src/modules/dates.js
similarity index 100%
rename from superset/assets/src/modules/dates.js
rename to superset-frontend/src/modules/dates.js
diff --git a/superset/assets/src/modules/utils.js b/superset-frontend/src/modules/utils.js
similarity index 100%
rename from superset/assets/src/modules/utils.js
rename to superset-frontend/src/modules/utils.js
diff --git a/superset/assets/src/preamble.js b/superset-frontend/src/preamble.js
similarity index 100%
rename from superset/assets/src/preamble.js
rename to superset-frontend/src/preamble.js
diff --git a/superset/assets/src/profile/App.jsx b/superset-frontend/src/profile/App.jsx
similarity index 100%
rename from superset/assets/src/profile/App.jsx
rename to superset-frontend/src/profile/App.jsx
diff --git a/superset/assets/src/profile/components/App.jsx b/superset-frontend/src/profile/components/App.jsx
similarity index 100%
rename from superset/assets/src/profile/components/App.jsx
rename to superset-frontend/src/profile/components/App.jsx
diff --git a/superset/assets/src/profile/components/CreatedContent.jsx b/superset-frontend/src/profile/components/CreatedContent.jsx
similarity index 100%
rename from superset/assets/src/profile/components/CreatedContent.jsx
rename to superset-frontend/src/profile/components/CreatedContent.jsx
diff --git a/superset/assets/src/profile/components/Favorites.jsx b/superset-frontend/src/profile/components/Favorites.jsx
similarity index 100%
rename from superset/assets/src/profile/components/Favorites.jsx
rename to superset-frontend/src/profile/components/Favorites.jsx
diff --git a/superset/assets/src/profile/components/RecentActivity.jsx b/superset-frontend/src/profile/components/RecentActivity.jsx
similarity index 100%
rename from superset/assets/src/profile/components/RecentActivity.jsx
rename to superset-frontend/src/profile/components/RecentActivity.jsx
diff --git a/superset/assets/src/profile/components/Security.jsx b/superset-frontend/src/profile/components/Security.jsx
similarity index 100%
rename from superset/assets/src/profile/components/Security.jsx
rename to superset-frontend/src/profile/components/Security.jsx
diff --git a/superset/assets/src/profile/components/UserInfo.jsx b/superset-frontend/src/profile/components/UserInfo.jsx
similarity index 100%
rename from superset/assets/src/profile/components/UserInfo.jsx
rename to superset-frontend/src/profile/components/UserInfo.jsx
diff --git a/superset/assets/src/dashboard/index.jsx b/superset-frontend/src/profile/index.jsx
similarity index 100%
rename from superset/assets/src/dashboard/index.jsx
rename to superset-frontend/src/profile/index.jsx
diff --git a/superset/assets/src/profile/main.less b/superset-frontend/src/profile/main.less
similarity index 100%
rename from superset/assets/src/profile/main.less
rename to superset-frontend/src/profile/main.less
diff --git a/superset/assets/src/reduxUtils.js b/superset-frontend/src/reduxUtils.js
similarity index 100%
rename from superset/assets/src/reduxUtils.js
rename to superset-frontend/src/reduxUtils.js
diff --git a/superset/assets/src/setup/setupApp.js b/superset-frontend/src/setup/setupApp.js
similarity index 100%
rename from superset/assets/src/setup/setupApp.js
rename to superset-frontend/src/setup/setupApp.js
diff --git a/superset/assets/src/setup/setupClient.js b/superset-frontend/src/setup/setupClient.js
similarity index 100%
rename from superset/assets/src/setup/setupClient.js
rename to superset-frontend/src/setup/setupClient.js
diff --git a/superset/assets/src/setup/setupColors.js b/superset-frontend/src/setup/setupColors.js
similarity index 100%
rename from superset/assets/src/setup/setupColors.js
rename to superset-frontend/src/setup/setupColors.js
diff --git a/superset/assets/src/setup/setupFormatters.js b/superset-frontend/src/setup/setupFormatters.js
similarity index 100%
rename from superset/assets/src/setup/setupFormatters.js
rename to superset-frontend/src/setup/setupFormatters.js
diff --git a/superset/assets/src/setup/setupPlugins.ts b/superset-frontend/src/setup/setupPlugins.ts
similarity index 100%
rename from superset/assets/src/setup/setupPlugins.ts
rename to superset-frontend/src/setup/setupPlugins.ts
diff --git a/superset/assets/src/setup/setupPluginsExtra.js b/superset-frontend/src/setup/setupPluginsExtra.js
similarity index 100%
rename from superset/assets/src/setup/setupPluginsExtra.js
rename to superset-frontend/src/setup/setupPluginsExtra.js
diff --git a/superset/assets/src/showSavedQuery/index.jsx b/superset-frontend/src/showSavedQuery/index.jsx
similarity index 100%
rename from superset/assets/src/showSavedQuery/index.jsx
rename to superset-frontend/src/showSavedQuery/index.jsx
diff --git a/superset/assets/src/showSavedQuery/index.less b/superset-frontend/src/showSavedQuery/index.less
similarity index 100%
rename from superset/assets/src/showSavedQuery/index.less
rename to superset-frontend/src/showSavedQuery/index.less
diff --git a/superset/assets/src/showSavedQuery/utils.js b/superset-frontend/src/showSavedQuery/utils.js
similarity index 100%
rename from superset/assets/src/showSavedQuery/utils.js
rename to superset-frontend/src/showSavedQuery/utils.js
diff --git a/superset/assets/src/theme.js b/superset-frontend/src/theme.js
similarity index 100%
rename from superset/assets/src/theme.js
rename to superset-frontend/src/theme.js
diff --git a/superset/assets/src/types/react-table-config.d.ts b/superset-frontend/src/types/react-table-config.d.ts
similarity index 100%
rename from superset/assets/src/types/react-table-config.d.ts
rename to superset-frontend/src/types/react-table-config.d.ts
diff --git a/superset/assets/src/utils/DebouncedMessageQueue.js b/superset-frontend/src/utils/DebouncedMessageQueue.js
similarity index 100%
rename from superset/assets/src/utils/DebouncedMessageQueue.js
rename to superset-frontend/src/utils/DebouncedMessageQueue.js
diff --git a/superset/assets/src/utils/common.js b/superset-frontend/src/utils/common.js
similarity index 100%
rename from superset/assets/src/utils/common.js
rename to superset-frontend/src/utils/common.js
diff --git a/superset/assets/src/utils/errorMessages.js b/superset-frontend/src/utils/errorMessages.js
similarity index 100%
rename from superset/assets/src/utils/errorMessages.js
rename to superset-frontend/src/utils/errorMessages.js
diff --git a/superset/assets/src/utils/getClientErrorObject.js b/superset-frontend/src/utils/getClientErrorObject.js
similarity index 100%
rename from superset/assets/src/utils/getClientErrorObject.js
rename to superset-frontend/src/utils/getClientErrorObject.js
diff --git a/superset/assets/src/utils/hostNamesConfig.js b/superset-frontend/src/utils/hostNamesConfig.js
similarity index 100%
rename from superset/assets/src/utils/hostNamesConfig.js
rename to superset-frontend/src/utils/hostNamesConfig.js
diff --git a/superset/assets/src/utils/reducerUtils.js b/superset-frontend/src/utils/reducerUtils.js
similarity index 100%
rename from superset/assets/src/utils/reducerUtils.js
rename to superset-frontend/src/utils/reducerUtils.js
diff --git a/superset/assets/src/utils/safeStringify.ts b/superset-frontend/src/utils/safeStringify.ts
similarity index 100%
rename from superset/assets/src/utils/safeStringify.ts
rename to superset-frontend/src/utils/safeStringify.ts
diff --git a/superset/assets/src/views/chartList/ChartList.tsx b/superset-frontend/src/views/chartList/ChartList.tsx
similarity index 100%
rename from superset/assets/src/views/chartList/ChartList.tsx
rename to superset-frontend/src/views/chartList/ChartList.tsx
diff --git a/superset/assets/src/views/dashboardList/DashboardList.tsx b/superset-frontend/src/views/dashboardList/DashboardList.tsx
similarity index 100%
rename from superset/assets/src/views/dashboardList/DashboardList.tsx
rename to superset-frontend/src/views/dashboardList/DashboardList.tsx
diff --git a/superset/assets/src/visualizations/FilterBox/FilterBox.jsx b/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx
similarity index 100%
rename from superset/assets/src/visualizations/FilterBox/FilterBox.jsx
rename to superset-frontend/src/visualizations/FilterBox/FilterBox.jsx
diff --git a/superset/assets/src/visualizations/FilterBox/FilterBox.less b/superset-frontend/src/visualizations/FilterBox/FilterBox.less
similarity index 100%
rename from superset/assets/src/visualizations/FilterBox/FilterBox.less
rename to superset-frontend/src/visualizations/FilterBox/FilterBox.less
diff --git a/superset/assets/src/visualizations/FilterBox/FilterBoxChartPlugin.js b/superset-frontend/src/visualizations/FilterBox/FilterBoxChartPlugin.js
similarity index 100%
rename from superset/assets/src/visualizations/FilterBox/FilterBoxChartPlugin.js
rename to superset-frontend/src/visualizations/FilterBox/FilterBoxChartPlugin.js
diff --git a/superset/assets/src/visualizations/FilterBox/images/thumbnail.png b/superset-frontend/src/visualizations/FilterBox/images/thumbnail.png
similarity index 100%
rename from superset/assets/src/visualizations/FilterBox/images/thumbnail.png
rename to superset-frontend/src/visualizations/FilterBox/images/thumbnail.png
diff --git a/superset/assets/src/visualizations/FilterBox/images/thumbnailLarge.png b/superset-frontend/src/visualizations/FilterBox/images/thumbnailLarge.png
similarity index 100%
rename from superset/assets/src/visualizations/FilterBox/images/thumbnailLarge.png
rename to superset-frontend/src/visualizations/FilterBox/images/thumbnailLarge.png
diff --git a/superset/assets/src/visualizations/FilterBox/transformProps.js b/superset-frontend/src/visualizations/FilterBox/transformProps.js
similarity index 100%
rename from superset/assets/src/visualizations/FilterBox/transformProps.js
rename to superset-frontend/src/visualizations/FilterBox/transformProps.js
diff --git a/superset/assets/src/visualizations/TimeTable/FormattedNumber.jsx b/superset-frontend/src/visualizations/TimeTable/FormattedNumber.jsx
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/FormattedNumber.jsx
rename to superset-frontend/src/visualizations/TimeTable/FormattedNumber.jsx
diff --git a/superset/assets/src/visualizations/TimeTable/SparklineCell.jsx b/superset-frontend/src/visualizations/TimeTable/SparklineCell.jsx
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/SparklineCell.jsx
rename to superset-frontend/src/visualizations/TimeTable/SparklineCell.jsx
diff --git a/superset/assets/src/visualizations/TimeTable/TimeTable.jsx b/superset-frontend/src/visualizations/TimeTable/TimeTable.jsx
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/TimeTable.jsx
rename to superset-frontend/src/visualizations/TimeTable/TimeTable.jsx
diff --git a/superset/assets/src/visualizations/TimeTable/TimeTable.less b/superset-frontend/src/visualizations/TimeTable/TimeTable.less
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/TimeTable.less
rename to superset-frontend/src/visualizations/TimeTable/TimeTable.less
diff --git a/superset/assets/src/visualizations/TimeTable/TimeTableChartPlugin.js b/superset-frontend/src/visualizations/TimeTable/TimeTableChartPlugin.js
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/TimeTableChartPlugin.js
rename to superset-frontend/src/visualizations/TimeTable/TimeTableChartPlugin.js
diff --git a/superset/assets/src/visualizations/TimeTable/images/thumbnail.png b/superset-frontend/src/visualizations/TimeTable/images/thumbnail.png
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/images/thumbnail.png
rename to superset-frontend/src/visualizations/TimeTable/images/thumbnail.png
diff --git a/superset/assets/src/visualizations/TimeTable/images/thumbnailLarge.png b/superset-frontend/src/visualizations/TimeTable/images/thumbnailLarge.png
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/images/thumbnailLarge.png
rename to superset-frontend/src/visualizations/TimeTable/images/thumbnailLarge.png
diff --git a/superset/assets/src/visualizations/TimeTable/transformProps.js b/superset-frontend/src/visualizations/TimeTable/transformProps.js
similarity index 100%
rename from superset/assets/src/visualizations/TimeTable/transformProps.js
rename to superset-frontend/src/visualizations/TimeTable/transformProps.js
diff --git a/superset/assets/src/visualizations/constants.js b/superset-frontend/src/visualizations/constants.js
similarity index 100%
rename from superset/assets/src/visualizations/constants.js
rename to superset-frontend/src/visualizations/constants.js
diff --git a/superset/assets/src/visualizations/presets/MainPreset.js b/superset-frontend/src/visualizations/presets/MainPreset.js
similarity index 100%
rename from superset/assets/src/visualizations/presets/MainPreset.js
rename to superset-frontend/src/visualizations/presets/MainPreset.js
diff --git a/superset/assets/src/welcome/App.jsx b/superset-frontend/src/welcome/App.jsx
similarity index 100%
rename from superset/assets/src/welcome/App.jsx
rename to superset-frontend/src/welcome/App.jsx
diff --git a/superset/assets/src/welcome/DashboardTable.jsx b/superset-frontend/src/welcome/DashboardTable.jsx
similarity index 100%
rename from superset/assets/src/welcome/DashboardTable.jsx
rename to superset-frontend/src/welcome/DashboardTable.jsx
diff --git a/superset/assets/src/welcome/Welcome.jsx b/superset-frontend/src/welcome/Welcome.jsx
similarity index 100%
rename from superset/assets/src/welcome/Welcome.jsx
rename to superset-frontend/src/welcome/Welcome.jsx
diff --git a/superset/assets/src/SqlLab/index.jsx b/superset-frontend/src/welcome/index.jsx
similarity index 100%
rename from superset/assets/src/SqlLab/index.jsx
rename to superset-frontend/src/welcome/index.jsx
diff --git a/superset/assets/stylesheets/fonts/Roboto-Regular.woff b/superset-frontend/stylesheets/fonts/Roboto-Regular.woff
similarity index 100%
rename from superset/assets/stylesheets/fonts/Roboto-Regular.woff
rename to superset-frontend/stylesheets/fonts/Roboto-Regular.woff
diff --git a/superset/assets/stylesheets/fonts/Roboto-Regular.woff2 b/superset-frontend/stylesheets/fonts/Roboto-Regular.woff2
similarity index 100%
rename from superset/assets/stylesheets/fonts/Roboto-Regular.woff2
rename to superset-frontend/stylesheets/fonts/Roboto-Regular.woff2
diff --git a/superset/assets/stylesheets/less/cosmo/bootswatch.less b/superset-frontend/stylesheets/less/cosmo/bootswatch.less
similarity index 100%
rename from superset/assets/stylesheets/less/cosmo/bootswatch.less
rename to superset-frontend/stylesheets/less/cosmo/bootswatch.less
diff --git a/superset/assets/stylesheets/less/cosmo/cosmoTheme.js b/superset-frontend/stylesheets/less/cosmo/cosmoTheme.js
similarity index 100%
rename from superset/assets/stylesheets/less/cosmo/cosmoTheme.js
rename to superset-frontend/stylesheets/less/cosmo/cosmoTheme.js
diff --git a/superset/assets/stylesheets/less/cosmo/variables.less b/superset-frontend/stylesheets/less/cosmo/variables.less
similarity index 100%
rename from superset/assets/stylesheets/less/cosmo/variables.less
rename to superset-frontend/stylesheets/less/cosmo/variables.less
diff --git a/superset/assets/stylesheets/less/index.less b/superset-frontend/stylesheets/less/index.less
similarity index 100%
rename from superset/assets/stylesheets/less/index.less
rename to superset-frontend/stylesheets/less/index.less
diff --git a/superset/assets/stylesheets/less/variables.less b/superset-frontend/stylesheets/less/variables.less
similarity index 100%
rename from superset/assets/stylesheets/less/variables.less
rename to superset-frontend/stylesheets/less/variables.less
diff --git a/superset/assets/stylesheets/react-select/select.less b/superset-frontend/stylesheets/react-select/select.less
similarity index 100%
rename from superset/assets/stylesheets/react-select/select.less
rename to superset-frontend/stylesheets/react-select/select.less
diff --git a/superset/assets/stylesheets/reactable-pagination.less b/superset-frontend/stylesheets/reactable-pagination.less
similarity index 100%
rename from superset/assets/stylesheets/reactable-pagination.less
rename to superset-frontend/stylesheets/reactable-pagination.less
diff --git a/superset/assets/stylesheets/superset.less b/superset-frontend/stylesheets/superset.less
similarity index 100%
rename from superset/assets/stylesheets/superset.less
rename to superset-frontend/stylesheets/superset.less
diff --git a/superset/assets/tsconfig.json b/superset-frontend/tsconfig.json
similarity index 100%
rename from superset/assets/tsconfig.json
rename to superset-frontend/tsconfig.json
diff --git a/superset/assets/tslint.json b/superset-frontend/tslint.json
similarity index 100%
rename from superset/assets/tslint.json
rename to superset-frontend/tslint.json
diff --git a/superset/assets/webpack.config.js b/superset-frontend/webpack.config.js
similarity index 93%
rename from superset/assets/webpack.config.js
rename to superset-frontend/webpack.config.js
index 8339a04..b45a958 100644
--- a/superset/assets/webpack.config.js
+++ b/superset-frontend/webpack.config.js
@@ -21,7 +21,8 @@ const path = require('path');
 const webpack = require('webpack');
 const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
   .BundleAnalyzerPlugin;
-const CleanWebpackPlugin = require('clean-webpack-plugin');
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
+const CopyPlugin = require('copy-webpack-plugin');
 const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
 const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
@@ -35,7 +36,7 @@ const parsedArgs = require('minimist')(process.argv.slice(2));
 // input dir
 const APP_DIR = path.resolve(__dirname, './');
 // output dir
-const BUILD_DIR = path.resolve(__dirname, './dist');
+const BUILD_DIR = path.resolve(__dirname, '../superset/static/assets');
 
 const {
   mode = 'development',
@@ -60,7 +61,11 @@ const plugins = [
   }),
 
   // create fresh dist/ upon build
-  new CleanWebpackPlugin(['dist']),
+  new CleanWebpackPlugin({
+    dry: false,
+    // required because the build directory is outside the frontend directory:
+    dangerouslyAllowCleanPatternsOutsideProject: true,
+  }),
 
   // expose mode variable to other modules
   new webpack.DefinePlugin({
@@ -71,6 +76,12 @@ const plugins = [
   new ForkTsCheckerWebpackPlugin({
     checkSyntacticErrors: true,
   }),
+
+  new CopyPlugin([
+    'package.json',
+    { from: 'images', to: 'images' },
+    { from: 'stylesheets', to: 'stylesheets' },
+  ]),
 ];
 
 if (isDevMode) {
@@ -89,7 +100,7 @@ if (isDevMode) {
 
 const output = {
   path: BUILD_DIR,
-  publicPath: '/static/assets/dist/', // necessary for lazy-loaded chunks
+  publicPath: '/static/assets/', // necessary for lazy-loaded chunks
 };
 
 if (isDevMode) {
@@ -280,7 +291,7 @@ const config = {
       '/': `http://localhost:${supersetPort}`,
       target: `http://localhost:${supersetPort}`,
     },
-    contentBase: path.join(process.cwd(), '../static/assets/dist'),
+    contentBase: path.join(process.cwd(), '../static/assets'),
   },
 };
 
diff --git a/superset/assets/docs b/superset/assets/docs
deleted file mode 120000
index 9321704..0000000
--- a/superset/assets/docs
+++ /dev/null
@@ -1 +0,0 @@
-../../docs/_build/html/
\ No newline at end of file
diff --git a/superset/extensions.py b/superset/extensions.py
index 3e3d4e8..5d7eed0 100644
--- a/superset/extensions.py
+++ b/superset/extensions.py
@@ -73,7 +73,7 @@ class UIManifestProcessor:
     def __init__(self, app_dir: str) -> None:
         self.app = None
         self.manifest: dict = {}
-        self.manifest_file = f"{app_dir}/static/assets/dist/manifest.json"
+        self.manifest_file = f"{app_dir}/static/assets/manifest.json"
 
     def init_app(self, app):
         self.app = app
diff --git a/superset/static/assets b/superset/static/assets
deleted file mode 120000
index ec2e4be..0000000
--- a/superset/static/assets
+++ /dev/null
@@ -1 +0,0 @@
-../assets
\ No newline at end of file
diff --git a/superset/translations/babel.cfg b/superset/translations/babel.cfg
index b580aac..0ce973e 100644
--- a/superset/translations/babel.cfg
+++ b/superset/translations/babel.cfg
@@ -14,9 +14,9 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-[ignore: superset/assets/node_modules/**]
+[ignore: superset-frontend/node_modules/**]
 [python: superset/**.py]
 [jinja2: superset/**/templates/**.html]
-[javascript: superset/assets/src/**.js]
-[javascript: superset/assets/src/**.jsx]
+[javascript: superset-frontend/src/**.js]
+[javascript: superset-frontend/src/**.jsx]
 encoding = utf-8
diff --git a/tox.ini b/tox.ini
index ad46503..0a7dcff 100644
--- a/tox.ini
+++ b/tox.ini
@@ -43,7 +43,7 @@ deps =
 commands =
     npm install -g npm@'>=6.5.0'
     pip install -e {toxinidir}/
-    {toxinidir}/superset/assets/cypress_build.sh dashboard
+    {toxinidir}/superset-frontend/cypress_build.sh dashboard
 deps =
     -rrequirements.txt
     -rrequirements-dev.txt
@@ -56,7 +56,7 @@ setenv =
 commands =
     npm install -g npm@'>=6.5.0'
     pip install -e {toxinidir}/
-    {toxinidir}/superset/assets/cypress_build.sh explore
+    {toxinidir}/superset-frontend/cypress_build.sh explore
 deps =
     -rrequirements.txt
     -rrequirements-dev.txt
@@ -69,7 +69,7 @@ setenv =
 commands =
     npm install -g npm@'>=6.5.0'
     pip install -e {toxinidir}/
-    {toxinidir}/superset/assets/cypress_build.sh sqllab
+    {toxinidir}/superset-frontend/cypress_build.sh sqllab
 deps =
     -rrequirements.txt
     -rrequirements-dev.txt
@@ -82,7 +82,7 @@ setenv =
 commands =
     npm install -g npm@'>=6.5.0'
     pip install -e {toxinidir}/
-    {toxinidir}/superset/assets/cypress_build.sh sqllab
+    {toxinidir}/superset-frontend/cypress_build.sh sqllab
 deps =
     -rrequirements.txt
     -rrequirements-dev.txt
@@ -92,7 +92,7 @@ setenv =
     SUPERSET_HOME = {envtmpdir}
 
 [testenv:eslint]
-changedir = {toxinidir}/superset/assets
+changedir = {toxinidir}/superset-frontend
 commands =
     npm run lint
 deps =
@@ -112,7 +112,7 @@ deps =
 [testenv:javascript]
 commands =
     npm install -g npm@'>=6.5.0'
-    {toxinidir}/superset/assets/js_build.sh
+    {toxinidir}/superset-frontend/js_build.sh
 deps =
 
 [testenv:license-check]
@@ -150,6 +150,7 @@ deps =
 
 [testenv:docs]
 commands =
+    cp -r superset-frontend/images/ docs/_static/images/
     sphinx-build -b html docs _build/html -W
 deps =
     -rrequirements.txt