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
idafurjes
6afad51761
Move SignedInUser to user service and RoleType and Roles to org ( #53445 )
...
* Move SignedInUser to user service and RoleType and Roles to org
* Use go naming convention for roles
* Fix some imports and leftovers
* Fix ldap debug test
* Fix lint
* Fix lint 2
* Fix lint 3
* Fix type and not needed conversion
* Clean up messages in api tests
* Clean up api tests 2
2022-08-10 11:56:48 +02:00
Michael Mandrus
7ef21662f9
Plugins: Show that Secrets Manager Plugin is active in the UI ( #50953 )
...
* add special handling on the plugin gathering side to check whether secrets manager plugins are enabled or not
* show disabled badge in front end if the plugin is not enabled
* Only show error in disabled badge hover if one is present (otherwise it shows "undefined")
* refactor to make use of fields already available in the DTO
* fix typo
* if there is no error returned for the plugin, just show 'disabled'
* fix typo
* Update public/app/features/plugins/admin/components/Badges/PluginDisabledBadge.tsx
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update frontendsettings.go
add clarifying comment
* fix unit test
* rework task to use new frontend property combined with plugin type to determine if the plugin should be disabled
* Update helpers.test.ts
revert test change
* fix unit test
* bogus commit to trigger precommit
* undo commit
* run precommit manually
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2022-06-29 08:48:23 -04:00
Michael Mandrus
f376c33903
WIP: Add private Secret Manager Plugins support to plugin platform ( #49544 )
...
* Add protobuf config and generated code, and client wrapper
* wire up loading of secretsmanager plugin, using renderer plugin as a model
* update kvstore provider to check if we should use the grpc plugin. return false always in OSS
* add OSS remote plugin check
* refactor wire gen file
* log which secrets manager is being used
* Fix argument types for remote checker
* Turns out if err != nil, then the result is always nil. Return empty values if there is an error.
* remove duplicate import
* Update pkg/services/secrets/kvstore/kvstore.go
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* Update pkg/services/secrets/kvstore/kvstore.go
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* refactor RemotePluginCheck interface to just return the Plugin client directly
* rename struct to something less silly
* Update pkg/plugins/backendplugin/secretsmanagerplugin/secretsmanager.proto
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-06-09 13:19:27 -04:00
Will Browne
3fbe4801b7
Plugins: Update collect metrics handler to latest signature ( #45166 )
...
* use updated collect metrics handler
* use proto helper
2022-02-09 17:36:53 +01:00
Will Browne
126ed461b1
remove grafana specific config from package ( #44866 )
2022-02-04 18:14:53 +01:00
Will Browne
76603b93d6
Plugins: Refactor Grafana and Plugin version update checkers ( #44529 )
...
* refactor
* rework plugin update checking
* make smarter
* simplify
* fix linter issue
* make use of mutex
* apply feedback to simplify
* format imports
* fix tests
2022-01-31 16:06:16 +01:00
Marcus Efraimsson
f6414ea2b2
CodeQL: Try to fix uncontrolled data used in path expression ( #43462 )
...
Ref #43080
2022-01-11 17:37:58 +01:00
Will Browne
2e3e7a7e55
Plugins: Plugin Store API returns DTO model ( #41340 )
...
* toying around
* fix refs
* remove unused fields
* go further
* add context
* ensure streaming handler is set
2021-11-17 12:04:22 +01:00
Will Browne
b80fbe03f0
Plugins: Refactor Plugin Management ( #40477 )
...
* add core plugin flow
* add instrumentation
* move func
* remove cruft
* support external backend plugins
* refactor + clean up
* remove comments
* refactor loader
* simplify core plugin path arg
* cleanup loggers
* move signature validator to plugins package
* fix sig packaging
* cleanup plugin model
* remove unnecessary plugin field
* add start+stop for pm
* fix failures
* add decommissioned state
* export fields just to get things flowing
* fix comments
* set static routes
* make image loading idempotent
* merge with backend plugin manager
* re-use funcs
* reorder imports + remove unnecessary interface
* add some TODOs + remove unused func
* remove unused instrumentation func
* simplify client usage
* remove import alias
* re-use backendplugin.Plugin interface
* re order funcs
* improve var name
* fix log statements
* refactor data model
* add logic for dupe check during loading
* cleanup state setting
* refactor loader
* cleanup manager interface
* add rendering flow
* refactor loading + init
* add renderer support
* fix renderer plugin
* reformat imports
* track errors
* fix plugin signature inheritance
* name param in interface
* update func comment
* fix func arg name
* introduce class concept
* remove func
* fix external plugin check
* apply changes from pm-experiment
* fix core plugins
* fix imports
* rename interface
* comment API interface
* add support for testdata plugin
* enable alerting + use correct core plugin contracts
* slim manager API
* fix param name
* fix filter
* support static routes
* fix rendering
* tidy rendering
* get tests compiling
* fix install+uninstall
* start finder test
* add finder test coverage
* start loader tests
* add test for core plugins
* load core + bundled test
* add test for nested plugin loading
* add test files
* clean interface + fix registering some core plugins
* refactoring
* reformat and create sub packages
* simplify core plugin init
* fix ctx cancel scenario
* migrate initializer
* remove Init() funcs
* add test starter
* new logger
* flesh out initializer tests
* refactoring
* remove unused svc
* refactor rendering flow
* fixup loader tests
* add enabled helper func
* fix logger name
* fix data fetchers
* fix case where plugin dir doesn't exist
* improve coverage + move dupe checking to loader
* remove noisy debug logs
* register core plugins automagically
* add support for renderer in catalog
* make private func + fix req validation
* use interface
* re-add check for renderer in catalog
* tidy up from moving to auto reg core plugins
* core plugin registrar
* guards
* copy over core plugins for test infra
* all tests green
* renames
* propagate new interfaces
* kill old manager
* get compiling
* tidy up
* update naming
* refactor manager test + cleanup
* add more cases to finder test
* migrate validator to field
* more coverage
* refactor dupe checking
* add test for plugin class
* add coverage for initializer
* split out rendering
* move
* fixup tests
* fix uss test
* fix frontend settings
* fix grafanads test
* add check when checking sig errors
* fix enabled map
* fixup
* allow manual setup of CM
* rename to cloud-monitoring
* remove TODO
* add installer interface for testing
* loader interface returns
* tests passing
* refactor + add more coverage
* support 'stackdriver'
* fix frontend settings loading
* improve naming based on package name
* small tidy
* refactor test
* fix renderer start
* make cloud-monitoring plugin ID clearer
* add plugin update test
* add integration tests
* don't break all if sig can't be calculated
* add root URL check test
* add more signature verification tests
* update DTO name
* update enabled plugins comment
* update comments
* fix linter
* revert fe naming change
* fix errors endpoint
* reset error code field name
* re-order test to help verify
* assert -> require
* pm check
* add missing entry + re-order
* re-check
* dump icon log
* verify manager contents first
* reformat
* apply PR feedback
* apply style changes
* fix one vs all loading err
* improve log output
* only start when no signature error
* move log
* rework plugin update check
* fix test
* fix multi loading from cfg.PluginSettings
* improve log output #2
* add error abstraction to capture errors without registering a plugin
* add debug log
* add unsigned warning
* e2e test attempt
* fix logger
* set home path
* prevent panic
* alternate
* ugh.. fix home path
* return renderer even if not started
* make renderer plugin managed
* add fallback renderer icon, update renderer badge + prevent changes when renderer is installed
* fix icon loading
* rollback renderer changes
* use correct field
* remove unneccessary block
* remove newline
* remove unused func
* fix bundled plugins base + module fields
* remove unused field since refactor
* add authorizer abstraction
* loader only returns plugins expected to run
* fix multi log output
2021-11-01 10:53:33 +01:00
Arve Knudsen
b79e61656a
Introduce TSDB service ( #31520 )
...
* Introduce TSDB service
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-03-08 07:02:49 +01:00
Arve Knudsen
b99127be82
PluginManager: Remove some global state ( #31081 )
...
* PluginManager: Remove global state
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-02-10 13:31:47 +01:00
Will Browne
da3f963987
convert path to posix by default ( #31045 )
2021-02-09 16:21:45 +01:00
Arve Knudsen
5da3419459
Better logging of plugin scanning errors ( #30231 )
...
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-01-12 19:17:25 +01:00
Arve Knudsen
c2cad26ca9
Chore: Disable default golangci-lint filter ( #29751 )
...
* Disable default golangci-lint filter
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: Fix linter warnings
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-12-15 09:32:06 +01:00
Will Browne
a515c54404
Plugins: Add support for signature manifest V2 ( #29240 )
...
* add support for signing manifest v2
* add log and fix var name
* shorten comment
* improve comment
* remove unnecessary param
* improve naming
* reformat
* rename var
* refactor test
* remove unnecessary assert
* simplify test requirements
* add more test cases
* address feedback
* revert naming
* flip tracking missing
* fix check
* Trigger Build
2020-12-11 12:57:57 +01:00
Arve Knudsen
f326b79cc1
Security: Add gosec G304 auditing annotations ( #29578 )
...
* Security: Add gosec G304 auditing annotations
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* Add gosec annotations
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* Add gosec annotations
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* add G304 auditing comment
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* Add gosec annotations
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* space
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* Add gosec annotations
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
2020-12-03 22:13:06 +01:00
Arve Knudsen
f2b7fbc32a
Chore: Check errors from Close calls ( #29562 )
...
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-12-03 10:11:14 +01:00
Kyle Brandt
0cb29d337a
Expressions: Move GEL into core as expressions ( #29072 )
...
* comes from grafana/gel-app
* remove transform plugin code
* move __expr__ and -100 constants to expr pkg
* set OrgID on request plugin context
* use gtime for resample duration
* in resample, rename "rule" to "window", use gtime for duration, parse duration before exec
* remove gel entry from plugins-bundled/external.json
which creates an empty array for plugins
2020-11-19 07:17:00 -05:00
Leonard Gram
8fb06da34e
Plugins: allow override when allowing unsigned plugins ( #28901 )
...
* Plugins: allow override when allowing unsigned plugins
* Update pkg/plugins/plugins.go
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Plugins: removed java-style setter
* Plugins: cleanup
* Update pkg/plugins/plugins.go
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2020-11-09 09:50:23 +01:00
Arve Knudsen
676d393ec9
Chore: Fix issues reported by staticcheck; enable stylecheck linter ( #28866 )
...
* Chore: Fix issues reported by staticcheck
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Apply suggestions from code review
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-11-05 15:37:11 +01:00
Will Browne
b9d71f5cdd
Plugins: Fix descendent frontend plugin signature validation ( #28638 )
...
* move plugin root check to earlier in validation process
* remove comment
* only check root if necessary
2020-10-29 15:03:37 +01:00
Will Browne
1bee9f4168
Plugins: Track plugin signing errors and expose them to the frontend ( #28219 )
...
* first pass
* return list
* types and cleanup
* add to plugin page and add styles
* update comment
* update comment
* fix component path
* simplify error component
* simplify error struct
* fix tests
* don't export and fix string()
* update naming
* remove frontend
* introduce phantom loader
* track single error
* remove error from base
* remove unused struct
* remove unnecessary filter
* add errors endpoint
* Update set log to use id field
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* skip adding BE plugins
* remove errs from plugin + ds list
* remove unnecessary fields
* add signature state to panels
* remove unused code
* apply PR feedback
* update comment
* merge dto with model
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-10-23 16:45:43 +02:00
Arve Knudsen
4084b53f91
plugins: Don't exit on duplicate plugin ( #28390 )
...
* plugins: Don't exit on duplicate plugin
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add missing files
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-10-21 12:39:41 +02:00
Arve Knudsen
89d10c706a
Plugins: Compose filesystem paths with filepath.Join ( #28375 )
...
* plugins: Fix filesystem path composition
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* plugins: Use filepath.Join to join filesystem paths
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-10-19 17:35:31 +02:00
Arve Knudsen
531c579341
Plugins: Let descendant plugins inherit their root's signature ( #27970 )
...
* plugins: Let descendant plugins inherit their root's signature
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-10-05 13:28:18 +02:00
Arve Knudsen
a078e40238
Settings: Rename constants/variables to follow Go naming standards ( #28002 )
...
* settings: Rename constants/variables to follow Go naming standards
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-10-02 15:45:45 +02:00
Arve Knudsen
16c185c3b9
Chore: Drop xerrors dependency ( #26718 )
...
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-31 09:45:20 +02:00
Arve Knudsen
892f9f789c
Plugins: Fix manifest verification ( #24573 )
2020-05-12 15:48:24 +02:00
Marcus Efraimsson
bcf5c937d5
Plugins: Require backend plugins to be signed when using plugin path ( #24244 )
2020-05-04 22:12:18 +02:00
Ryan McKinley
3487e518ab
Signing: allow unsigned plugin in dev mode ( #24242 )
2020-05-04 11:57:11 -07:00
Arve Knudsen
2fc2a7c3f5
Plugins: Only load transform plug-ins if expressions feature on ( #24110 )
...
* PluginManager: Only load transform plugins if expressions feature on
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-05-04 17:39:20 +02:00
Arve Knudsen
96ffcaa134
Plugins: Require signing of external back-end plugins ( #24075 )
...
* PluginManager: Require signing of external plugins
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-04 10:57:55 +02:00
Marcus Efraimsson
0a1650d265
Image rendering: Fix missing icon on plugins list ( #23958 )
...
Fixes #23189
2020-04-27 21:15:44 +02:00
Andrej Ocenas
376765b3d7
Tracing: Remove feature flag ( #23834 )
2020-04-23 20:46:42 +02:00
Marcus Efraimsson
34266cd369
Backend Plugins: Plugin configuration using Grafana config ( #23451 )
...
Enables adding a section `plugin.<plugin id>` and key/value to
Grafana configuration file which will be converted and sent
as environment variables to the backend plugin.
Also sends some additional environment variables, Grafana
version (GF_VERSION), Grafana edition (GF_EDITION) and
enterprise license path (GF_ENTERPRISE_LICENSE_PATH).
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Fixes #21515 ,
2020-04-14 18:04:27 +02:00
Ryan McKinley
a56615749a
Plugins: fix debug formatting when scanning for files ( #23484 )
2020-04-10 00:45:07 -07:00
Ryan McKinley
468f5d15ab
Plugins: add a signature status flag ( #23420 )
2020-04-09 00:00:16 -07:00
Ryan McKinley
03e3ddcbdb
Plugins: add a bundle plugins folder ( #20850 )
2020-04-07 00:04:24 -07:00
Andrej Ocenas
ae09ccbf79
Trace UI demo ( #20297 )
...
* Add integration with Jeager
Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split.
Modifies build so that this branch docker images are pushed to docker hub
Add a traceui dir with docker-compose and provision files for demoing.:wq
* Enable docker logger plugin to send logs to loki
* Add placeholder zipkin datasource
* Fixed rebase issues, added enhanceDataFrame to non-legacy code path
* Trace selector for jaeger query field
* Fix logs default mode for Loki
* Fix loading jaeger query field services on split
* Updated grafana image in traceui/compose file
* Fix prettier error
* Hide behind feature flag, clean up unused code.
* Fix tests
* Fix tests
* Cleanup code and review feedback
* Remove traceui directory
* Remove circle build changes
* Fix feature toggles object
* Fix merge issues
* Fix some null errors
* Fix test after strict null changes
* Review feedback fixes
* Fix toggle name
Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
2020-03-25 12:25:39 +01:00
Carl Bergquist
ebc9549cbc
Add support for sending health check to datasource plugins. ( #22771 )
...
closes #21519
ref grafana/grafana-plugin-sdk-go#93
2020-03-13 12:31:44 +01:00
Marcus Efraimsson
5c711bfb79
Backend Plugins: Collect and expose metrics and plugin process health check ( #21481 )
...
Adds support for collecting metrics from backend plugins and
exposing them thru Grafana's Prometheus metrics endpoint.
Enables to check health of backend plugin by using the route
`/api/plugins/<plugin id>/health`.
Uses sdk v0.6.0.
Closes #20984
2020-01-15 13:10:48 +01:00
Marcus Efraimsson
1a810ebfe4
Plugins: Move backend plugin manager to service ( #21474 )
...
Moves backend plugin manager to service instead of
global functions in backendplugin package.
Closes #20053
2020-01-13 20:18:45 +01:00
Marcus Efraimsson
baba1634b8
Plugins: Use grafana-plugin-sdk-go v0.5.0 ( #21116 )
...
* fix dispense
* plugin loading refactor
Moves common functionality of registering, starting,
stopping and restarting backend plugins to
backendplugin package.
* simplify plugin descriptors
* target sdk v0.5.0
Co-authored-by: Kyle Brandt <kyle@kbrandt.com>
2020-01-08 11:43:28 -05:00
Kyle Brandt
da1df02813
transform_plugin: stop plugin when grafana stops ( #20397 )
...
fixes https://github.com/grafana/gel-app/issues/49
until #20362
2019-11-14 15:49:31 -05:00
Kyle Brandt
009d58c4a2
Plugins: Transform plugin support ( #20036 )
...
currently temporary separate http api
2019-10-29 12:22:31 -04:00
Arve Knudsen
31735422ef
pkg/plugins: Only warn if plugins fail to load. Fixes #19846 ( #19859 )
...
pkg/plugins: Only warn if plugins fail to load. Fixes #19846
2019-10-18 14:39:38 +02:00
Arve Knudsen
0b1913af6f
pkg/plugins: Check errors ( #19715 )
...
* pkg/plugins: Check errors
2019-10-11 21:02:15 +02:00
Hugo Häggmark
75dcaecc99
Plugins: Skips existence of module.js for renderer plugins ( #19318 )
...
* Fix: Skips test for module.js for plugins of renderer type
Fixes #19130
* Refactor: Changes after PR comments
* Chore: Fixes go lint issue
2019-09-23 22:54:28 -07:00
Ryan McKinley
f7c55d3968
Plugins: better warning when plugins fail to load ( #18671 )
...
* better pluin feedback
* add server side check for module.js
2019-08-22 07:04:02 +02:00