apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
62.38k stars 13.71k forks source link

Import dashboard/assets with overwrite flag does not replace dashboards #22127

Open cleslie opened 1 year ago

cleslie commented 1 year ago

When importing a dashboard via /api/v1/dashboard/import/ with the ovewrite flag set to true, the charts within the dashboard are merged with existing charts. I would expect if passing the overwrite flag that whatever you upload would replace the existing dashboard. This is useful for a version control where you want the .yml in the repository to exactly reflect what is in the superset database. This is also the same for the /api/v1/assets/import/ API although this doesn't take an overwrite parameter.

How to reproduce the bug

  1. Export dashboard with chartA and chartB
  2. Unzip exported file
  3. Edit yml to remove /charts/chartB.yml and remove references to it in /dashboards/dashboard.yml
  4. Zip up files and upload with overwrite flag
  5. Dashboard is updated but still contains both charts

Expected results

Expect that dashboards should be replaced when imported and the overwrite flag is passed.

Actual results

Imported dashboards seem to be merged with what is already in the database.

Screenshots

N/A

Environment

(please complete the following information):

Checklist

Make sure to follow these steps before submitting your issue - thank you!

Additional context

Slack discussion: https://apache-superset.slack.com/archives/C015WAZL0KH/p1667918679617939

ey3ball commented 1 year ago

I'm running into this as well (superset 2.0.0) by using the import / export feature from the UI.

The example given by @cleslie is about removing a chart, but the same things happens for updates, as well as datasets :

  1. Export Dashboard through the UI with chartA, datasetA
  2. Modify dashboard, chartA, datasetA
  3. Import back dashboard file obtained in step 1, OVERWRITE is specified in the UI
  4. Dashboard configuration is rolled back, chartA and datasetA are left in their state after (2)

Manually extracting datasets / charts from the archive, and importing them through the dedicated dataset / chart import tools applies updates as expected

I would add it may be interesting to give the user a chance to select what actually gets updated. For my specific use case I would like charts / datasets to be updated as dependencies of the dashboard, but I need databases to remain untouched (dashboards are moved between staging / production environements which use different source databases)

musicmuthu commented 1 year ago

any solution for this issue.

ashayargal commented 1 year ago

Still have this issue Will the above PR be reviewed anytime soon?

rusackas commented 8 months ago

https://github.com/apache/superset/pull/23489 aims to fix this, but needs a rebase, a PR description, and some reviews. If anyone wants to review that code, test the solution, or open a rebased PR based on it, please go for it! Thanks in advance :D

CC @betodealmeida for awareness of import/export issues, as usual :D

rusackas commented 4 months ago

Anyone still facing this? Tempted to close it as stale, but it's probably still an issue. Anyone who wants to open a PR here (including @Naveench131) would be appreciated :)