"Forking" native plugins for standalone build

Disclaimer: this is actually very similar to what’s already asked in namesake questions on this community: “Modifying Native plugins” - I’m simply resting my case here and trying to find out if there’s a particular reason for the current native plugin structure bundled in grafana.

I’m quite a fan of the “everything-is-a-plugin” philosophy to extend Grafana, but there’s something that grins my gears: why builtin panels and data-sources are not like the rest of the plugins out there - i.e. why don’t native plugins have a simple way to be re-built outside grafana core itself?

A couple of weeks ago I was struggling to find an elegant solution to this problem I’m still having: “Using 3rd party's Grafana datasource proxy endpoint as InfluxDB datasource” - So I decided to try and “fork” the native InfluxDB datasource somehow to include a small extra fixture to handle the authentication mess I need to solve. I searched under the grafana orga and the only “influx-db” repo I could find was influxdb-flux-datasource which is close but not the actual thing I was expecting. So I went and used the homemade solution by initializing a new React plugin with the grafana-toolkit plugin:create utility and the right template for that, copy-pasted the code under https://github.com/grafana/grafana/tree/master/public/app/plugins/datasource/influxdb and ran the plugin:build subcommand hoping that I was good to go, but instead realized I was being too naive :sweat_smile:.

Why don’t native plugins have a self-contained build procedure? (even when they do have their own entity on the plugins catalog).

1 Like