<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Deploy dashboard with asset bundle in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/150198#M53302</link>
    <description>&lt;P&gt;Hi &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/212394"&gt;@Seunghyun&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;This is a common workflow question when getting started with AI/BI Dashboard deployment through Databricks Asset Bundles. Here is a walkthrough of the recommended approach to maintain a single dashboard and handle ongoing modifications.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;WHY YOU END UP WITH TWO DASHBOARDS&lt;/P&gt;
&lt;P&gt;When you run "databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt;", the command downloads the dashboard definition (.lvdash.json) and creates a YAML resource configuration. When you then run "databricks bundle deploy", the bundle creates a new dashboard at the path specified in your databricks.yml (typically under the bundle's root_path in the workspace). The original dashboard you created manually in your personal workspace still exists, so you now have two copies.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;HOW TO MAINTAIN A SINGLE DASHBOARD&lt;/P&gt;
&lt;P&gt;Option 1: Use the original dashboard as the source, then remove it after bundle deployment&lt;/P&gt;
&lt;P&gt;1. Create and develop your dashboard in your workspace as you normally would.&lt;BR /&gt;2. Run the generate command to pull it into your bundle:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;3. Deploy the bundle to your target environment:&lt;/P&gt;
&lt;P&gt;databricks bundle deploy --target prod -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;4. After confirming the bundle-deployed dashboard works correctly, delete the original manual dashboard from your personal workspace. Going forward, the bundle-managed version is the single source of truth.&lt;/P&gt;
&lt;P&gt;Option 2: Use the --existing-path flag with bind (recommended)&lt;/P&gt;
&lt;P&gt;When you generate the dashboard configuration, you can use the --bind flag, which associates the generated bundle resource with the existing dashboard in the workspace instead of creating a new one:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; --bind -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;This tells the bundle to manage the existing dashboard in place rather than creating a separate copy. On subsequent deploys, the bundle updates the same dashboard rather than creating a new one.&lt;/P&gt;
&lt;P&gt;Option 3: Set parent_path explicitly&lt;/P&gt;
&lt;P&gt;In your databricks.yml resource configuration, set the parent_path to control where the dashboard is deployed. If you want it to land in a shared folder (not your personal workspace), specify that:&lt;/P&gt;
&lt;P&gt;resources:&lt;BR /&gt;dashboards:&lt;BR /&gt;my_dashboard:&lt;BR /&gt;display_name: "My Dashboard"&lt;BR /&gt;file_path: ../src/my_dashboard.lvdash.json&lt;BR /&gt;warehouse_id: ${var.warehouse_id}&lt;BR /&gt;parent_path: /Shared/dashboards&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;CORRECT PROCESS FOR MODIFYING AND REDEPLOYING&lt;/P&gt;
&lt;P&gt;Once the dashboard is managed by your bundle, the recommended workflow for making changes is:&lt;/P&gt;
&lt;P&gt;1. EDIT IN THE UI: Make changes to the dashboard directly in the Databricks workspace UI as usual.&lt;/P&gt;
&lt;P&gt;2. SYNC CHANGES BACK TO YOUR BUNDLE: Pull those UI changes into your local bundle files using:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; --force -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;The --force flag overwrites the local .lvdash.json file with the latest version from the workspace.&lt;/P&gt;
&lt;P&gt;3. CONTINUOUS SYNC (OPTIONAL): If you want real-time sync while editing, use the --watch flag:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; --watch -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;This continuously polls and updates your local .lvdash.json as you make changes in the UI.&lt;/P&gt;
&lt;P&gt;4. COMMIT TO VERSION CONTROL: After syncing, commit the updated .lvdash.json and any YAML changes to your Git repository.&lt;/P&gt;
&lt;P&gt;5. DEPLOY TO OTHER ENVIRONMENTS: Run bundle deploy to push the updated dashboard to staging or production:&lt;/P&gt;
&lt;P&gt;databricks bundle deploy --target prod -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;If the remote version has drifted from your local copy, add the --force flag:&lt;/P&gt;
&lt;P&gt;databricks bundle deploy --target prod --force -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;OPTIMAL WORKFLOW SUMMARY&lt;/P&gt;
&lt;P&gt;1. Develop the dashboard in a dev workspace or personal folder.&lt;BR /&gt;2. Generate the bundle configuration once: databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt; --bind&lt;BR /&gt;3. Store the .lvdash.json and YAML config in Git.&lt;BR /&gt;4. For ongoing edits, modify the dashboard in the UI, then sync back with: databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt; --force&lt;BR /&gt;5. Commit changes to Git, run CI/CD, and deploy with: databricks bundle deploy --target prod&lt;BR /&gt;6. Use variables like ${var.warehouse_id} to parameterize environment-specific settings (warehouse IDs, data sources) across dev/staging/prod targets.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;AVOIDING DUPLICATE DASHBOARDS WITH GIT SYNC&lt;/P&gt;
&lt;P&gt;If your workspace has Git folder sync enabled, the .lvdash.json files in your repo may also be picked up as dashboards. To prevent duplicates, add a sync exclusion in your databricks.yml:&lt;/P&gt;
&lt;P&gt;sync:&lt;BR /&gt;exclude:&lt;BR /&gt;- src/*.lvdash.json&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;DOCUMENTATION REFERENCES&lt;/P&gt;
&lt;P&gt;- CI/CD for Dashboard Developers: &lt;A href="https://docs.databricks.com/aws/en/dev-tools/ci-cd/best-practices#cicd-for-dashboard-developers" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/ci-cd/best-practices#cicd-for-dashboard-developers&lt;/A&gt;&lt;BR /&gt;- Bundle CLI generate command: &lt;A href="https://docs.databricks.com/en/dev-tools/cli/bundle-commands.html" target="_blank"&gt;https://docs.databricks.com/en/dev-tools/cli/bundle-commands.html&lt;/A&gt;&lt;BR /&gt;- Dashboard resource configuration: &lt;A href="https://docs.databricks.com/en/dev-tools/bundles/resources.html" target="_blank"&gt;https://docs.databricks.com/en/dev-tools/bundles/resources.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;* This reply used an agent system I built to research and draft this response based on the wide set of documentation I have available and previous memory. I personally review the draft for any obvious issues and for monitoring system reliability and update it when I detect any drift, but there is still a small chance that something is inaccurate, especially if you are experimenting with brand new features.&lt;/P&gt;</description>
    <pubDate>Sun, 08 Mar 2026 07:39:00 GMT</pubDate>
    <dc:creator>SteveOstrowski</dc:creator>
    <dc:date>2026-03-08T07:39:00Z</dc:date>
    <item>
      <title>Deploy dashboard with asset bundle</title>
      <link>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/146681#M52674</link>
      <description>&lt;P&gt;Hello, I have some questions regarding dashboard development using Asset Bundles.&lt;/P&gt;&lt;P&gt;I have been following the procedure for developing dashboards by referring to this page: &lt;A class="" href="https://docs.databricks.com/aws/en/dev-tools/ci-cd/best-practices#cicd-for-dashboard-developers" target="_blank" rel="noopener"&gt;Databricks CI/CD for Dashboard Developers&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;Here is the workflow I followed:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Created and developed a dashboard in my own workspace, then published it.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Ran databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt; -p &amp;lt;profile_name&amp;gt; locally to add the bundle.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Validated it using databricks bundle validate.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Deployed it using databricks bundle deploy --target prod -p &amp;lt;profile_name&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Following these steps results in two dashboards with the same name. While their paths are different—one defined in databricks.yml and the other in my personal workspace—having two dashboards is confusing and makes it unclear which one should be modified later.&lt;/P&gt;&lt;P&gt;My questions are:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Is there a way to maintain only a single dashboard while still deploying via Asset Bundles?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;What is the correct process for modifying and redeploying a dashboard after the initial deployment?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;What is the optimal workflow for dashboard development and deployment?&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I’ve searched extensively but couldn't find much information, so I'm reaching out for help.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Feb 2026 08:06:45 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/146681#M52674</guid>
      <dc:creator>Seunghyun</dc:creator>
      <dc:date>2026-02-03T08:06:45Z</dc:date>
    </item>
    <item>
      <title>Re: Deploy dashboard with asset bundle</title>
      <link>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/146796#M52704</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/212394"&gt;@Seunghyun&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;It depends on how you separate env - by workspace or catalog.&lt;/P&gt;&lt;P&gt;it it's by workspace, in prod you should have only one copy of the dashboard.&lt;/P&gt;&lt;P&gt;if it's by catalog, it's a bit trickier. you might want to delete the dev dashboard manually and make sure all updates go through the bundle deployed dashboard...&lt;/P&gt;&lt;P&gt;Using asset bundle presets can also help a lot&lt;/P&gt;</description>
      <pubDate>Wed, 04 Feb 2026 10:02:37 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/146796#M52704</guid>
      <dc:creator>Shaymi15</dc:creator>
      <dc:date>2026-02-04T10:02:37Z</dc:date>
    </item>
    <item>
      <title>Re: Deploy dashboard with asset bundle</title>
      <link>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/150198#M53302</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/212394"&gt;@Seunghyun&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;This is a common workflow question when getting started with AI/BI Dashboard deployment through Databricks Asset Bundles. Here is a walkthrough of the recommended approach to maintain a single dashboard and handle ongoing modifications.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;WHY YOU END UP WITH TWO DASHBOARDS&lt;/P&gt;
&lt;P&gt;When you run "databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt;", the command downloads the dashboard definition (.lvdash.json) and creates a YAML resource configuration. When you then run "databricks bundle deploy", the bundle creates a new dashboard at the path specified in your databricks.yml (typically under the bundle's root_path in the workspace). The original dashboard you created manually in your personal workspace still exists, so you now have two copies.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;HOW TO MAINTAIN A SINGLE DASHBOARD&lt;/P&gt;
&lt;P&gt;Option 1: Use the original dashboard as the source, then remove it after bundle deployment&lt;/P&gt;
&lt;P&gt;1. Create and develop your dashboard in your workspace as you normally would.&lt;BR /&gt;2. Run the generate command to pull it into your bundle:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;3. Deploy the bundle to your target environment:&lt;/P&gt;
&lt;P&gt;databricks bundle deploy --target prod -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;4. After confirming the bundle-deployed dashboard works correctly, delete the original manual dashboard from your personal workspace. Going forward, the bundle-managed version is the single source of truth.&lt;/P&gt;
&lt;P&gt;Option 2: Use the --existing-path flag with bind (recommended)&lt;/P&gt;
&lt;P&gt;When you generate the dashboard configuration, you can use the --bind flag, which associates the generated bundle resource with the existing dashboard in the workspace instead of creating a new one:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; --bind -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;This tells the bundle to manage the existing dashboard in place rather than creating a separate copy. On subsequent deploys, the bundle updates the same dashboard rather than creating a new one.&lt;/P&gt;
&lt;P&gt;Option 3: Set parent_path explicitly&lt;/P&gt;
&lt;P&gt;In your databricks.yml resource configuration, set the parent_path to control where the dashboard is deployed. If you want it to land in a shared folder (not your personal workspace), specify that:&lt;/P&gt;
&lt;P&gt;resources:&lt;BR /&gt;dashboards:&lt;BR /&gt;my_dashboard:&lt;BR /&gt;display_name: "My Dashboard"&lt;BR /&gt;file_path: ../src/my_dashboard.lvdash.json&lt;BR /&gt;warehouse_id: ${var.warehouse_id}&lt;BR /&gt;parent_path: /Shared/dashboards&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;CORRECT PROCESS FOR MODIFYING AND REDEPLOYING&lt;/P&gt;
&lt;P&gt;Once the dashboard is managed by your bundle, the recommended workflow for making changes is:&lt;/P&gt;
&lt;P&gt;1. EDIT IN THE UI: Make changes to the dashboard directly in the Databricks workspace UI as usual.&lt;/P&gt;
&lt;P&gt;2. SYNC CHANGES BACK TO YOUR BUNDLE: Pull those UI changes into your local bundle files using:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; --force -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;The --force flag overwrites the local .lvdash.json file with the latest version from the workspace.&lt;/P&gt;
&lt;P&gt;3. CONTINUOUS SYNC (OPTIONAL): If you want real-time sync while editing, use the --watch flag:&lt;/P&gt;
&lt;P&gt;databricks bundle generate dashboard --existing-id &amp;lt;dashboard-id&amp;gt; --watch -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;This continuously polls and updates your local .lvdash.json as you make changes in the UI.&lt;/P&gt;
&lt;P&gt;4. COMMIT TO VERSION CONTROL: After syncing, commit the updated .lvdash.json and any YAML changes to your Git repository.&lt;/P&gt;
&lt;P&gt;5. DEPLOY TO OTHER ENVIRONMENTS: Run bundle deploy to push the updated dashboard to staging or production:&lt;/P&gt;
&lt;P&gt;databricks bundle deploy --target prod -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;If the remote version has drifted from your local copy, add the --force flag:&lt;/P&gt;
&lt;P&gt;databricks bundle deploy --target prod --force -p &amp;lt;profile&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;OPTIMAL WORKFLOW SUMMARY&lt;/P&gt;
&lt;P&gt;1. Develop the dashboard in a dev workspace or personal folder.&lt;BR /&gt;2. Generate the bundle configuration once: databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt; --bind&lt;BR /&gt;3. Store the .lvdash.json and YAML config in Git.&lt;BR /&gt;4. For ongoing edits, modify the dashboard in the UI, then sync back with: databricks bundle generate dashboard --existing-id &amp;lt;id&amp;gt; --force&lt;BR /&gt;5. Commit changes to Git, run CI/CD, and deploy with: databricks bundle deploy --target prod&lt;BR /&gt;6. Use variables like ${var.warehouse_id} to parameterize environment-specific settings (warehouse IDs, data sources) across dev/staging/prod targets.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;AVOIDING DUPLICATE DASHBOARDS WITH GIT SYNC&lt;/P&gt;
&lt;P&gt;If your workspace has Git folder sync enabled, the .lvdash.json files in your repo may also be picked up as dashboards. To prevent duplicates, add a sync exclusion in your databricks.yml:&lt;/P&gt;
&lt;P&gt;sync:&lt;BR /&gt;exclude:&lt;BR /&gt;- src/*.lvdash.json&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;DOCUMENTATION REFERENCES&lt;/P&gt;
&lt;P&gt;- CI/CD for Dashboard Developers: &lt;A href="https://docs.databricks.com/aws/en/dev-tools/ci-cd/best-practices#cicd-for-dashboard-developers" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/ci-cd/best-practices#cicd-for-dashboard-developers&lt;/A&gt;&lt;BR /&gt;- Bundle CLI generate command: &lt;A href="https://docs.databricks.com/en/dev-tools/cli/bundle-commands.html" target="_blank"&gt;https://docs.databricks.com/en/dev-tools/cli/bundle-commands.html&lt;/A&gt;&lt;BR /&gt;- Dashboard resource configuration: &lt;A href="https://docs.databricks.com/en/dev-tools/bundles/resources.html" target="_blank"&gt;https://docs.databricks.com/en/dev-tools/bundles/resources.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;* This reply used an agent system I built to research and draft this response based on the wide set of documentation I have available and previous memory. I personally review the draft for any obvious issues and for monitoring system reliability and update it when I detect any drift, but there is still a small chance that something is inaccurate, especially if you are experimenting with brand new features.&lt;/P&gt;</description>
      <pubDate>Sun, 08 Mar 2026 07:39:00 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/deploy-dashboard-with-asset-bundle/m-p/150198#M53302</guid>
      <dc:creator>SteveOstrowski</dc:creator>
      <dc:date>2026-03-08T07:39:00Z</dc:date>
    </item>
  </channel>
</rss>

