From c982b85e2f1d3a0e0502b91698a3e2c887b9fda7 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Thu, 18 Jun 2026 15:42:54 +0200 Subject: [PATCH 1/7] acc: preserve serialized_dashboard formatting in testserver The lakeview testserver fake round-tripped serialized_dashboard through json.Unmarshal/Marshal, collapsing whitespace and reordering keys. The real backend stores and returns the serialized dashboard verbatim, modulo the documented pageType injection and dataset catalog/schema overrides. Preserve the caller's original formatting when no mutation is needed, and use indented marshaling otherwise to match cloud's pretty-printing. This lets the dashboards/generate_inplace acceptance test run locally; flip its Local flag and re-baseline serialized_dashboard formatting across the dashboard test family. Co-authored-by: Isaac --- .../detect-change/out.plan.direct.json | 4 ++-- .../dashboards/generate_inplace/out.test.toml | 2 +- .../dashboards/generate_inplace/test.toml | 2 +- .../dashboards/simple/out.plan.direct.json | 9 +-------- .../resources/dashboards/simple/output.txt | 2 +- .../simple_outside_bundle_root/output.txt | 2 +- .../dashboards/simple_syncroot/output.txt | 2 +- libs/testserver/dashboards.go | 16 +++++++++++++++- 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json b/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json index b113b73d33a..635fdd0f193 100644 --- a/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json +++ b/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json @@ -26,7 +26,7 @@ "parent_path": "/Workspace/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/resources", "path": "/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/resources/test-dashboard-[UNIQUE_NAME].lvdash.json", "published": true, - "serialized_dashboard": "{}\n", + "serialized_dashboard": "{}", "update_time": "[TIMESTAMP]", "warehouse_id": "[TEST_DEFAULT_WAREHOUSE_ID]" }, @@ -41,7 +41,7 @@ "reason": "etag_based", "old": "{\n \"pages\": [\n {\n \"displayName\": \"New Page\",\n \"layout\": [\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 0\n },\n \"widget\": {\n \"name\": \"82eb9107\",\n \"textbox_spec\": \"# I'm a title\"\n }\n },\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 2\n },\n \"widget\": {\n \"name\": \"ffa6de4f\",\n \"textbox_spec\": \"Text\"\n }\n }\n ],\n \"name\": \"fdd21a3c\"\n }\n ]\n}\n", "new": "{\n \"pages\": [\n {\n \"displayName\": \"New Page\",\n \"layout\": [\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 0\n },\n \"widget\": {\n \"name\": \"82eb9107\",\n \"textbox_spec\": \"# I'm a title\"\n }\n },\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 2\n },\n \"widget\": {\n \"name\": \"ffa6de4f\",\n \"textbox_spec\": \"Text\"\n }\n }\n ],\n \"name\": \"fdd21a3c\"\n }\n ]\n}\n", - "remote": "{}\n" + "remote": "{}" } } } diff --git a/acceptance/bundle/resources/dashboards/generate_inplace/out.test.toml b/acceptance/bundle/resources/dashboards/generate_inplace/out.test.toml index bbcef543fa6..7edd52865f7 100644 --- a/acceptance/bundle/resources/dashboards/generate_inplace/out.test.toml +++ b/acceptance/bundle/resources/dashboards/generate_inplace/out.test.toml @@ -1,4 +1,4 @@ -Local = false +Local = true Cloud = true RequiresWarehouse = true RunsOnDbr = true diff --git a/acceptance/bundle/resources/dashboards/generate_inplace/test.toml b/acceptance/bundle/resources/dashboards/generate_inplace/test.toml index 731f8ff31b5..58053ece188 100644 --- a/acceptance/bundle/resources/dashboards/generate_inplace/test.toml +++ b/acceptance/bundle/resources/dashboards/generate_inplace/test.toml @@ -1,5 +1,5 @@ Cloud = true -Local = false +Local = true RecordRequests = false RunsOnDbr = true diff --git a/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json b/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json index f0e8fb6f047..3a5fe0e2eb8 100644 --- a/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json +++ b/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json @@ -16,7 +16,7 @@ "parent_path": "/Workspace/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", "published": true, - "serialized_dashboard": "{}\n", + "serialized_dashboard": "{ }\n", "update_time": "[TIMESTAMP]", "warehouse_id": "[TEST_DEFAULT_WAREHOUSE_ID]" }, @@ -26,13 +26,6 @@ "reason": "custom", "old": "[ETAG]", "remote": "[ETAG]" - }, - "serialized_dashboard": { - "action": "skip", - "reason": "etag_based", - "old": "{ }\n", - "new": "{ }\n", - "remote": "{}\n" } } } diff --git a/acceptance/bundle/resources/dashboards/simple/output.txt b/acceptance/bundle/resources/dashboards/simple/output.txt index 7464a2e50f5..422aca2a79e 100644 --- a/acceptance/bundle/resources/dashboards/simple/output.txt +++ b/acceptance/bundle/resources/dashboards/simple/output.txt @@ -10,7 +10,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", - "serialized_dashboard": "{}\n" + "serialized_dashboard": "{ }\n" } >>> [CLI] bundle plan -o json diff --git a/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt b/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt index 6e16fb6ef0b..9b773af8b9f 100644 --- a/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt +++ b/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt @@ -10,7 +10,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", - "serialized_dashboard": "{}\n" + "serialized_dashboard": "{ }\n" } >>> [CLI] bundle destroy --auto-approve diff --git a/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt b/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt index 8bb6baeca54..a51090b98af 100644 --- a/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt +++ b/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt @@ -10,7 +10,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", - "serialized_dashboard": "{}\n" + "serialized_dashboard": "{ }\n" } >>> [CLI] bundle destroy --auto-approve diff --git a/libs/testserver/dashboards.go b/libs/testserver/dashboards.go index 10cc03a477c..9eef81562cb 100644 --- a/libs/testserver/dashboards.go +++ b/libs/testserver/dashboards.go @@ -32,11 +32,18 @@ func transformSerializedDashboard(serializedDashboard, datasetCatalog, datasetSc return serializedDashboard } + // The real backend stores and returns the serialized dashboard verbatim, + // modulo the mutations applied below. Track whether any mutation actually + // happens so we can preserve the caller's original formatting (whitespace + // and key order) when it doesn't, matching cloud behavior. + mutated := false + // Add pageType to each page in the pages array (as of June 2025, this is an undocumented Lakeview API behaviour) if pages, ok := dashboardContent["pages"].([]any); ok { for _, page := range pages { if pageMap, ok := page.(map[string]any); ok { pageMap["pageType"] = "PAGE_TYPE_CANVAS" + mutated = true } } } @@ -47,15 +54,22 @@ func transformSerializedDashboard(serializedDashboard, datasetCatalog, datasetSc if datasetMap, ok := dataset.(map[string]any); ok { if datasetCatalog != "" { datasetMap["catalog"] = datasetCatalog + mutated = true } if datasetSchema != "" { datasetMap["schema"] = datasetSchema + mutated = true } } } } - updatedContent, err := json.Marshal(dashboardContent) + if !mutated { + return serializedDashboard + } + + // Pretty-print with 2-space indentation to match cloud's formatting. + updatedContent, err := json.MarshalIndent(dashboardContent, "", " ") if err != nil { return serializedDashboard } From f88ea67f63850e35ddd51598e934280c1b4ad567 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Thu, 18 Jun 2026 18:50:02 +0200 Subject: [PATCH 2/7] acc: keep mutation path compact; fix missed verbatim goldens The previous commit pretty-printed the serialized dashboard whenever it was mutated (pageType/dataset injection), which re-baselined goldens in local-only tests (bundle/migrate/dashboards, bundle/generate/dashboard-inplace) for a formatting cloud is never checked against. Keep the mutation path compact (its original behavior) and only return the dashboard verbatim when nothing is mutated. This narrows the change to the verbatim case and regenerates the one remaining missed golden (bundle/generate/dashboard-inplace). Co-authored-by: Isaac --- acceptance/bundle/generate/dashboard-inplace/output.txt | 2 +- libs/testserver/dashboards.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/acceptance/bundle/generate/dashboard-inplace/output.txt b/acceptance/bundle/generate/dashboard-inplace/output.txt index 90d054197aa..5b8f9dfbdb4 100644 --- a/acceptance/bundle/generate/dashboard-inplace/output.txt +++ b/acceptance/bundle/generate/dashboard-inplace/output.txt @@ -19,7 +19,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]/.bundle/dashboard update inplace/default/resources", "path": "/Users/[USERNAME]/.bundle/dashboard update inplace/default/resources/test dashboard.lvdash.json", - "serialized_dashboard": "{\"a\":\"b\"}\n", + "serialized_dashboard": "{\"a\":\"b\"}", "update_time": "[TIMESTAMP]", "warehouse_id": "" } diff --git a/libs/testserver/dashboards.go b/libs/testserver/dashboards.go index 9eef81562cb..673973236bd 100644 --- a/libs/testserver/dashboards.go +++ b/libs/testserver/dashboards.go @@ -68,8 +68,7 @@ func transformSerializedDashboard(serializedDashboard, datasetCatalog, datasetSc return serializedDashboard } - // Pretty-print with 2-space indentation to match cloud's formatting. - updatedContent, err := json.MarshalIndent(dashboardContent, "", " ") + updatedContent, err := json.Marshal(dashboardContent) if err != nil { return serializedDashboard } From 28944937b100c19237875f8e52154c908bedbde0 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 19 Jun 2026 11:23:02 +0200 Subject: [PATCH 3/7] Format input .lvdash.json file --- .../bundle/resources/dashboards/simple/out.plan.direct.json | 2 +- acceptance/bundle/resources/dashboards/simple/output.txt | 2 +- .../resources/dashboards/simple/sample-dashboard.lvdash.json | 2 +- .../resources/dashboards/simple_outside_bundle_root/output.txt | 2 +- .../bundle/resources/dashboards/simple_syncroot/output.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json b/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json index 3a5fe0e2eb8..353a1e7aede 100644 --- a/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json +++ b/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json @@ -16,7 +16,7 @@ "parent_path": "/Workspace/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", "published": true, - "serialized_dashboard": "{ }\n", + "serialized_dashboard": "{}\n", "update_time": "[TIMESTAMP]", "warehouse_id": "[TEST_DEFAULT_WAREHOUSE_ID]" }, diff --git a/acceptance/bundle/resources/dashboards/simple/output.txt b/acceptance/bundle/resources/dashboards/simple/output.txt index 422aca2a79e..7464a2e50f5 100644 --- a/acceptance/bundle/resources/dashboards/simple/output.txt +++ b/acceptance/bundle/resources/dashboards/simple/output.txt @@ -10,7 +10,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", - "serialized_dashboard": "{ }\n" + "serialized_dashboard": "{}\n" } >>> [CLI] bundle plan -o json diff --git a/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json b/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json index ffcd4415b08..0967ef424bc 100644 --- a/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json +++ b/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json @@ -1 +1 @@ -{ } +{} diff --git a/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt b/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt index 9b773af8b9f..6e16fb6ef0b 100644 --- a/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt +++ b/acceptance/bundle/resources/dashboards/simple_outside_bundle_root/output.txt @@ -10,7 +10,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", - "serialized_dashboard": "{ }\n" + "serialized_dashboard": "{}\n" } >>> [CLI] bundle destroy --auto-approve diff --git a/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt b/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt index a51090b98af..8bb6baeca54 100644 --- a/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt +++ b/acceptance/bundle/resources/dashboards/simple_syncroot/output.txt @@ -10,7 +10,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]", "path": "/Users/[USERNAME]/test bundle-deploy-dashboard [UUID].lvdash.json", - "serialized_dashboard": "{ }\n" + "serialized_dashboard": "{}\n" } >>> [CLI] bundle destroy --auto-approve From 8f405bdf78f2958162b86215f9e6f73a89efa359 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 19 Jun 2026 11:40:35 +0200 Subject: [PATCH 4/7] acc: terminate verbatim serialized_dashboard with a trailing newline The lakeview testserver fake preserves the caller's serialized_dashboard verbatim when no mutation is needed, but dropped cloud's trailing-newline behavior. Cloud terminates the stored dashboard with a single newline even when it otherwise preserves formatting, so an out-of-band update sending "{}" comes back as "{}\n". Re-add the newline in the verbatim branch and update the detect-change golden to match. Co-authored-by: Isaac --- .../resources/dashboards/detect-change/out.plan.direct.json | 4 ++-- libs/testserver/dashboards.go | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json b/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json index 635fdd0f193..b113b73d33a 100644 --- a/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json +++ b/acceptance/bundle/resources/dashboards/detect-change/out.plan.direct.json @@ -26,7 +26,7 @@ "parent_path": "/Workspace/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/resources", "path": "/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/resources/test-dashboard-[UNIQUE_NAME].lvdash.json", "published": true, - "serialized_dashboard": "{}", + "serialized_dashboard": "{}\n", "update_time": "[TIMESTAMP]", "warehouse_id": "[TEST_DEFAULT_WAREHOUSE_ID]" }, @@ -41,7 +41,7 @@ "reason": "etag_based", "old": "{\n \"pages\": [\n {\n \"displayName\": \"New Page\",\n \"layout\": [\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 0\n },\n \"widget\": {\n \"name\": \"82eb9107\",\n \"textbox_spec\": \"# I'm a title\"\n }\n },\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 2\n },\n \"widget\": {\n \"name\": \"ffa6de4f\",\n \"textbox_spec\": \"Text\"\n }\n }\n ],\n \"name\": \"fdd21a3c\"\n }\n ]\n}\n", "new": "{\n \"pages\": [\n {\n \"displayName\": \"New Page\",\n \"layout\": [\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 0\n },\n \"widget\": {\n \"name\": \"82eb9107\",\n \"textbox_spec\": \"# I'm a title\"\n }\n },\n {\n \"position\": {\n \"height\": 2,\n \"width\": 6,\n \"x\": 0,\n \"y\": 2\n },\n \"widget\": {\n \"name\": \"ffa6de4f\",\n \"textbox_spec\": \"Text\"\n }\n }\n ],\n \"name\": \"fdd21a3c\"\n }\n ]\n}\n", - "remote": "{}" + "remote": "{}\n" } } } diff --git a/libs/testserver/dashboards.go b/libs/testserver/dashboards.go index 673973236bd..f4d985234cd 100644 --- a/libs/testserver/dashboards.go +++ b/libs/testserver/dashboards.go @@ -65,6 +65,11 @@ func transformSerializedDashboard(serializedDashboard, datasetCatalog, datasetSc } if !mutated { + // Cloud terminates the stored dashboard with a trailing newline even + // when it otherwise preserves the caller's formatting verbatim. + if !strings.HasSuffix(serializedDashboard, "\n") { + return serializedDashboard + "\n" + } return serializedDashboard } From 2c47de8f123ec12b831188158a2ecef2dd83daa7 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 19 Jun 2026 11:41:55 +0200 Subject: [PATCH 5/7] acc: consolidate serialized_dashboard newline handling Compute the dashboard body once (verbatim when unmutated, re-marshaled otherwise) and apply cloud's trailing-newline rule in a single place instead of two. Co-authored-by: Isaac --- libs/testserver/dashboards.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/libs/testserver/dashboards.go b/libs/testserver/dashboards.go index f4d985234cd..d29ff6f11d7 100644 --- a/libs/testserver/dashboards.go +++ b/libs/testserver/dashboards.go @@ -64,22 +64,22 @@ func transformSerializedDashboard(serializedDashboard, datasetCatalog, datasetSc } } - if !mutated { - // Cloud terminates the stored dashboard with a trailing newline even - // when it otherwise preserves the caller's formatting verbatim. - if !strings.HasSuffix(serializedDashboard, "\n") { - return serializedDashboard + "\n" + // Without mutations cloud preserves the caller's formatting verbatim; + // otherwise it re-marshals the content. + result := serializedDashboard + if mutated { + updatedContent, err := json.Marshal(dashboardContent) + if err != nil { + return serializedDashboard } - return serializedDashboard + result = string(updatedContent) } - updatedContent, err := json.Marshal(dashboardContent) - if err != nil { - return serializedDashboard + // Cloud always terminates the stored dashboard with a single trailing newline. + if !strings.HasSuffix(result, "\n") { + result += "\n" } - - // Add a newline to the end of the serialized dashboard. - return string(updatedContent) + "\n" + return result } func (s *FakeWorkspace) DashboardCreate(req Request) Response { From c352df5a19a785b14a2c590a0838e7b217596f48 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 19 Jun 2026 11:45:44 +0200 Subject: [PATCH 6/7] acc: update dashboard-inplace golden for trailing newline The lakeview update in this test sends serialized_dashboard "{"a":"b"}", which cloud stores with a trailing newline like every other dashboard. Regenerate the golden to match the testserver's now-faithful behavior. Co-authored-by: Isaac --- acceptance/bundle/generate/dashboard-inplace/output.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance/bundle/generate/dashboard-inplace/output.txt b/acceptance/bundle/generate/dashboard-inplace/output.txt index 5b8f9dfbdb4..90d054197aa 100644 --- a/acceptance/bundle/generate/dashboard-inplace/output.txt +++ b/acceptance/bundle/generate/dashboard-inplace/output.txt @@ -19,7 +19,7 @@ Deployment complete! "lifecycle_state": "ACTIVE", "parent_path": "/Users/[USERNAME]/.bundle/dashboard update inplace/default/resources", "path": "/Users/[USERNAME]/.bundle/dashboard update inplace/default/resources/test dashboard.lvdash.json", - "serialized_dashboard": "{\"a\":\"b\"}", + "serialized_dashboard": "{\"a\":\"b\"}\n", "update_time": "[TIMESTAMP]", "warehouse_id": "" } From f0b70712cc5939ee1161efb58a1510f23b28eb5f Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Fri, 19 Jun 2026 12:02:11 +0200 Subject: [PATCH 7/7] Revert simple test back to using unformatted JSON --- .../resources/dashboards/simple/out.plan.direct.json | 7 +++++++ .../dashboards/simple/sample-dashboard.lvdash.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json b/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json index 353a1e7aede..f0e8fb6f047 100644 --- a/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json +++ b/acceptance/bundle/resources/dashboards/simple/out.plan.direct.json @@ -26,6 +26,13 @@ "reason": "custom", "old": "[ETAG]", "remote": "[ETAG]" + }, + "serialized_dashboard": { + "action": "skip", + "reason": "etag_based", + "old": "{ }\n", + "new": "{ }\n", + "remote": "{}\n" } } } diff --git a/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json b/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json index 0967ef424bc..ffcd4415b08 100644 --- a/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json +++ b/acceptance/bundle/resources/dashboards/simple/sample-dashboard.lvdash.json @@ -1 +1 @@ -{} +{ }