Signing is Plugin in private mode

I would like to sign my self-written plugin (panel). For this purpose I created a Grafana Cloud API Key and then in the console I used the signing command

npx @grafana/toolkit plugin:sign --rootUrls http://localhost

executed. Supposedly the signing was successful (message: Signed successfully), a manifest file was also created, but Grafana reports an “Invalid signature”.

The log file says the following:

t=2021-09-16T12:52:18+0200 lvl=warn msg="Could not find root URL that matches running application URL" logger=plugins plugin=double-d-it-multistat-panel appUrl=http://localhost:80/ rootUrls=[http://localhost/]

t=2021-09-16T12:52:18+0200 lvl=warn msg="Some plugin scanning errors were found" logger=plugins errors="plugin 'double-d-it-multistat-panel' has an invalid signature"

Grafana is in the current version 8.1.3 on a Windows server 2019

Hi, in a simple windows configuration I was able just instructing this command
npx @grafana/toolkit plugin:sign --rootUrls http://localhost:3000
So, try including the port within the command. Be sure that your account slag match your plugin ID prefix

Now I have the similar problem in a little more complex situation that I’m not able to fix. I hope someone can help me. I need to privately sign the mqtt datasourse and this is my environment:
grafana 8.1.4, debian 11, nginix

---- my /etc/grafana/grafana.ini:
http_port 28000
domain = my_domaintest.org
root_url = %(protocol)s://%(domain)s:%(http_port)s/data/
plugins = /home/user/grafana/plugins
plugin_admin_enabled = true

— nginx configuration (everything is working fine, and use https protocol)
location /data/ {
proxy_pass http://localhost:28000/;

— I create my API with PluginPublisher role and the the ID within package.json match my account slug.

Restarting grafana I always get Invalid signature.
Tthis is the log of my last try

t=2021-09-17T14:44:00+0200 lvl=info msg=“Shutdown started” logger=server reason=“System signal: terminated”
t=2021-09-17T14:44:27+0200 lvl=info msg=“Starting Grafana” logger=server version=8.1.4 commit=6855cdff7c branch=HEAD compiled=2021-09-16T09:22:09+0200
t=2021-09-17T14:44:27+0200 lvl=info msg=“Config loaded from” logger=settings file=/usr/share/grafana/conf/defaults.ini
t=2021-09-17T14:44:27+0200 lvl=info msg=“Config loaded from” logger=settings file=/etc/grafana/grafana.ini
t=2021-09-17T14:44:27+0200 lvl=info msg=“Config overridden from command line” logger=settings arg=“default.paths.data=/var/lib/grafana”
t=2021-09-17T14:44:27+0200 lvl=info msg=“Config overridden from command line” logger=settings arg=“default.paths.logs=/var/log/grafana”
t=2021-09-17T14:44:27+0200 lvl=info msg=“Config overridden from command line” logger=settings arg=“default.paths.plugins=/var/lib/grafana/plugins”
t=2021-09-17T14:44:27+0200 lvl=info msg=“Config overridden from command line” logger=settings arg=“default.paths.provisioning=/etc/grafana/provisioning”
t=2021-09-17T14:44:27+0200 lvl=info msg=“Path Home” logger=settings path=/usr/share/grafana
t=2021-09-17T14:44:27+0200 lvl=info msg=“Path Data” logger=settings path=/var/lib/grafana
t=2021-09-17T14:44:27+0200 lvl=info msg=“Path Logs” logger=settings path=/var/log/grafana
t=2021-09-17T14:44:27+0200 lvl=info msg=“Path Plugins” logger=settings path=/home/user/grafana/plugins
t=2021-09-17T14:44:27+0200 lvl=info msg=“Path Provisioning” logger=settings path=/etc/grafana/provisioning
t=2021-09-17T14:44:27+0200 lvl=info msg=“App mode production” logger=settings
t=2021-09-17T14:44:27+0200 lvl=info msg=“Writing PID file” logger=server path=/var/run/grafana/grafana-server.pid pid=6781
t=2021-09-17T14:44:27+0200 lvl=info msg=“Connecting to DB” logger=sqlstore dbtype=sqlite3
t=2021-09-17T14:44:27+0200 lvl=info msg=“Starting DB migrations” logger=migrator
t=2021-09-17T14:44:27+0200 lvl=info msg=“migrations completed” logger=migrator performed=0 skipped=385 duration=1.461378ms
t=2021-09-17T14:44:27+0200 lvl=info msg=“Validated license token” logger=licensing appURL=http://my_domaintest.org:28000/data/ source=disk status=NotFound
t=2021-09-17T14:44:27+0200 lvl=info msg=“Starting plugin search” logger=plugins
t=2021-09-17T14:44:27+0200 lvl=info msg=“Registering plugin” logger=plugins id=input
t=2021-09-17T14:44:27+0200 lvl=warn msg=“Could not find root URL that matches running application URL” logger=plugins plugin=grafana-mqtt-datasource appUrl=http://my_domaintest.org:28000/data/ rootUrls=[http://my_domaintest.org:28000/data/]
t=2021-09-17T14:44:27+0200 lvl=info msg=“Registering plugin” logger=plugins id=aidanmountford-html-panel
t=2021-09-17T14:44:27+0200 lvl=info msg=“Registering plugin” logger=plugins id=yesoreyeram-boomtheme-panel
t=2021-09-17T14:44:27+0200 lvl=warn msg=“Some plugin scanning errors were found” logger=plugins errors=“plugin ‘grafana-mqtt-datasource’ has an invalid signature”
t=2021-09-17T14:44:27+0200 lvl=info msg=“Live Push Gateway initialization” logger=live.push_http
t=2021-09-17T14:44:27+0200 lvl=info msg=“HTTP Server Listen” logger=http.server address=[::]:28000 protocol=http subUrl=/data socket=
t=2021-09-17T14:44:27+0200 lvl=warn msg=“Scheduling and sending of reports disabled, SMTP is not configured and enabled. Configure SMTP to enable.” logger=report
t=2021-09-17T14:44:39+0200 lvl=info msg=“Request Completed” logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=5.90.160.85 time_ms=5 size=0 referer=
t=2021-09-17T14:44:39+0200 lvl=info msg=“Initialized channel handler” logger=live channel=grafana/dashboard/uid/hDZv28Mnz address=grafana/dashboard/uid/hDZv28Mnz
t=2021-09-17T14:44:44+0200 lvl=info msg=“Request Completed” logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=5.90.160.85 time_ms=1 size=0 referer=
t=2021-09-17T14:44:56+0200 lvl=info msg=“Request Completed” logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=5.90.160.85 time_ms=1 size=0 referer=
t=2021-09-17T14:45:56+0200 lvl=info msg=“Request Completed” logger=context userId=1 orgId=1 uname=admin method=GET path=/api/gnet/plugins/tempo status=404 remote_addr=5.90.160.85 time_ms=117 size=57 referer=https://my_domaintest.org/r>

Thanks a lot

if you just want to start the development, you can add an environment variable to skip the signing plugin:

GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=<your_plugin_id>

Yes I know, but it’s mandatory not to have unsigned plugin :frowning:
And any it’s better to understand why this happens. Moreover, I can’t understand why the same procedure on windows is ok and I don’t have this problem