{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
        "slug": "dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api",
        "url": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/"
        },
        "title": "Create the Azure dashboard resource before using Grafana's content-update API",
        "summary": "Can a Grafana API import create an Azure Monitor dashboard resource on its own?",
        "format": {
            "slug": "guide",
            "name": "Guide"
        },
        "priority": {
            "slug": "info",
            "name": "Information"
        },
        "featured": false,
        "image": {
            "theme": "managed-it",
            "label": "Managed IT operations",
            "alt": "A controlled technology lifecycle progressing from assessment to approved production.",
            "card_url": "https://update.dsesecurity.com/assets/editorial/managed-it-card.webp?v=1.8.20",
            "hero_url": "https://update.dsesecurity.com/assets/editorial/managed-it-hero.webp?v=1.8.20",
            "social_url": "https://update.dsesecurity.com/assets/editorial/managed-it-social-v2.jpg?v=1.8.20",
            "width": 2400,
            "height": 1350
        },
        "topics": [
            {
                "slug": "it",
                "name": "IT",
                "url": "https://update.dsesecurity.com/topic/it/"
            }
        ],
        "author": {
            "name": "DSE Security Editorial Team",
            "url": "https://update.dsesecurity.com/#editorial-team",
            "type": "Organization"
        },
        "publisher": {
            "name": "Detection Systems & Engineering",
            "url": "https://dsesecurity.com/"
        },
        "published_at": "2026-09-10T00:23:59+00:00",
        "modified_at": "2026-09-10T02:08:05+00:00",
        "reviewed_on": "2026-09-09",
        "reading_minutes": 2,
        "word_count": 240,
        "potentially_affected": "Automation managing Azure Monitor dashboards with Grafana through the supported API subset.",
        "dse_recommendation": "Separate Azure resource creation from Grafana content update and track the result of each stage.",
        "primary_source": {
            "name": "Call Grafana APIs programmatically - Azure Monitor | Microsoft Learn",
            "url": "https://learn.microsoft.com/en-us/azure/azure-monitor/visualize/visualize-call-grafana-api",
            "published_on": null,
            "authority": "Microsoft Learn"
        },
        "publishing_principles": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
        "usage_info": "https://update.dsesecurity.com/usage/",
        "copyright_notice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
        "content_html": "<h2>Source facts</h2>\n<p>Azure Monitor dashboards with Grafana supports only a subset of Grafana APIs. Import and deletion are Azure Resource Manager operations, not Grafana API operations. The documented import workflow first creates the Azure dashboard resource, empty by default, and then uses the Grafana data-plane POST /api/dashboards/db/ operation to update its content. Dashboard deletion requires the ARM operation without a Grafana deletion call. <a href=\"https://learn.microsoft.com/en-us/azure/azure-monitor/visualize/visualize-call-grafana-api\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Learn</a>.</p>\n<h2>Applicability</h2>\n<p>Use this workflow boundary when adapting an existing Grafana automation client to Azure Monitor dashboards. Do not assume that an endpoint compatible with content updates exposes the complete dashboard resource lifecycle.</p>\n<h2>DSE recommendation</h2>\n<p>Separate Azure resource creation from Grafana content update and track the result of each stage. Have the automation owner define what happens if the resource exists but its intended content was not applied. Preserve the selected dashboard identity across the stages and avoid retry logic that creates unrelated empty resources. Keep deletion behind its own approved lifecycle action.</p>\n<h2>Verification</h2>\n<p>In a test scope, inspect the Azure resource after creation and then retrieve the dashboard after the content update. Compare its identity and expected panels with the approved source artifact. Exercise the partial-failure path to confirm the job reports an incomplete deployment rather than success from resource creation alone. Test cleanup only on an explicitly designated disposable dashboard, and retain the separate operation outcomes with the release evidence.</p>\n<h2>Official references</h2>\n<p><a href=\"https://learn.microsoft.com/en-us/azure/azure-monitor/visualize/visualize-call-grafana-api\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Learn: Calling Azure Monitor Grafana APIs</a>. Source reviewed September 9, 2026.</p>",
        "content_text": "Source facts\nAzure Monitor dashboards with Grafana supports only a subset of Grafana APIs. Import and deletion are Azure Resource Manager operations, not Grafana API operations. The documented import workflow first creates the Azure dashboard resource, empty by default, and then uses the Grafana data-plane POST /api/dashboards/db/ operation to update its content. Dashboard deletion requires the ARM operation without a Grafana deletion call. Microsoft Learn.\nApplicability\nUse this workflow boundary when adapting an existing Grafana automation client to Azure Monitor dashboards. Do not assume that an endpoint compatible with content updates exposes the complete dashboard resource lifecycle.\nDSE recommendation\nSeparate Azure resource creation from Grafana content update and track the result of each stage. Have the automation owner define what happens if the resource exists but its intended content was not applied. Preserve the selected dashboard identity across the stages and avoid retry logic that creates unrelated empty resources. Keep deletion behind its own approved lifecycle action.\nVerification\nIn a test scope, inspect the Azure resource after creation and then retrieve the dashboard after the content update. Compare its identity and expected panels with the approved source artifact. Exercise the partial-failure path to confirm the job reports an incomplete deployment rather than success from resource creation alone. Test cleanup only on an explicitly designated disposable dashboard, and retain the separate operation outcomes with the release evidence.\nOfficial references\nMicrosoft Learn: Calling Azure Monitor Grafana APIs. Source reviewed September 9, 2026.",
        "content_markdown": "## Source facts\n\nAzure Monitor dashboards with Grafana supports only a subset of Grafana APIs. Import and deletion are Azure Resource Manager operations, not Grafana API operations. The documented import workflow first creates the Azure dashboard resource, empty by default, and then uses the Grafana data-plane POST /api/dashboards/db/ operation to update its content. Dashboard deletion requires the ARM operation without a Grafana deletion call. [Microsoft Learn](https://learn.microsoft.com/en-us/azure/azure-monitor/visualize/visualize-call-grafana-api).\n\n## Applicability\n\nUse this workflow boundary when adapting an existing Grafana automation client to Azure Monitor dashboards. Do not assume that an endpoint compatible with content updates exposes the complete dashboard resource lifecycle.\n\n## DSE recommendation\n\nSeparate Azure resource creation from Grafana content update and track the result of each stage. Have the automation owner define what happens if the resource exists but its intended content was not applied. Preserve the selected dashboard identity across the stages and avoid retry logic that creates unrelated empty resources. Keep deletion behind its own approved lifecycle action.\n\n## Verification\n\nIn a test scope, inspect the Azure resource after creation and then retrieve the dashboard after the content update. Compare its identity and expected panels with the approved source artifact. Exercise the partial-failure path to confirm the job reports an incomplete deployment rather than success from resource creation alone. Test cleanup only on an explicitly designated disposable dashboard, and retain the separate operation outcomes with the release evidence.\n\n## Official references\n\n[Microsoft Learn: Calling Azure Monitor Grafana APIs](https://learn.microsoft.com/en-us/azure/azure-monitor/visualize/visualize-call-grafana-api). Source reviewed September 9, 2026."
    },
    "json_ld": {
        "@context": "https://schema.org",
        "@graph": [
            {
                "@type": "Organization",
                "@id": "https://dsesecurity.com/#organization",
                "name": "Detection Systems & Engineering",
                "alternateName": "DSE Security",
                "url": "https://dsesecurity.com/",
                "logo": {
                    "@type": "ImageObject",
                    "url": "https://update.dsesecurity.com/assets/dse-logo-20260812.png?v=1.8.20"
                }
            },
            {
                "@type": "Organization",
                "@id": "https://update.dsesecurity.com/#editorial-team",
                "name": "DSE Security Editorial Team",
                "url": "https://update.dsesecurity.com/",
                "parentOrganization": {
                    "@id": "https://dsesecurity.com/#organization"
                }
            },
            {
                "@type": "WebSite",
                "@id": "https://update.dsesecurity.com/#website",
                "name": "DSE Updates",
                "alternateName": "DSE Security Knowledge Hub",
                "url": "https://update.dsesecurity.com/",
                "inLanguage": "en-US",
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "potentialAction": {
                    "@type": "SearchAction",
                    "target": {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://update.dsesecurity.com/?q={search_term_string}"
                    },
                    "query-input": "required name=search_term_string"
                }
            },
            {
                "@type": "WebPage",
                "@id": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
                "url": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-09-09"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Create the Azure dashboard resource before using Grafana's content-update API",
                        "item": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/#article",
                "identifier": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
                "url": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/",
                "headline": "Create the Azure dashboard resource before using Grafana's content-update API",
                "description": "Can a Grafana API import create an Azure Monitor dashboard resource on its own?",
                "abstract": "Can a Grafana API import create an Azure Monitor dashboard resource on its own?",
                "articleBody": "Source facts\nAzure Monitor dashboards with Grafana supports only a subset of Grafana APIs. Import and deletion are Azure Resource Manager operations, not Grafana API operations. The documented import workflow first creates the Azure dashboard resource, empty by default, and then uses the Grafana data-plane POST /api/dashboards/db/ operation to update its content. Dashboard deletion requires the ARM operation without a Grafana deletion call. Microsoft Learn.\nApplicability\nUse this workflow boundary when adapting an existing Grafana automation client to Azure Monitor dashboards. Do not assume that an endpoint compatible with content updates exposes the complete dashboard resource lifecycle.\nDSE recommendation\nSeparate Azure resource creation from Grafana content update and track the result of each stage. Have the automation owner define what happens if the resource exists but its intended content was not applied. Preserve the selected dashboard identity across the stages and avoid retry logic that creates unrelated empty resources. Keep deletion behind its own approved lifecycle action.\nVerification\nIn a test scope, inspect the Azure resource after creation and then retrieve the dashboard after the content update. Compare its identity and expected panels with the approved source artifact. Exercise the partial-failure path to confirm the job reports an incomplete deployment rather than success from resource creation alone. Test cleanup only on an explicitly designated disposable dashboard, and retain the separate operation outcomes with the release evidence.\nOfficial references\nMicrosoft Learn: Calling Azure Monitor Grafana APIs. Source reviewed September 9, 2026.",
                "datePublished": "2026-09-10T00:23:59+00:00",
                "dateModified": "2026-09-10T02:08:05+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/"
                },
                "inLanguage": "en-US",
                "isAccessibleForFree": true,
                "author": {
                    "@type": "Organization",
                    "name": "DSE Security Editorial Team",
                    "url": "https://update.dsesecurity.com/#editorial-team"
                },
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "image": {
                    "@type": "ImageObject",
                    "@id": "https://update.dsesecurity.com/updates/dse-20260909-477-create-the-azure-dashboard-resource-before-using-grafana-s-content-update-api/#primaryimage",
                    "url": "https://update.dsesecurity.com/assets/editorial/managed-it-social-v2.jpg?v=1.8.20",
                    "contentUrl": "https://update.dsesecurity.com/assets/editorial/managed-it-social-v2.jpg?v=1.8.20",
                    "width": 1200,
                    "height": 630,
                    "caption": "Create the Azure dashboard resource before using Grafana's content-update API"
                },
                "articleSection": [
                    "IT"
                ],
                "keywords": [
                    "IT",
                    "Guide",
                    "Information priority"
                ],
                "genre": "Guide",
                "about": [
                    {
                        "@type": "Thing",
                        "name": "IT",
                        "url": "https://update.dsesecurity.com/topic/it/"
                    }
                ],
                "wordCount": 240,
                "timeRequired": "PT2M",
                "publishingPrinciples": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
                "usageInfo": "https://update.dsesecurity.com/usage/",
                "copyrightHolder": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "copyrightNotice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
                "citation": {
                    "@type": "CreativeWork",
                    "name": "Call Grafana APIs programmatically - Azure Monitor | Microsoft Learn",
                    "url": "https://learn.microsoft.com/en-us/azure/azure-monitor/visualize/visualize-call-grafana-api"
                }
            }
        ]
    }
}