<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Developers on Grafana Labs</title><link>https://grafana.com/docs/grafana/v8.4/developers/</link><description>Recent content in Developers on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v8.4/developers/index.xml" rel="self" type="application/rss+xml"/><item><title>Angular support deprecation</title><link>https://grafana.com/docs/grafana/v8.4/developers/angular_deprecation/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/developers/angular_deprecation/</guid><content><![CDATA[&lt;h1 id=&#34;angular-support-deprecation&#34;&gt;Angular support deprecation&lt;/h1&gt;
&lt;p&gt;Angular plugin support is deprecated, and it will be removed in a future release. There are still many community plugins that depend on Grafana’s angular plugin support for them to work. The same is true for many internal (private) plugins developed over the years by Grafana users. Grafana version 9 will have a server configuration option, global for the whole instance, that will control if angular plugin support is available or not. By default, angular plugin support will be disabled.&lt;/p&gt;
&lt;h2 id=&#34;why-are-we-deprecating-angular-support&#34;&gt;Why are we deprecating angular support?&lt;/h2&gt;
&lt;p&gt;AngularJS is an old frontend framework that stopped active development many years ago. As a result, it is a security risk. AngularJS also requires unsafe-eval in the CSP (Content Security Policy) settings which also reduces the security level of how javascript is executed in the browser.&lt;/p&gt;
&lt;h2 id=&#34;when-will-angular-plugins-stop-working&#34;&gt;When will angular plugins stop working?&lt;/h2&gt;
&lt;p&gt;In Grafana version 9 coming in June 2022, all angular plugins will stop working unless a new server configuration option is turned on. If you still depend on community or internally developed plugins that require AngularJS then you will have to turn this option on.&lt;/p&gt;
&lt;p&gt;This is a good time to start working on migrating plugins to React.&lt;/p&gt;
&lt;p&gt;Our plan is to fully remove angular plugin support in version 10 released in 2023. Meaning all plugins that do depend on angular will stop working and this temporary option to enable it introduced in v9 will be removed.&lt;/p&gt;
&lt;h2 id=&#34;how-do-i-migrate-an-angular-plugin-to-react&#34;&gt;How do I migrate an angular plugin to React?&lt;/h2&gt;
&lt;p&gt;Depending on if it’s a data source plugin, panel plugin, or app plugin the process will differ.&lt;/p&gt;
&lt;p&gt;For panels, the rendering logic could in some cases be easily preserved but all options need to be redone to use the declarative options framework. For data source plugins the query editor and config options will likely need a total rewrite.&lt;/p&gt;
&lt;h3 id=&#34;links&#34;&gt;Links&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana/latest/developers/plugins/migration-guide/#migrate-a-plugin-from-angular-to-react&#34;&gt;Migrate Angular to React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/tutorials/build-a-panel-plugin/&#34;&gt;Build a panel plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/tutorials/build-a-data-source-plugin/&#34;&gt;Build a data source plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="angular-support-deprecation">Angular support deprecation&lt;/h1>
&lt;p>Angular plugin support is deprecated, and it will be removed in a future release. There are still many community plugins that depend on Grafana’s angular plugin support for them to work. The same is true for many internal (private) plugins developed over the years by Grafana users. Grafana version 9 will have a server configuration option, global for the whole instance, that will control if angular plugin support is available or not. By default, angular plugin support will be disabled.&lt;/p></description></item><item><title>Contribute to Grafana</title><link>https://grafana.com/docs/grafana/v8.4/developers/contribute/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/developers/contribute/</guid><content><![CDATA[&lt;h1 id=&#34;contribute-to-grafana&#34;&gt;Contribute to Grafana&lt;/h1&gt;
&lt;p&gt;This page lists resources for developers who want to contribute to the Grafana software ecosystem or build plugins for Grafana.&lt;/p&gt;
&lt;h2 id=&#34;general-resources&#34;&gt;General resources&lt;/h2&gt;
&lt;p&gt;These resources are useful for all developers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/CONTRIBUTING.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Contributing to Grafana&lt;/a&gt;: Start here to learn how you can contribute your skills to make Grafana even better.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/developer-guide.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Developer guide&lt;/a&gt;: A guide to help you get started developing Grafana software, includes instructions for how to configure Grafana for development.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/documentation.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Contributing to documentation&lt;/a&gt;: A guide to help you contribute to Grafana documentation, includes links to beginner-friendly issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/tree/main/contribute/architecture&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Architecture guides&lt;/a&gt;: These guides explain Grafana’s background architecture.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/create-pull-request.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Create a pull request&lt;/a&gt;: A guide for new contributors about how to create your first Grafana pull request.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/docs/grafana/next/http_api/&#34;&gt;REST APIs&lt;/a&gt; allow you to interact programmatically with the Grafana backend.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;best-practices-and-style&#34;&gt;Best practices and style&lt;/h2&gt;
&lt;p&gt;Our &lt;a href=&#34;https://github.com/grafana/grafana/tree/main/contribute/style-guides&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;style guides&lt;/a&gt; outline Grafana style for frontend, backend, documentation, and more, including best practices. Please read through them before you start editing or coding!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/backend.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Backend style guide&lt;/a&gt; explains how we want to write Go code in the future.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/documentation-style-guide.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Documentation style guide&lt;/a&gt; applies to all documentation created for Grafana products.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/e2e.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;End to end test framework&lt;/a&gt; provides guidance for Grafana e2e tests.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/frontend.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Frontend style guide&lt;/a&gt; provides rules and guidance on developing in React for Grafana.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/redux.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Redux framework&lt;/a&gt; explains how Grafana handles Redux boilerplate code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/styling.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Styling Grafana&lt;/a&gt; expands on styling React components with Emotion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/grafana/blob/main/contribute/style-guides/themes.md&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Theming Grafana&lt;/a&gt; explains how to use themes and ThemeContext in Grafana code.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="contribute-to-grafana">Contribute to Grafana&lt;/h1>
&lt;p>This page lists resources for developers who want to contribute to the Grafana software ecosystem or build plugins for Grafana.&lt;/p>
&lt;h2 id="general-resources">General resources&lt;/h2>
&lt;p>These resources are useful for all developers.&lt;/p></description></item><item><title>Contributor License Agreement (CLA)</title><link>https://grafana.com/docs/grafana/v8.4/developers/cla/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/developers/cla/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-labs-software-grant-and-contributor-license-agreement-agreement&#34;&gt;Grafana Labs Software Grant and Contributor License Agreement (&amp;ldquo;Agreement&amp;rdquo;)&lt;/h1&gt;
&lt;p&gt;This agreement is based on the Apache Software Foundation Contributor License Agreement.
(v r190612)&lt;/p&gt;
&lt;p&gt;Thank you for your interest in software projects stewarded by Raintank, Inc. dba Grafana Labs (“Grafana Labs”). In order to clarify the intellectual property license
granted with Contributions from any person or entity, Grafana Labs
must have a Contributor License Agreement (CLA) on file that has been
agreed to by each Contributor, indicating agreement to the license terms
below. This license is for your protection as a Contributor as well
as the protection of Grafana Labs and its users; it does not change
your rights to use your own Contributions for any other purpose.
This Agreement allows an individual to contribute to Grafana Labs on that individual’s own behalf, or an entity (the &amp;ldquo;Corporation&amp;rdquo;) to
submit Contributions to Grafana Labs, to authorize Contributions
submitted by its designated employees to Grafana Labs, and to grant
copyright and patent licenses thereto.&lt;/p&gt;
&lt;p&gt;You accept and agree to the following terms and conditions for Your
present and future Contributions submitted to Grafana Labs. Except
for the license granted herein to Grafana Labs and recipients of
software distributed by Grafana Labs, You reserve all right, title,
and interest in and to Your Contributions.&lt;/p&gt;
&lt;h2 id=&#34;1-definitions&#34;&gt;1. Definitions.&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;You&amp;rdquo; (or &amp;ldquo;Your&amp;rdquo;) shall mean the copyright owner or legal entity
authorized by the copyright owner that is making this Agreement
with Grafana Labs. For legal entities, the entity making a
Contribution and all other entities that control, are controlled by,
or are under common control with that entity are considered to be a
single Contributor. For the purposes of this definition, &amp;ldquo;control&amp;rdquo;
means (i) the power, direct or indirect, to cause the direction or
management of such entity, whether by contract or otherwise, or
(ii) ownership of fifty percent (50%) or more of the outstanding
shares, or (iii) beneficial ownership of such entity.
&amp;ldquo;Contribution&amp;rdquo; shall mean any work, as well as
any modifications or additions to an existing work, that is intentionally
submitted by You to Grafana Labs for inclusion in, or
documentation of, any of the products owned or managed by Grafana Labs (the &amp;ldquo;Work&amp;rdquo;). For the purposes of this definition,
&amp;ldquo;submitted&amp;rdquo; means any form of electronic, verbal, or written
communication sent to Grafana Labs or its representatives,
including but not limited to communication on electronic mailing
lists, source code control systems (such as GitHub), and issue tracking systems
that are managed by, or on behalf of, Grafana Labs for the
purpose of discussing and improving the Work, but excluding
communication that is conspicuously marked or otherwise designated
in writing by You as &amp;ldquo;Not a Contribution.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;2-grant-of-copyright-license-subject-to-the-terms-and-conditions&#34;&gt;2. Grant of Copyright License. Subject to the terms and conditions&lt;/h2&gt;
&lt;p&gt;of this Agreement, You hereby grant to Grafana Labs and to
recipients of software distributed by Grafana Labs a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare derivative works of,
publicly display, publicly perform, sublicense, and distribute
Your Contributions and such derivative works.&lt;/p&gt;
&lt;h2 id=&#34;3-grant-of-patent-license-subject-to-the-terms-and-conditions-of&#34;&gt;3. Grant of Patent License. Subject to the terms and conditions of&lt;/h2&gt;
&lt;p&gt;this Agreement, You hereby grant to Grafana Labs and to recipients
of software distributed by Grafana Labs a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable (except as
stated in this section) patent license to make, have made, use,
offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by You that are necessarily infringed by Your Contribution(s)
alone or by combination of Your Contribution(s) with the Work to
which such Contribution(s) were submitted. If any entity institutes
patent litigation against You or any other entity (including a
cross-claim or counterclaim in a lawsuit) alleging that your
Contribution, or the Work to which you have contributed, constitutes
direct or contributory patent infringement, then any patent licenses
granted to that entity under this Agreement for that Contribution or
Work shall terminate as of the date such litigation is filed.&lt;/p&gt;
&lt;h2 id=&#34;4-you-represent-that-you-are-legally-entitled-to-grant-the-above&#34;&gt;4. You represent that You are legally entitled to grant the above&lt;/h2&gt;
&lt;p&gt;license. If You are an individual, and if Your employer(s) has rights to intellectual property
that you create that includes Your Contributions, you represent
that You have received permission to make Contributions on behalf
of that employer, or that Your employer has waived such rights for
your Contributions to Grafana Labs. If You are a Corporation, any individual who makes a contribution from an account associated with You will be considered authorized to Contribute on Your behalf.&lt;/p&gt;
&lt;h2 id=&#34;5-you-represent-that-each-of-your-contributions-is-your-original&#34;&gt;5. You represent that each of Your Contributions is Your original&lt;/h2&gt;
&lt;p&gt;creation (see section 7 for submissions on behalf of others).&lt;/p&gt;
&lt;h2 id=&#34;6-you-are-not-expected-to-provide-support-for-your-contributions&#34;&gt;6. You are not expected to provide support for Your Contributions,&lt;/h2&gt;
&lt;p&gt;except to the extent You desire to provide support. You may provide
support for free, for a fee, or not at all. Unless required by
applicable law or agreed to in writing, You provide Your
Contributions on an &amp;ldquo;AS IS&amp;rdquo; BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied, including, without
limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;
&lt;h2 id=&#34;7-should-you-wish-to-submit-work-that-is-not-your-original-creation&#34;&gt;7. Should You wish to submit work that is not Your original creation,&lt;/h2&gt;
&lt;p&gt;You may submit it to Grafana Labs separately from any
Contribution, identifying the complete details of its source and
of any license or other restriction (including, but not limited
to, related patents, trademarks, and license agreements) of which
you are personally aware, and conspicuously marking the work as
&amp;ldquo;Submitted on behalf of a third-party: [named here]&amp;rdquo;.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-labs-software-grant-and-contributor-license-agreement-agreement">Grafana Labs Software Grant and Contributor License Agreement (&amp;ldquo;Agreement&amp;rdquo;)&lt;/h1>
&lt;p>This agreement is based on the Apache Software Foundation Contributor License Agreement.
(v r190612)&lt;/p>
&lt;p>Thank you for your interest in software projects stewarded by Raintank, Inc. dba Grafana Labs (“Grafana Labs”). In order to clarify the intellectual property license
granted with Contributions from any person or entity, Grafana Labs
must have a Contributor License Agreement (CLA) on file that has been
agreed to by each Contributor, indicating agreement to the license terms
below. This license is for your protection as a Contributor as well
as the protection of Grafana Labs and its users; it does not change
your rights to use your own Contributions for any other purpose.
This Agreement allows an individual to contribute to Grafana Labs on that individual’s own behalf, or an entity (the &amp;ldquo;Corporation&amp;rdquo;) to
submit Contributions to Grafana Labs, to authorize Contributions
submitted by its designated employees to Grafana Labs, and to grant
copyright and patent licenses thereto.&lt;/p></description></item></channel></rss>