<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Plugin management on Grafana Labs</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/</link><description>Recent content in Plugin management on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v12.4/administration/plugin-management/index.xml" rel="self" type="application/rss+xml"/><item><title>Types of plugins</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-types/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-types/</guid><content><![CDATA[&lt;h1 id=&#34;types-of-plugins&#34;&gt;Types of plugins&lt;/h1&gt;
&lt;p&gt;Grafana supports three types of plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/grafana/plugins/panel-plugins&#34;&gt;Panels&lt;/a&gt; - These plugins make it easy to create and add any kind of panel, to show your data, or improve your favorite dashboards.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/grafana/plugins/data-source-plugins&#34;&gt;Data sources&lt;/a&gt; - These plugins allow you to pull data from various data sources such as databases, APIs, log files, and so on, and display it in the form of graphs, charts, and dashboards in Grafana.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/grafana/plugins/app-plugins&#34;&gt;Apps&lt;/a&gt; - These plugins enable the bundling of data sources, panels, dashboards, and Grafana pages into a cohesive experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;panel-plugins&#34;&gt;Panel plugins&lt;/h2&gt;
&lt;p&gt;Add new visualizations to your dashboard with panel plugins, such as the &lt;a href=&#34;/grafana/plugins/grafana-clock-panel&#34;&gt;Clock&lt;/a&gt;, &lt;a href=&#34;/grafana/plugins/boazreicher-mosaicplot-panel&#34;&gt;Mosaic&lt;/a&gt; and &lt;a href=&#34;/grafana/plugins/volkovlabs-variable-panel&#34;&gt;Variable&lt;/a&gt; panels.&lt;/p&gt;
&lt;p&gt;Use panel plugins when you want to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visualize data returned by data source queries.&lt;/li&gt;
&lt;li&gt;Navigate between dashboards.&lt;/li&gt;
&lt;li&gt;Control external systems, such as smart home devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;data-source-plugins&#34;&gt;Data source plugins&lt;/h2&gt;
&lt;p&gt;Data source plugins add support for new databases, such as &lt;a href=&#34;/grafana/plugins/grafana-bigquery-datasource&#34;&gt;Google BigQuery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Data source plugins communicate with external sources of data and return the data in a format that Grafana understands. By adding a data source plugin, you can immediately use the data in any of your existing dashboards.&lt;/p&gt;
&lt;p&gt;Use data source plugins when you want to query data from external or third-party systems.&lt;/p&gt;
&lt;h3 id=&#34;managing-access-for-data-source-plugins&#34;&gt;Managing access for data source plugins&lt;/h3&gt;
&lt;p&gt;Administrators can grant access to data source plugins with 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/data-source-management/teamlbac/&#34;&gt;LBAC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Label Based Access Control (LBAC) customizes access rights based on team memberships, ensuring that users only query data relevant to their assigned permissions.&lt;/p&gt;
&lt;h2 id=&#34;app-plugins&#34;&gt;App plugins&lt;/h2&gt;
&lt;p&gt;Applications, or app plugins, bundle data sources and panels to provide a cohesive experience, such as the &lt;a href=&#34;/grafana/plugins/alexanderzobnin-zabbix-app&#34;&gt;Zabbix&lt;/a&gt; app.&lt;/p&gt;
&lt;p&gt;Apps can also add custom pages for things like control panels.&lt;/p&gt;
&lt;p&gt;Use app plugins when you want an out-of-the-box monitoring experience.&lt;/p&gt;
&lt;h3 id=&#34;managing-access-for-app-plugins&#34;&gt;Managing access for app plugins&lt;/h3&gt;
&lt;p&gt;Customize access to app plugins with 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/rbac-for-app-plugins/&#34;&gt;RBAC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By default, the Viewer, Editor and Admin roles have access to all app plugins that their Organization role allows them to access.&lt;/p&gt;
&lt;p&gt;Access is granted by the &lt;code&gt;fixed:plugins.app:reader&lt;/code&gt; role.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;To prevent users from seeing an app plugin, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/#prevent-viewers-from-accessing-an-app-plugin&#34;&gt;these permissions scenarios&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

]]></content><description>&lt;h1 id="types-of-plugins">Types of plugins&lt;/h1>
&lt;p>Grafana supports three types of plugins:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="/grafana/plugins/panel-plugins">Panels&lt;/a> - These plugins make it easy to create and add any kind of panel, to show your data, or improve your favorite dashboards.&lt;/li>
&lt;li>&lt;a href="/grafana/plugins/data-source-plugins">Data sources&lt;/a> - These plugins allow you to pull data from various data sources such as databases, APIs, log files, and so on, and display it in the form of graphs, charts, and dashboards in Grafana.&lt;/li>
&lt;li>&lt;a href="/grafana/plugins/app-plugins">Apps&lt;/a> - These plugins enable the bundling of data sources, panels, dashboards, and Grafana pages into a cohesive experience.&lt;/li>
&lt;/ul>
&lt;h2 id="panel-plugins">Panel plugins&lt;/h2>
&lt;p>Add new visualizations to your dashboard with panel plugins, such as the &lt;a href="/grafana/plugins/grafana-clock-panel">Clock&lt;/a>, &lt;a href="/grafana/plugins/boazreicher-mosaicplot-panel">Mosaic&lt;/a> and &lt;a href="/grafana/plugins/volkovlabs-variable-panel">Variable&lt;/a> panels.&lt;/p></description></item><item><title>Install a plugin</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-install/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-install/</guid><content><![CDATA[&lt;h1 id=&#34;install-a-plugin&#34;&gt;Install a plugin&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Installing plugins from the Grafana website into a Grafana Cloud instance will be removed during the first half of 2026.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a Grafana Cloud user, follow &lt;a href=&#34;#install-a-plugin-through-the-grafana-ui&#34;&gt;Install a plugin through the Grafana UI&lt;/a&gt; instead.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;install-a-plugin-through-the-grafana-ui&#34;&gt;Install a plugin through the Grafana UI&lt;/h2&gt;
&lt;p&gt;The most common way to install a plugin is through the Grafana UI.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In Grafana, click &lt;strong&gt;Administration &amp;gt; Plugins and data &amp;gt; Plugins&lt;/strong&gt; in the side navigation menu to view all plugins.&lt;/li&gt;
&lt;li&gt;Browse and find a plugin.&lt;/li&gt;
&lt;li&gt;Click the plugin&amp;rsquo;s logo.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Install&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can use use the following alternative methods to install a plugin depending on your environment or setup.&lt;/p&gt;
&lt;h2 id=&#34;install-a-plugin-using-grafana-cli&#34;&gt;Install a plugin using Grafana CLI&lt;/h2&gt;
&lt;p&gt;The Grafana CLI allows you to install, upgrade, and manage your Grafana plugins using a command line tool. For more information about Grafana CLI plugin commands, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/cli/#plugins-commands&#34;&gt;Plugin commands&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;install-a-plugin-from-a-zip-file&#34;&gt;Install a plugin from a ZIP file&lt;/h2&gt;
&lt;p&gt;This method is typically used for plugins not available in the Plugin Catalog or in environments without internet access.&lt;/p&gt;
&lt;p&gt;Download the archive containing the plugin assets, and install it by extracting the archive into the plugin directory. For example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;unzip my-plugin-0.2.0.zip -d YOUR_PLUGIN_DIR/my-plugin&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The path to the plugin directory is defined in the configuration file. For more information, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#plugins&#34;&gt;Configuration&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;install-a-plugin-using-grafana-configuration&#34;&gt;Install a plugin using Grafana configuration&lt;/h2&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This feature requires Grafana 11.5.0 or later.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can install plugins by adding the plugin ID to the &lt;code&gt;plugins.preinstall&lt;/code&gt; section in the Grafana configuration file. This prevents the plugin from being accidentally uninstalled and can be auto-updated. For more information, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#preinstall&#34;&gt;Configuration&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;install-a-plugin-in-air-gapped-environment&#34;&gt;Install a plugin in air-gapped environment&lt;/h2&gt;
&lt;p&gt;Plugin installation usually requires an Internet connection. You can check which endpoints are used during the installation on your instance and add them to your instance’s allow list.&lt;/p&gt;
&lt;p&gt;If this is not possible try installing a plugin using the &lt;a href=&#34;#install-a-plugin-using-grafana-cli&#34;&gt;Grafana CLI&lt;/a&gt; or as a &lt;a href=&#34;#install-a-plugin-from-a-zip-file&#34;&gt;ZIP file&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can fetch any plugin from Grafana.com API following the download link referenced in the API.
Here&amp;rsquo;s an example based on &lt;code&gt;grafana-lokiexplore-app&lt;/code&gt; plugins.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;https://grafana.com/api/plugins/grafana-lokiexplore-app&lt;/code&gt; and look for &lt;code&gt;links&lt;/code&gt; section&lt;/li&gt;
&lt;li&gt;Find a &lt;code&gt;download&lt;/code&gt; url which looks something like &lt;code&gt;https://grafana.com/api/plugins/grafana-lokiexplore-app/versions/1.0.2/download&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Use this URL to download the plugin ZIP file, which you can then install as described above.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;install-plugins-using-the-grafana-helm-chart&#34;&gt;Install plugins using the Grafana Helm chart&lt;/h2&gt;
&lt;p&gt;With the Grafana Helm chart, you can install plugins using one of the methods described in this section. All the YAML snippets install v1.9.0 of the Grafana OnCall App plugin and the Redis data source plugin. When installation is complete you&amp;rsquo;ll get a confirmation message indicating that the plugins were successfully installed.&lt;/p&gt;
&lt;h3 id=&#34;method-1-use-the-plugins-field&#34;&gt;Method 1: Use the &lt;code&gt;plugins&lt;/code&gt; field&lt;/h3&gt;
&lt;p&gt;Add the plugins you want to install as a list in your values file. For more information about the configuration, refer to &lt;a href=&#34;https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the Helm chart configuration reference&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;plugins:
  - https://grafana.com/api/plugins/grafana-oncall-app/versions/v1.9.0/download;grafana-oncall-app
  - redis-datasource&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;method-2-use-gf_plugins_preinstall_sync&#34;&gt;Method 2: Use &lt;code&gt;GF_PLUGINS_PREINSTALL_SYNC&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Add the following to your &lt;code&gt;values.yaml&lt;/code&gt; file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;env:
  # Format: &amp;lt;plugin ID&amp;gt;@[&amp;lt;plugin version&amp;gt;]@&amp;lt;url to plugin zip&amp;gt;
  GF_PLUGINS_PREINSTALL_SYNC: grafana-oncall-app@1.9.0@https://grafana.com/api/plugins/grafana-oncall-app/versions/v1.9.0/download

  # Or without version and URL (latest version will be used)
  # GF_PLUGINS_PREINSTALL_SYNC: grafana-oncall-app

  # Multiple plugins (comma-separated)
  # GF_PLUGINS_PREINSTALL_SYNC: grafana-oncall-app,redis-datasource&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;method-3-use-gf_plugins_install-deprecated-since-v1210&#34;&gt;Method 3: Use &lt;code&gt;GF_PLUGINS_INSTALL&lt;/code&gt; (Deprecated since v12.1.0)&lt;/h3&gt;
&lt;p&gt;Add the following to your &lt;code&gt;values.yaml&lt;/code&gt; file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;env:
  # Comma-separated list of plugin IDs
  GF_PLUGINS_INSTALL: grafana-oncall-app,redis-datasource&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="install-a-plugin">Install a plugin&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Installing plugins from the Grafana website into a Grafana Cloud instance will be removed during the first half of 2026.&lt;/p></description></item><item><title>Plugin signatures</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-sign/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-sign/</guid><content><![CDATA[&lt;h1 id=&#34;plugin-signatures&#34;&gt;Plugin signatures&lt;/h1&gt;
&lt;p&gt;Plugin signature verification, also known as &lt;em&gt;signing&lt;/em&gt;, is a security measure to make sure plugins haven&amp;rsquo;t been tampered with. Upon loading, Grafana checks to see if a plugin is signed or unsigned when inspecting and verifying its digital signature.&lt;/p&gt;
&lt;p&gt;Learn more at &lt;a href=&#34;/legal/plugins/&#34;&gt;plugin policies&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;how-does-verification-work&#34;&gt;How does verification work?&lt;/h2&gt;
&lt;p&gt;At startup, Grafana verifies the signatures of every plugin in the plugin directory.&lt;/p&gt;
&lt;p&gt;To see the result of this verification for each plugin, navigate to &lt;strong&gt;Configuration&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Plugins&lt;/strong&gt;. A signature can have any of the following signature status:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Signature status&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Core&lt;/td&gt;
              &lt;td&gt;Core plugin built into Grafana.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Invalid signature&lt;/td&gt;
              &lt;td&gt;The plugin has an invalid signature.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Modified signature&lt;/td&gt;
              &lt;td&gt;The plugin has changed since it was signed. This may indicate malicious intent.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Unsigned&lt;/td&gt;
              &lt;td&gt;The plugin is not signed.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Signed&lt;/td&gt;
              &lt;td&gt;The plugin signature was successfully verified.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;what-happens-if-a-plugin-is-not-signed&#34;&gt;What happens if a plugin is not signed?&lt;/h3&gt;
&lt;p&gt;If a plugin is unsigned, then Grafana neither loads nor starts it. Grafana also writes an error message to the server log:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;WARN[05-26|12:00:00] Some plugin scanning errors were found   errors=&amp;#34;plugin &amp;#39;&amp;lt;plugin id&amp;gt;&amp;#39; is unsigned, plugin &amp;#39;&amp;lt;plugin id&amp;gt;&amp;#39; has an invalid signature&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;plugin-signature-levels&#34;&gt;Plugin signature levels&lt;/h2&gt;
&lt;p&gt;All plugins are signed under a &lt;em&gt;signature level&lt;/em&gt;. The signature level determines how the plugin can be distributed.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;&lt;strong&gt;Plugin Level&lt;/strong&gt;&lt;/th&gt;
              &lt;th&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Private&lt;/td&gt;
              &lt;td&gt;&lt;p&gt;Private plugins are for use on your own Grafana. They may not be distributed to the Grafana community, and are not published in the Grafana catalog.&lt;/p&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Community&lt;/td&gt;
              &lt;td&gt;&lt;p&gt;Community plugins have dependent technologies that are open source and not for profit.&lt;/p&gt;&lt;p&gt;Community plugins are published in the official Grafana catalog, and are available to the Grafana community.&lt;/p&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Commercial&lt;/td&gt;
              &lt;td&gt;&lt;p&gt;Commercial plugins have dependent technologies that are closed source or commercially backed.&lt;/p&gt;&lt;p&gt;Commercial plugins are published on the official Grafana catalog, and are available to the Grafana community.&lt;/p&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;allow-unsigned-plugins&#34;&gt;Allow unsigned plugins&lt;/h2&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Unsigned plugins are not supported in Grafana Cloud.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;We strongly recommend that you don&amp;rsquo;t run unsigned plugins in your Grafana instance. However, if you&amp;rsquo;re aware of the risks and you still want to load an unsigned plugin, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#allow_loading_unsigned_plugins&#34;&gt;Configuration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve allowed loading of an unsigned plugin, then Grafana writes a warning message to the server log:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;WARN[06-01|16:45:59] Running an unsigned plugin   pluginID=&amp;lt;plugin id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If you&amp;rsquo;re developing a plugin, then you can enable development mode to allow all unsigned plugins.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;sign-a-plugin-youve-developed&#34;&gt;Sign a plugin you&amp;rsquo;ve developed&lt;/h2&gt;
&lt;p&gt;If you are a plugin developer and want to know how to sign your plugin, refer to &lt;a href=&#34;/developers/plugin-tools/publish-a-plugin/sign-a-plugin&#34;&gt;Sign a plugin&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="plugin-signatures">Plugin signatures&lt;/h1>
&lt;p>Plugin signature verification, also known as &lt;em>signing&lt;/em>, is a security measure to make sure plugins haven&amp;rsquo;t been tampered with. Upon loading, Grafana checks to see if a plugin is signed or unsigned when inspecting and verifying its digital signature.&lt;/p></description></item><item><title>Customize navigation placement of plugin pages</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/customize-nav-bar/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/customize-nav-bar/</guid><content><![CDATA[&lt;h1 id=&#34;customize-navigation-placement-of-app-plugin-pages&#34;&gt;Customize navigation placement of app plugin pages&lt;/h1&gt;
&lt;p&gt;By default, Grafana app plugins and their pages appear under the &amp;ldquo;More apps&amp;rdquo; section in the navigation menu. However, as a Grafana administrator, you might want to improve user experience by relocating specific pages or entire app plugins to more relevant sections of the navigation hierarchy. This guide shows you how to customize the placement of app plugin pages across different parts of your Grafana navigation menu.&lt;/p&gt;
&lt;h2 id=&#34;customize-app-and-page-navigation-placement&#34;&gt;Customize app and page navigation placement&lt;/h2&gt;
&lt;p&gt;You can change the location of your app plugin pages in two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Move the entire app plugin (with all its pages) to a different section&lt;/li&gt;
&lt;li&gt;Move specific pages from your app plugin to different sections&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;1-move-an-entire-app-plugin-to-a-different-section&#34;&gt;1. Move an entire app plugin to a different section&lt;/h3&gt;
&lt;p&gt;To relocate an entire app plugin to a different navigation section, use the &lt;code&gt;navigation.app_sections&lt;/code&gt; configuration in your Grafana configuration file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[navigation.app_sections]
org-example-app = explore 100&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Moves the app plugin with ID &lt;code&gt;org-example-app&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Places it in the &lt;code&gt;explore&lt;/code&gt; section&lt;/li&gt;
&lt;li&gt;Assigns it a sort weight of &lt;code&gt;100&lt;/code&gt; (determining its position within that section)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-move-individual-app-pages-to-different-sections&#34;&gt;2. Move individual app pages to different sections&lt;/h3&gt;
&lt;p&gt;To move specific pages from an app plugin to different navigation sections, use the &lt;code&gt;navigation.app_standalone_pages&lt;/code&gt; configuration:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[navigation.app_standalone_pages]
/a/org-example-app/dashboard-page = dashboards 200
/a/org-example-app/monitoring-page = alerting 50&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Moves the page with path &lt;code&gt;/a/org-example-app/dashboard-page&lt;/code&gt; to the &lt;code&gt;dashboards&lt;/code&gt; section with sort weight &lt;code&gt;200&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Moves the page with path &lt;code&gt;/a/org-example-app/monitoring-page&lt;/code&gt; to the &lt;code&gt;alerting&lt;/code&gt; section with sort weight &lt;code&gt;50&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;complete-example&#34;&gt;Complete example&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s a complete example that configures both the app placement and individual page placement in your Grafana configuration:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;# Move the entire app to the Explore section
[navigation.app_sections]
org-example-app = explore 50

# Move specific pages to their own sections
[navigation.app_standalone_pages]
/a/org-example-app/metrics = dashboards 100
/a/org-example-app/logs = alerting 75&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;find-page-paths&#34;&gt;Find page paths&lt;/h2&gt;
&lt;p&gt;To move individual pages you need to know their paths. To identify a plugin page path:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit the page in the browser and check the URL in the address bar.&lt;/li&gt;
&lt;li&gt;Page paths in app plugins follow the format &lt;code&gt;/a/PLUGIN_ID/PAGE_PATH&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;troubleshooting&#34;&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;If your navigation changes don&amp;rsquo;t appear:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify your configuration syntax is correct&lt;/li&gt;
&lt;li&gt;Ensure you&amp;rsquo;ve restarted Grafana after making changes&lt;/li&gt;
&lt;li&gt;Check that the plugin IDs and page paths exactly match what&amp;rsquo;s defined in your plugin&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="customize-navigation-placement-of-app-plugin-pages">Customize navigation placement of app plugin pages&lt;/h1>
&lt;p>By default, Grafana app plugins and their pages appear under the &amp;ldquo;More apps&amp;rdquo; section in the navigation menu. However, as a Grafana administrator, you might want to improve user experience by relocating specific pages or entire app plugins to more relevant sections of the navigation hierarchy. This guide shows you how to customize the placement of app plugin pages across different parts of your Grafana navigation menu.&lt;/p></description></item><item><title>Plugin backend communication</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-integrate/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-integrate/</guid><content><![CDATA[&lt;h1 id=&#34;allow-plugin-backend-communication&#34;&gt;Allow plugin backend communication&lt;/h1&gt;
&lt;p&gt;By default, you can only communicate with plugin backends remotely.&lt;/p&gt;
&lt;p&gt;However, you can configure your Grafana instance to let the frontends of installed plugins to directly communicate with the backends of other plugins installed locally. You can use this configuration to, for example, enable a 
    &lt;a href=&#34;/docs/grafana/v12.4/panels-visualizations/visualizations/canvas/&#34;&gt;canvas panel&lt;/a&gt; to call an application resource API that is permitted by the &lt;code&gt;actions_allow_post_url&lt;/code&gt; option.&lt;/p&gt;
&lt;h2 id=&#34;integrate-your-plugins&#34;&gt;Integrate your plugins&lt;/h2&gt;
&lt;p&gt;To enable backend communication between plugins, set the plugins you want to communicate with. In your configuration file (&lt;code&gt;grafana.ini&lt;/code&gt; or &lt;code&gt;custom.ini&lt;/code&gt; depending on your operating system), remove the semicolon to enable and then set the following configuration option:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;  actions_allow_post_url=&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This is a comma-separated list that uses glob matching.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To allow access to all plugins that have a backend, use:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;actions_allow_post_url=/api/plugins/*&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;To access the backend of only one plugin, use:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;actions_allow_post_url=/api/plugins/&amp;lt;GRAFANA_SPECIAL_APP&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="allow-plugin-backend-communication">Allow plugin backend communication&lt;/h1>
&lt;p>By default, you can only communicate with plugin backends remotely.&lt;/p>
&lt;p>However, you can configure your Grafana instance to let the frontends of installed plugins to directly communicate with the backends of other plugins installed locally. You can use this configuration to, for example, enable a
&lt;a href="/docs/grafana/v12.4/panels-visualizations/visualizations/canvas/">canvas panel&lt;/a> to call an application resource API that is permitted by the &lt;code>actions_allow_post_url&lt;/code> option.&lt;/p></description></item><item><title>Isolate plugin code with the Plugin Frontend Sandbox</title><link>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-frontend-sandbox/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/administration/plugin-management/plugin-frontend-sandbox/</guid><content><![CDATA[&lt;h1 id=&#34;isolate-plugin-code-with-the-plugin-frontend-sandbox&#34;&gt;Isolate plugin code with the Plugin Frontend Sandbox&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;Plugin Frontend Sandbox is currently in &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;public preview&lt;/a&gt;. Grafana Labs offers limited support, and breaking changes might occur prior to the feature being made generally available.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The Plugin Frontend Sandbox is a security feature that isolates plugin frontend code from the main Grafana application. When enabled, plugins run in a separate JavaScript context, which provides several security benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prevents plugins from modifying parts of the Grafana interface outside their designated areas&lt;/li&gt;
&lt;li&gt;Stops plugins from interfering with other plugins functionality&lt;/li&gt;
&lt;li&gt;Protects core Grafana features from being altered by plugins&lt;/li&gt;
&lt;li&gt;Prevents plugins from modifying global browser objects and behaviors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plugins running inside the Frontend Sandbox should continue to work normally without any noticeable changes in their intended functionality.&lt;/p&gt;
&lt;h2 id=&#34;when-to-use-the-plugin-frontend-sandbox&#34;&gt;When to use the Plugin Frontend Sandbox&lt;/h2&gt;
&lt;p&gt;We strongly recommend enabling the Frontend Sandbox for plugins that allow users to write custom JavaScript code for data visualization or manipulation, since they can potentially execute arbitrary JavaScript code in your Grafana instance. The sandbox provides an additional layer of security by restricting what this code can access and modify.&lt;/p&gt;
&lt;p&gt;These are examples of plugins where the sandbox is particularly useful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Panel plugins that allow users to write custom JavaScript code&lt;/li&gt;
&lt;li&gt;Plugins from untrusted sources&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;compatibility-and-requirements&#34;&gt;Compatibility and requirements&lt;/h2&gt;
&lt;p&gt;The following applies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Frontend Sandbox is available in public preview in Grafana &amp;gt;=11.5. It&amp;rsquo;s compatible with all types of plugins including app plugins, panel plugins, and data source plugins.&lt;/li&gt;
&lt;li&gt;Angular-based plugins are not supported.&lt;/li&gt;
&lt;li&gt;Plugins developed and signed by Grafana Labs are excluded and cannot be sandboxed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;enable-the-frontend-sandbox&#34;&gt;Enable the Frontend Sandbox&lt;/h2&gt;
&lt;p&gt;For self-hosted Grafana installations, add the plugin IDs you want to sandbox in the &lt;code&gt;security&lt;/code&gt; section using the &lt;code&gt;enable_frontend_sandbox_for_plugins&lt;/code&gt; configuration option.&lt;/p&gt;
&lt;p&gt;For Grafana Cloud users, you can simply use the toggle switch in the plugin catalog page to enable or disable the sandbox for each plugin. By default, the sandbox is disabled for all plugins.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Enabling the Frontend Sandbox might impact the performance of certain plugins. Only disable the sandbox if you fully trust the plugin and understand the security implications.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;troubleshooting&#34;&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;If a plugin isn&amp;rsquo;t functioning correctly with the Frontend Sandbox enabled:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Temporarily disable the sandbox for that specific plugin&lt;/li&gt;
&lt;li&gt;Test if the plugin works correctly without the sandbox&lt;/li&gt;
&lt;li&gt;If the plugin only works with the sandbox disabled, ensure you trust the plugin source before continuing to use it without sandbox protection&lt;/li&gt;
&lt;li&gt;Report any sandbox-related issues to the plugin developer&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="isolate-plugin-code-with-the-plugin-frontend-sandbox">Isolate plugin code with the Plugin Frontend Sandbox&lt;/h1>
&lt;div class="admonition admonition-caution">&lt;blockquote>&lt;p class="title text-uppercase">Caution&lt;/p>&lt;p>Plugin Frontend Sandbox is currently in &lt;a href="/docs/release-life-cycle/">public preview&lt;/a>. Grafana Labs offers limited support, and breaking changes might occur prior to the feature being made generally available.&lt;/p></description></item></channel></rss>