Skip to content

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

Closed

Description

@cleslie

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):

  • browser type and version: firefox 106.0.5 but this is also the behaviour in the api
  • superset version: 2.0.1rc2
  • python version: 3.9.7
  • node.js version: 16.14.2
  • any feature flags active:

Checklist

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

  • I have checked the superset logs for python stacktraces and included it here as text if there are any.
  • I have reproduced the issue with at least the latest released version of superset.
  • I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context

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

Activity

  1. ey3ball commented on Nov 16, 2022

    @ey3ball

    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)

  2. musicmuthu commented on Dec 12, 2022

    @musicmuthu

    any solution for this issue.

  3. ashayargal commented on Oct 17, 2023

    @ashayargal

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

  4. rusackas commented on Feb 9, 2024

    @rusackas
    Member

    #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

  5. rusackas commented on Jun 3, 2024

    @rusackas
    Member

    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 :)

  6. lindenh commented on Oct 23, 2024

    @lindenh
    Contributor

    Yeah this is still an issue. The workaround that we've been doing on our end is to export as dashboards, change the type in the metadata file from Dashboard to assets, and then just use the assets API to import, though that obviously isn't ideal. I had a PR over in #25102 but it's a year old and I'm not certain that fix still works. I'll see if I get some time this or next week to fix it up.

  7. lindenh commented on Jan 7, 2025

    @lindenh
    Contributor

    That PR is ready for review again.

  8. zachoooo commented on Jan 17, 2025

    @zachoooo

    Would really like to have this working. Definitely struggling to figure out how to update a dashboard including all other assets

  9. lindenh commented on Jan 27, 2025

    @lindenh
    Contributor

    Would really like to have this working. Definitely struggling to figure out how to update a dashboard including all other assets

    You could pluck the commits from that PR above if you've got a fork, that should work. Not sure if it'll ever actually get looked at to be merged in. Otherwise the assets api hasn't had this issue at all in my experience if you're updating them programmatically.

  10. rusackas commented on May 14, 2025

    @rusackas
    Member

    Don't give up on that PR! We're trying to get better about circling back to things. I set it to Draft mode, and when it's rebased and marked as "ready for review" it'll get noticed in our (now daily) PR triage syncs.

  11. added a commit that references this issue on Dec 11, 2025
    a405e32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    #bugBug report

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions