Commit Graph
100 Commits
Author SHA1 Message Date
Will Browne ddb7406caa Plugins: Add running method to interface (#78326)
* add running to interface

* add context
2023-11-17 13:52:31 +01:00
Will Browne b3ad61e180 Plugins: Add plugin version field to proto interface (#78213)
add plugin version
2023-11-15 16:53:30 +01:00
Will Browne 26bcfe300f Plugins: Follow root level dist and siblings when walking file system (#78042)
* simplify

* add comments

* tidy up

* remove line

* update comment

* fix pfs test

* fix err import

* delete code
2023-11-14 10:31:46 +01:00
Will Browne 4299efbc56 Plugins: Expose PID through proto interface (#77821)
* expose PID thru interface

* apply PR feedback

* simplify

* add read lock
2023-11-13 14:41:53 +01:00
Will Browne 7d2d5fbe89 Plugins: Add referer and user login params to plugin CDN redirect logs (#77942)
add referer and user
2023-11-10 11:52:06 +01:00
Will Browne 662bc286c2 Plugins: Bump go plugin sdk to 0.191.0 (#77773)
* bump

* bump plugin sdk
2023-11-07 11:52:31 +01:00
Will Browne 19cd7dbae1 Plugins: Add API for creating pluginv2 proto client (#77492)
* first pass

* remove client from plugin

* fix wire

* update

* undo import change

* add opts

* add check

* tidy

* re-use logic

* rollback changes
2023-11-03 14:01:08 +01:00
Will Browne 9d92818cae Plugins: Update PDC pattern from latest plugin SDK changes (#76576)
* update with sdk

* do sql

* fix core plugins

* fix proxy settings

* bump SDK version

* tidy

* enable pdc for test

* add codeowners

* bump dep

* go mod tidy

* bump SDK
2023-10-16 16:40:04 +02:00
Will Browne 151f6d6216 Plugins: Update PDC pattern from latest plugin SDK changes (#76036)
* update with sdk

* do sql

* fix core plugins

* fix proxy settings

* bump SDK version

* tidy

* enable pdc for test

* add codeowners
2023-10-13 14:42:15 +02:00
Will Browne 8a33a6f958 Plugin: Accept backend plugin process command args (#76037)
accept args
2023-10-05 15:15:57 +02:00
Will Browne d6db9eaeb2 Plugins: Make sure feature toggles config value is deterministic (#75249)
* make sure feature toggle config vals are deterministic

* fix nil pointer

* undo changes

* fix condition

* add tests
2023-09-22 13:56:48 +02:00
Will Browne de2a107efa Chore: Fix slug cfg name (#75235)
fix cfg name
2023-09-21 15:59:49 +03:00
Will Browne e9e0e321b6 Chore: Add stack ID + slug to cfg (#75227)
* add stack ID + slug to cfg

* add to environment section
2023-09-21 14:45:43 +02:00
Will Browne 7fca1bde54 Plugins: Set grafana config, plugin version and user agent on plugin requests (#75171)
* first pass

* fixup

* remove test line

* fix tests

* use new fields

* fix imports + formatting

* fix tests

* rollback changes

* undo whitespace

* apply pr feedback
2023-09-21 11:33:31 +02:00
Will Browne e855efb13d Plugins: Move store and plugin dto to pluginsintegration (#74655)
move store and plugin dto
2023-09-11 13:59:24 +02:00
Will Browne 8d04f1daea Chore: Bump grafana azure sdk to latest (1.8.1) (#74529)
bump grafana azure sdk to latest
2023-09-07 16:55:23 +02:00
Will Browne 557b1654f9 Plugins: Ensure service registration occurs in right order (#74001)
* make sure service registration occurs in right order

* fix test
2023-08-29 14:55:08 +02:00
Will Browne 3c50db328d Plugins: Make Installer responsible for removing plugins from file system (#73323)
* installer is responsible for removing from file system

* take plugin as arg

* remove resolve step

* return plugin in test
2023-08-16 15:44:20 +02:00
Will Browne 75b0788377 Plugins: Remove registry dependency from process manager (#73241)
simplify
2023-08-16 10:46:00 +02:00
Will Browne c830c01e61 Plugins: Remove unnecessary error result from env vars interface (#73224)
* remove error from interface

* fix test
2023-08-14 14:17:54 +02:00
Will Browne c5e9a82ccb Plugins: Do not fail bootstrap stage if single decorate step fails (#73147)
* don't fail all if decorate step fails

* fix casing

* include err too

* cover pluginsintegration too
2023-08-10 14:46:38 +02:00
Will Browne d29f4a8f76 Plugins: Add context to StaticRouteResolver and ErrorResolver interfaces (#73121)
* add ctx

* fix tests
2023-08-10 10:32:12 +02:00
Will Browne 72da44db0e Plugins: Add validation stage to plugin loader pipeline (#73053)
* first pass

* change validation signature

* err tracking

* fix

* undo golden

* 1 more

* fix

* adjust doc

* add test helper

* fix linter
2023-08-09 18:25:28 +02:00
Will Browne 98f827537b Plugins: Add remaining steps to inititialization stage (#72894)
add remainder of init steps
2023-08-04 12:35:57 +02:00
Will BrowneandGiuseppe Guerra 60b4a0b2a4 Plugins: Add termination stage to plugin loader pipeline (#72822)
* add termination stage

* uid -> pluginID (for now)

* also fix fakes

* add simple test

* Fix logger name

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>

* inline stop func call

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>

---------

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
2023-08-04 11:57:49 +02:00
Will Browne ad2705fa0b Plugins: Add inititialization stage to plugin loader pipeline (#72667)
* first pass

* migrate tests

* simplify

* fix comments

* fix linter

* nil checks

* remove comment
2023-08-02 16:29:12 +00:00
Will Browne ec6412bcca Plugins: Use plugins config to source app URL (#72490)
* use plugins config for app URL

* merge with main

* add missing file

* add fg

* fix tests
2023-07-28 15:18:25 +02:00
Will Browne 758d9884bc Plugins: Plugins loader pipeline (#71438)
* discovery

* flesh out

* add docs

* remove unused func

* bootstrap stage

* fix docs

* update docs

* undo unnecessary changes

* add end tag

* update doc

* fix linter

* fix

* tidy

* update docs

* add class to filter func

* apply PR feedback

* fix test
2023-07-27 15:29:13 +02:00
Will Browne b59ca7fb22 Plugins: Only configure plugin proxy transport once (#71735)
only configure plugin proxy transport once
2023-07-17 13:37:03 +02:00
Will Browne a8577c21ba Plugins: Migrate PluginStore mock to pre-existing fakes package (#71664)
* migrate to existing fakes package

* fix imports
2023-07-17 10:21:44 +00:00
Will Browne 162dde5bdd Plugins: Use suffix for plugin directory (#71375)
* plugin dir suffix

* fix whitespace

* fix cli

* fix tests

* fixup

* simplify

* undo uninstall changes
2023-07-14 11:49:05 +02:00
Will Browne 9e999b455b Plugins: Remove redundant dupe checker (#71564)
remove useless dupe checker
2023-07-14 10:24:59 +02:00
Will Browne 440596bf52 Plugins: Fix info log statement when installing plugin dependencies (#71298)
fix info log statement
2023-07-11 10:27:40 +02:00
Will Browne 1274979f3f Plugins: Remove unused config field from SignatureCalculator (#71297)
remove unused cfg field
2023-07-11 08:52:02 +02:00
4818568c65 Chore: Convert background service registry to dskit module (#64062)
* Chore: Add initial support for deployment modes

* revert CLI changes and start modules independently

* add modules to codeowners

* additional comments

* add Engine and Manager interface to fix test issues

* convert background service registry to dskit module

* remove extra context from serviceListener logger

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>

* Remove whitespace

* fix import

* undo ide changes

* only register All by default

* with registry

* add test

* add comments

* re-add debug log

* fix import

* reorganize arg

* undo kind changes

* add provide service test

* fix import

* rejig systemd calls

* update codeowners

---------

Co-authored-by: Todd Treece <todd.treece@grafana.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2023-07-06 14:45:47 +02:00
Will Browne a9b9b96c61 Plugins: Update backend plugin debugging instructions (#70239)
* Update development-with-local-grafana.md

Reflect latest changes to backend plugin debugging

* bump SDK

* fix build cmd
2023-06-27 10:08:13 +02:00
Will Browne 9f18e0ccf3 Plugins: Re-use plugin registry mocks from fakes package (#69840)
re-use mocks from fakes package
2023-06-09 12:08:26 +02:00
Will Browne 91b0cdc871 Plugins: Account for nil user when constructing plugin context (#69811)
cater for nil user
2023-06-08 19:36:41 +03:00
Will Browne 624777258b Plugins: Refactor creation of plugin context to dedicated service (#66451)
* first pass

* fix tests

* return errs

* change signature

* tidy

* delete unnecessary fields from test

* tidy

* fix tests

* simplify

* separate error check in API

* apply nits
2023-06-08 13:59:51 +02:00
Will Browne a221e1d226 Plugins: Standardize Golang enum naming convention (#69449)
* standardize enum pattern

* fix up
2023-06-08 12:21:19 +02:00
Will Browne 1fd4953833 Plugins: Optimize creation of Golang errors and slices (#69448)
* tidy up

* fix tests
2023-06-07 17:22:43 +02:00
Will Browne 12dc56ad0c Plugins: Refactor plugin repository API (#69063)
* support grafana wildcard version

* undo go.mod changes

* tidy

* flesh out tests

* refactor

* add tests

* tidy naming

* undo some changes

* split interfaces

* separation

* update new signature

* simplify

* update var namings

* unexport types

* introduce opts pattern

* reorder test

* fix compat checks

* middle ground

* unexport client

* move back

* fix tests

* inline logger

* make client usable

* use fake logger

* tidy errors

* remove unused types

* fix test

* review fixes

* rework compatibility

* adjust installer

* fix tests

* opts => cfg

* remove unused var

* fix var name
2023-05-30 11:48:52 +02:00
Will Browne ae373c662c Plugins: Refactor env vars to dedicated service (#68960)
* add env vars service

* fix tests

* fix more tests
2023-05-24 14:02:14 +02:00
Will Browne 286b9e08e9 Plugins: Bump Plugin SDK version and address instance management breaking changes (#68900)
* bump sdk and propagate ctx

* fix tests
2023-05-24 10:19:34 +02:00
Will Browne bb6ec1470d Plugins: Correct the usage of mutex for gRPC plugin implementation (#68555)
correct usage of mutex
2023-05-17 11:50:25 +02:00
Will Browne e0e2535c96 Plugins: Tidy up CLI code (#67813)
* more tidying

* move some things around

* more tidying

* fix linter
2023-05-08 10:58:47 +02:00
Will Browne fd28c8490f Plugins: Tidy up CLI code (#67723)
* remove dead code and use pkg/plugins for uninstall process

* fix linter

* remove unnecessary cruft
2023-05-04 10:52:09 +02:00
Will Browne 6cd042ed16 Plugins: Remove dead CLI code and use pkg/plugins for uninstall process (#67711)
* remove dead code and use pkg/plugins for uninstall process

* fix linter
2023-05-03 14:52:57 +02:00
Will Browne 739c7f1c68 Plugins: Simplify plugin file removal (#66115)
* make explicit class check when attempting to remove plugin

* simplify plugin file tracking

* fix test

* apply feedback

* fix linter
2023-04-20 11:52:59 +02:00
Will Browne 7808e74260 Plugins: Skip instrumenting plugin build info for core and bundled plugins (#66105)
* only instrument plugin build for non core/bundled plugins

* fix import
2023-04-06 12:50:50 +02:00
Will Browne bff9f4c890 Plugins: Move config factory to pluginsintegration package (#65716)
* move config to pluginsintegration package

* change to all plugin toggle

* fixes

* fixes

* fix lerna

* fix test
2023-04-05 14:40:08 +02:00
Will Browne 819c2f4ad8 Plugins: Remove unnecessary CDN code (#65929)
remove unnecessary code
2023-04-04 17:01:49 +02:00
Will Browne 7bbe255150 Plugins: Add file store abstraction for handling plugin files (#65432)
* add file store

* fix markdown fetch bug

* add markdown tests

* fix var name
2023-03-29 12:55:55 +02:00
Will Browne 1387fec51d Plugins: Markdown fetch retry with lowercase (#65384)
* retry with lowercase

* undo incorrect err check

* re-add defer to close file

* fix test
2023-03-27 19:44:06 +03:00
Will Browne 31d6416157 Plugins: Migrate licensing and access control to pkg/services/pluginsintegration package (#65258)
* migrate licensing + access control

* update package name
2023-03-27 11:15:37 +02:00
Will Browne 23e3ac0ac9 Plugins: Improve client instrumentation by adding cancelled status and logging errors (#65099)
add cancelled status and log err
2023-03-21 13:42:57 +01:00
Will Browne ee2dd62a1f Plugins: Refactor loader + finder to support multiple sourcing methods (#64735)
* it's cdn time

* tidy body closing

* auto signed

* fix close

* update log name

* remove comments
2023-03-20 14:35:49 +01:00
Will Browne 94f39e69a3 Plugins: Migrate plugincontext, adapters and pluginsettings to pkg/services/pluginsintegration package (#64154)
* migrate plugincontext, adapter and pluginsettings

* add to CODEOWNERS

* fix imports

* fix CODEOWNERS

* take pluginsettings

* migrate wire stuff
2023-03-07 11:22:30 -05:00
Will Browne 68df83c86d Plugins: Add Plugin FS abstraction (#63734)
* unexport pluginDir from dto

* first pass

* tidy

* naming + add mutex

* add dupe checking

* fix func typo

* interface + move logic from renderer

* remote finder

* remote signing

* fix tests

* tidy up

* tidy markdown logic

* split changes

* fix tests

* slim interface down

* fix status code

* tidy exec path func

* fixup

* undo changes

* remove unused func

* remove unused func

* fix goimports

* fetch remotely

* simultaneous support

* fix linter

* use var

* add exception for gosec warning

* fixup

* fix tests

* tidy

* rework cfg pattern

* simplify

* PR feedback

* fix dupe field

* remove g304 nolint

* apply PR feedback

* remove unnecessary gosec nolint

* fix finder loop and update comment

* fix map alloc

* fix test

* remove commented code
2023-03-07 16:47:02 +01:00
Will Browne 88666f9bbd Plugins: Fix Cache-Control header response for public/plugins/* assets API (#64051)
* fix caching

* fixeroo

* simplify

* undo changes

* fix test
2023-03-06 12:42:18 -05:00
Will Browne ec82719372 Plugins: Introduce plugin package specific logger (#62204)
* refactor

* implement with infra log for now

* undo moving

* update package name

* update name

* fix tests

* update pretty signature

* update naming

* simplify

* fix typo

* delete comment

* fix import

* retrigger
2023-02-28 16:10:27 +01:00
Will Browne ab8de1a0e3 Plugins: Add simple plugin sources service (#63814)
add simple plugin sources svc
2023-02-28 15:27:11 +01:00
Will Browne 32aa0ad272 Plugins: Remove stream handler from plugins DTO (#63812)
remove stream handler from DTO
2023-02-27 19:48:18 +01:00
Will Browne 25b3abece9 Plugins: Remove unused funcs and re-use enum types (#63813)
plugins tidy
2023-02-27 13:03:55 -05:00
Will Browne 200d2ad249 Plugins: Invalidate plugin context app settings cache post update (#63279)
invalid plugin settings
2023-02-24 12:13:22 +01:00
Will Browne 317f044e70 Plugins: Ensure proxy route bodies are valid JSON (#61771)
ensure proxy route bodies are valid JSON
2023-02-01 16:37:08 +01:00
Will Browne 2f2046eff7 Plugins: Require body is closed on test cleanup (#62668)
require body is closed on cleanup
2023-02-01 15:28:25 +01:00
Will Browne e7bfc4e749 TestData: Remove references to TestData "DB" (#62603)
* remove refs testdatadb

* fix trailing semi-colon

* remove pluginName completely
2023-01-31 16:40:00 +00:00
42732539ed TestData: Introduce schema types (#62130)
* schematize data query

* add the stuff you dingus

* feat(testdatasource): add scenario to generated types

* use generated testdata query in frontend

* update code owners

* Add path exception for testdata datasource

* use specific numeric data types

* fix test

* fix e2e smoketest

* add test data query type

* use test data query type

* fix betterer

* Fix typo

* move to experimental

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: sam boyer <sdboyer@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2023-01-26 15:31:34 +00:00
Will Browne eb1fed7929 Plugins: Add plugin resource tests (#62014)
* remove plugin context from response

* remove integration test indicator
2023-01-25 10:45:52 +00:00
Will Browne 958eea2f78 Plugins: Add backend target to instrumentation (#61980)
* add target

* fix test
2023-01-24 16:18:34 +01:00
Will Browne 59ef144e9e Plugins: Add file permission error check when attempting to verify plugin signature (#61860)
add permission err check
2023-01-23 12:01:10 +01:00
Will Browne c54aa18cd8 Plugins: Add tailored interface for plugins licensing needs (#61045)
* tailored licensing service

* appease linter

* fix

* retrigger
2023-01-18 18:02:54 +01:00
Will BrowneandJack Westbrook 9aed364898 Plugins: Fix plugin query help markdown (#60485)
* refactor(pluginhelp): rewrite as functional component with useAsync

* mimic old behaviour

* feat(pluginhelp): display message if backend returned an empty string

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2023-01-03 14:20:27 +01:00
Will Browne 48b33ab521 Plugins: Unsigned chromium file should not invalidate signature for Renderer plugin (#59104)
* Plugins: Unsigned chromium file should not invalidate signature for Renderer plugin

* fix test

* re-work solution
2022-12-19 12:46:27 +01:00
Will Browne 76233f9997 Plugins: Unexport PluginDir field from PluginDTO (#59190)
* unexport pluginDir from dto

* more err checks

* tidy

* fix tests

* fix dboard file tests

* fix import

* fix tests

* apply PR feedback

* combine interfaces

* fix logs and clean up test

* filepath clean

* use fs.File

* rm explicit type
2022-12-02 13:46:55 +01:00
Will Browne 0fca3cf9dd Datasources: Use context logger in cache service (#59547) 2022-11-30 14:25:04 +01:00
Will Browne 8a09fd3257 Plugins: Fix app child config func typo (#59386)
fix func typo
2022-11-28 13:43:14 +01:00
Will Browne 09e8cff06e Plugins: Make "README" the default markdown request param (#58264)
* Plugins: Make README the default markdown request param

* undo devdboard changes

* fix missing prefix

* rm newline

* re-add space UFFFFF
2022-11-07 11:16:17 +01:00
Will Browne 9f77bd4728 Plugins: Use public store instead of internal registry (#57631)
* Plugins: Use public store instead of internal registry

* update comments

* fix import

* fix test
2022-10-27 18:44:28 +02:00
Will Browne 1038ac7308 DataSources: Remove unused cfg from core Grafana data source (#56188)
* remove unused cfg from grafana ds

* fix test
2022-10-04 06:32:25 -04:00
Will Browne 4087ad413f re-use fake trace + feature toggles (#56186) 2022-10-04 10:15:10 +02:00
Will Browne d0d8544ded Plugins: Create single point of entry for adding / removing plugins (#55463)
* split out plugin manager

* remove whitespace

* fix tests

* split up tests

* updating naming conventions

* simplify manager

* tidy

* explorations

* fix build

* tidy

* fix tests

* add logger helper

* pass the tests

* tidying

* fix tests

* tidy and re-add test

* store depends on loader

* enrich tests

* fix test

* undo gomod changes
2022-09-23 14:27:01 +02:00
Will BrowneandMarcus Andersson b25ea75bac Plugins: Add secure JSON fields to plugin setting DTO (#55313)
* add secure JSON fields to plugin setting DTO

* add nil pointer fix

* adding secureJsonFields to the plugin meta.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2022-09-21 12:20:11 +02:00
Will Browne cd7a464f7e Plugins: Ensure plugin uninstall success for "pre-installed" community plugins (#55322)
* track pre-installed external plugins in store

* fix tests
2022-09-19 12:14:30 +02:00
Will BrowneandMarcus Efraimsson 29327cbba2 Plugins: Use error plane for api/ds/query (#54750)
* plugin client returns error base

* fix api test

* add plugin client test

* add fallback err

* fix linting

* wip

* replace bad query

* template is an error

* failing test of templated error

* add one test passing

* fix failing test

* move test

* rename ErrBadQuery to ErrQueryValidationFailure

* tidy diff

* Change to one error per specific error kind

* last err + fix test

* fix imports

* more tests

* keep req vars together

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-09-14 18:19:57 +02:00
Will Browne 0571d98bba [WIP] Plugins: Introduce Plugins specific config (#54854) 2022-09-14 14:35:35 +01:00
Will Browne 15756ecf86 remove unused cfg (#54770) 2022-09-06 08:59:28 -04:00
Will Browne ecdcafb258 manager exposes renderer + secrets manager (#54629) 2022-09-02 14:20:10 +02:00
Will Browne 43987e7f8c Plugins: Fix plugin registered startup log line (#54634)
* fix plugin registered log

* remove stale test
2022-09-02 14:01:52 +02:00
Will Browne 166b981019 ensure process manager is background service (#54475) 2022-08-30 13:09:52 -04:00
Will Browne 4a707e2a88 Plugins: Split plugin manager into smaller components (#54384)
* split out plugin manager

* remove whitespace

* fix tests

* split up tests

* updating naming conventions

* simplify manager

* tidy

* add more fakes

* testing time

* add query verif to int test

* renaming

* add process tests

* tidy up manager tests

* add extra case to int test

* add more coverage to store and process tests

* remove comment

* fix capatilization

* init on provide

* remove addfromsource from API
2022-08-30 17:30:43 +02:00
Will Browne 26dfdd5af3 Plugins: Refactor plugin download/installation (#43046)
* installer -> repo

* add semver format checking

* add plugin callbacks in test

* remove newline

* post install only scans new directories

* remove unused stuff

* everything in own package

* add missing cli params

* make grafana version part of the API

* resolve conflicts

* tidy up logger

* fix cli and tidy log statements

* rename log package

* update struct name

* fix linter issue

* fs -> filestore

* reorder imports

* alias import

* fix test

* fix test

* inline var

* revert jsonc file

* make repo dep of manager

* actually inject the thing

* accept all args for compatability checks

* accept compat from store

* pass os + arch vals

* don't inject fs

* tidy up

* tidy up

* merge with main and tidy fs storage

* fix test

* fix packages

* fix comment + field name

* update fs naming

* fixed wire

* remove unused func

* fix mocks

* fix storage test

* renaming

* fix log line

* fix test

* re-order field

* tidying

* add test for update with same version

* fix wire for CLI

* remove use of ioutil

* don't pass field

* small tidy

* ignore code scanning warn

* fix testdata link

* update lgtm code
2022-08-23 11:50:50 +02:00
Will Browne eb4266a85e Plugins: Interpolate plugin type as part of plugin ID schema (#54030)
* do it

* undo
2022-08-23 05:14:23 -04:00
Will Browne 46b7ca12e1 add missing check for root URLs length (#53239) 2022-08-03 17:13:45 +02:00
Will Browne 5523c00b01 check not empty root urls before setting field (#53135) 2022-08-03 15:25:59 +02:00
Will Browne 6d066a7aa8 Plugins: Add validation for plugin manifest (#52787)
* add validation for plugin manifest

* no more semver checking

* undo go.mod changes

* undo go.mod changes

* only validate v2 fields where necessary

* remove manifest version field check
2022-07-27 12:56:52 +02:00
Will Browne 843ff932b7 Plugins: Add signature wildcard globbing for dedicated private plugin type (#52163)
* it's glob time

* add more tests

* fix warn log

* support new sig type
2022-07-22 10:48:16 +02:00
Will Browne 5d052be6ff Plugins: Always validate root URL if specified in signature manfiest (#52332)
* always validate root URL if specified in signature

* tidy imports
2022-07-15 17:42:20 +02:00
Will Browne b32ad993c5 Plugins: Validate root URLs when signing private plugins via grafana-toolkit (#51968)
* validate URLs

* apply PR review feedback

* fix err msg
2022-07-12 05:51:16 -04:00