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
da117aea1c
Plugins: Allow disabling angular deprecation UI for specific plugins ( #77026 )
...
* Plugins:Allow disabling angular deprecation UI for specific plugins
* add backend test
* changed test names
* lint
* Removed angular properties from DataSourceDTO
* Update tests
* Move angularDetected and hideAngularDeprecation in angularMeta property
* Fix angular property name in AppPluginConfig
* Fix reference to angularMeta.detected
* Fix hide_angular_deprecation not working for core plugins
* lint
2023-11-10 11:44:54 +01:00
729dafaff9
Auth: Unfurl OrgID in pkg/api to allow using identity.Requester interface ( #76108 )
...
Unfurl OrgID in pkg/api to allow using identity.Requester interface
2023-10-06 11:34:36 +02:00
ece94b1e01
Chore: Remove plugincontext.ErrPluginNotFound ( #74997 )
2023-09-25 13:10:47 +03:00
1714fa598c
Chore: Refactor backend plugin errors ( #74928 )
2023-09-25 11:56:03 +02:00
e855efb13d
Plugins: Move store and plugin dto to pluginsintegration ( #74655 )
...
move store and plugin dto
2023-09-11 13:59:24 +02:00
8ee43f3705
Instrumentation: Add status_source label to request metrics/logs ( #74114 )
...
Ref #68480
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
2023-09-11 12:13:13 +02:00
025b2f3011
Chore: use any rather than interface{} ( #74066 )
2023-08-30 18:46:47 +03:00
26339f978b
Auth: Move access control API to SignedInUser interface ( #73144 )
...
* move access control api to SignedInUser interface
* remove unused code
* add logic for reading perms from a specific org
* move the specific org logic to org_user.go
* add a comment
---------
Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
2023-08-18 11:42:18 +01:00
d29f4a8f76
Plugins: Add context to StaticRouteResolver and ErrorResolver interfaces ( #73121 )
...
* add ctx
* fix tests
2023-08-10 10:32:12 +02:00
91b0cdc871
Plugins: Account for nil user when constructing plugin context ( #69811 )
...
cater for nil user
2023-06-08 19:36:41 +03:00
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
a221e1d226
Plugins: Standardize Golang enum naming convention ( #69449 )
...
* standardize enum pattern
* fix up
2023-06-08 12:21:19 +02:00
1ed4c0382b
Plugins: Add Initial implementation for frontend plugins sandboxing ( #68889 )
2023-06-05 10:51:36 +02:00
d98813796c
RBAC: Remove legacy AC from HasAccess permission check ( #68995 )
...
* remove unused HasAdmin and HasEdit permission methods
* remove legacy AC from HasAccess method
* remove unused function
* update alerting tests to work with RBAC
2023-05-30 14:39:09 +01:00
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
16359c82a2
Plugins: Angular deprecation: Detect Angular plugins and expose in API ( #66824 )
...
* Plugins: Angular deprecation: Detect Angular plugins and expose in API
* Plugins: Angular detector: Close module.js
* Plugins: Angular detector: consistent error messages
* Plugins: Angular detector: Add test for missing module.js
* Plugins: Angular detector: Fix integration tests
* Plugins: Angular detector: Changed Angular detection patterns
* Moved inMemoryFS to test_utils.go
* Add different angular detectors
* Plugins: Update plugins/data/expectedListResp.json
* Plugins: Rename angular property to angularDetected
* Plugins: Rename angular to angularDetected in Plugin and PluginDTO
* Plugins: Add angularDetected to datasources, apps and plugins frontendsettings
* Plugins: Add test for AngularDetected frontend settings
2023-05-12 12:51:11 +02:00
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
98778289cb
Catalog: Show install error with incompatible version ( #65059 )
2023-04-19 10:22:24 +02:00
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
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
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
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
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
fbd049a094
Profiling: Enable flame graph & Phlare/Parca data sources for all users ( #63488 )
...
* Remove flame graph toggle
* Remove beta badge from panel
* Update expectedListResp.json
* Update flame graph container to only show if there is data
2023-03-01 11:32:39 +00:00
200d2ad249
Plugins: Invalidate plugin context app settings cache post update ( #63279 )
...
invalid plugin settings
2023-02-24 12:13:22 +01:00
af1e2d68da
Plugins: Allow loading panel plugins from a CDN ( #59096 )
...
* POC: Plugins CDN reverse proxy
* CDN proxy POC: changed env var names
* Add authorization: false for /public path in frontend plugin loader
* Moved CDN settings to Cfg, add some comments
* Fix error 500 in asset fetch if plugin is not using CDN
* Fix EnterpriseLicensePath declared twice
* Fix linter complaining about whitespaces
* Plugins CDN: Skip signature verification for CDN plugins
* Plugins CDN: Skip manifest and signature check for cdn plugins
* Plugins: use IsValid() and IsInternal() rather than equality checks
* Plugins CDN: remove comment
* Plugins CDN: Fix seeker can't seek when serving plugins from local fs
* Plugins CDN: add back error codes in getLocalPluginAssets
* Plugins CDN: call asset.Close() rather than asset.readSeekCloser.Close()
* Plugins CDN: Fix panic in JsonApiErr when errorMessageCoder wraps a nil error
* Plugins CDN: Add error handling to proxyCDNPluginAsset
* Plugins CDN: replace errorMessageCoder with errutil
* Plugins CDN POC: expose cdn plugin paths to frontend for system.js
* Plugins CDN: Fix cdn plugins showing as unsigned in frontend
* WIP: Add support for formatted URL
* Fix missing cdnPluginsBaseURLs in GrafanaConfig
* Plugins CDN: Remove reverse proxy mode and reverse proxy references
* Plugins CDN: Simplify asset serving logic
* Plugins CDN: sanitize redirect path
* Plugins CDN: Removed unused pluginAsset type
* Plugins CDN: Removed system.js changes
* Plugins CDN: Return different system.js baseURL and module for cdn plugins
* Plugins CDN: Ensure CDN is disabled for non-external plugins
* lint
* Plugins CDN: serve images and screenshots from CDN, refactoring
* Lint
* Plugins CDN: Fix URLs for system.js (baseUrl and module)
* Plugins CDN: Add more tests for RelativeURLForSystemJS
* Plugins CDN: Iterate only on apps when preloading
* Plugins CDN: Refactoring
* Plugins CDN: Add comments to url_constructor.go
* Plugins CDN: Update defaultHGPluginsCDNBaseURL
* Plugins CDN: undo extract meta from system js config
* refactor(plugins): migrate systemjs css plugin to typescript
* feat(plugins): introduce systemjs cdn loader plugin
* feat(plugins): add systemjs load type
* Plugins CDN: Removed RelativeURLForSystemJS
* Plugins CDN: Log backend redirect hits along with plugin info
* Plugins CDN: Add pluginsCDNBasePath to getFrontendSettingsMap
* feat(plugins): introduce cdn loading for angular plugins
* refactor(plugins): move systemjs cache buster into systemjsplugins directory
* Plugins CDN: Rename pluginsCDNBasePath to pluginsCDNBaseURL
* refactor(plugins): introduce pluginsCDNBaseURL to the frontend
* Plugins CDN: Renamed "cdn base path" to "cdn url template" in backend
* Plugins CDN: lint
* merge with main
* Instrumentation: Add prometheus counter for backend hits, log from Info to Warn
* Config: Changed key from plugins_cdn.url to plugins.plugins_cdn_base_url
* CDN: Add backend tests
* Lint: goimports
* Default CDN URL to empty string,
* Do not use CDN in setImages and module if the url template is empty
* CDN: Backend: Add test for frontend settings
* CDN: Do not log missing module.js warn if plugin is being loaded from CDN
* CDN: Add backend test for CDN plugin loader
* Removed 'cdn' signature level, switch to 'valid'
* Fix pfs.TestParseTreeTestdata for cdn plugin testdata dir
* Fix TestLoader_Load
* Fix gocyclo complexity of loadPlugins
* Plugins CDN: Moved prometheus metric to api package, removed asset_path label
* Fix missing in config
* Changes after review
* Add pluginscdn.Service
* Fix tests
* Refactoring
* Moved all remaining CDN checks inside pluginscdn.Service
* CDN url constructor: Renamed stringURLFor to stringPath
* CDN: Moved asset URL functionality to assetpath service
* CDN: Renamed HasCDN() to IsEnabled()
* CDN: Replace assert with require
* CDN: Changes after review
* Assetpath: Handle url.Parse error
* Fix plugin_resource_test
* CDN: Change fallback redirect from 302 to 307
* goimports
* Fix tests
* Switch to contextmodel.ReqContext in plugins.go
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2023-01-27 15:08:17 +01:00
6c5a573772
Chore: Move ReqContext to contexthandler service ( #62102 )
...
* Chore: Move ReqContext to contexthandler service
* Rename package to contextmodel
* Generate ngalert files
* Remove unused imports
2023-01-27 08:50:36 +01:00
6e9eb0d931
chore: move plugins models into pluginsettings svc ( #61944 )
2023-01-23 13:56:20 -05:00
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
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
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
0845ac2f53
Profiling: Add Phlare and Parca datasources ( #57809 )
...
* Add phlare datasource
* Rename
* Add parca
* Add self field to parca
* Make sure phlare works with add to dashboard flow
* Add profiling category and hide behind feature flag
* Update description and logos
* Update phlare icon
* Cleanup logging
* Clean up logging
* Fix for shift+enter
* onRunQuery to set label
* Update type naming
* Fix lint
* Fix test and quality issues
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
2022-10-28 13:33:37 +02:00
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
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
101349fe49
RBAC: Add permissions to install and configure plugins ( #51829 )
...
* RBAC: Allow app plugins restriction
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* Moving declaration to HttpServer
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
* Picking changes from the other branch
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* Rename plugins.settings to plugins
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* Account for PluginAdminExternalManageEnabled
Co-authored-by: Will Browne <will.browne@grafana.com>
* Set metadata on instantiation
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: marefr <marcus.efraimsson@gmail.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
2022-09-09 09:44:50 +02:00
11de1dfe40
TopNav: Plugin page layouts / information architecture ( #53174 )
...
* Change nav structure when topnav is enable to do initial tests with new information architecture
* Support for nested sections
* Updated
* sentance case
* Progress on plugin challange
* Rewrite to functional component
* Progress
* Updates
* Progress
* Progress on things
* missing file
* Fixing issue with runtime, need to use setter way to set component exposed via runtime
* Move PageLayoutType to grafana/data
* Fixing breadcrumb issue, adding more tests
* reverted backend change
* fix recursive issue with cleanup
2022-09-05 14:56:08 +02:00
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
a14621fff6
Chore: Add user service method SetUsingOrg and GetSignedInUserWithCacheCtx ( #53343 )
...
* Chore: Add user service method SetUsingOrg
* Chore: Add user service method GetSignedInUserWithCacheCtx
* Use method GetSignedInUserWithCacheCtx from user service
* Fix lint after rebase
* Fix lint
* Fix lint error
* roll back some changes
* Roll back changes in api and middleware
* Add xorm tags to SignedInUser ID fields
2022-08-11 13:28:55 +02:00
062d255124
Handle ioutil deprecations ( #53526 )
...
* replace ioutil.ReadFile -> os.ReadFile
* replace ioutil.ReadAll -> io.ReadAll
* replace ioutil.TempFile -> os.CreateTemp
* replace ioutil.NopCloser -> io.NopCloser
* replace ioutil.WriteFile -> os.WriteFile
* replace ioutil.TempDir -> os.MkdirTemp
* replace ioutil.Discard -> io.Discard
2022-08-10 15:37:51 +02:00
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
5975c4bc6d
RBAC: Allow app plugins access restriction ( #51524 )
...
* RBAC: Allow app plugins restriction
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* Fix tests
* Imports
* WIP
* Adding RBAC to AppPluginsRoutes
* Switching middleware order
* Restrict access to resources
* Nit
* Cosmetic changes
* Fix fallback
* Moving declaration to HttpServer
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: marefr <marcus.efraimsson@gmail.com>
2022-07-08 13:24:09 +02:00
f7cce28cdf
Plugins: Separate manager read/write components ( #50313 )
...
* separate manager read/write
* guarantee consistency in test
2022-06-07 17:51:00 +02:00
a7813275a5
Plugins: Support headers field for check health ( #49930 )
2022-05-31 17:58:06 +02:00
4cd1a113ef
Access control: Fix listing data sources for org admins ( #48961 )
...
* Access control: Fix listing data sources for org admins
* Access control: always list non-core plugins for org admins
2022-05-13 14:07:08 +02:00
60bc3e4e5c
AccessControl: Let users with data source create permissions list non-core plugins ( #48897 )
...
* Only require create and permissions for new data source page
* Let users with permissions to create data sources list non-core plugins
* Keep the admin check as fallback when using rbac as well
2022-05-13 10:30:26 +02:00
f135a5c8a4
Plugins: Refactor plugin resource call with and without data source ( #48754 )
...
* refactor plugin resource call with/without ds
* check err
* fix imports
* only validate req on ds path
* Update warn log
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-05-06 10:58:02 +02:00
7ddae870e7
fix status code 200 ( #47818 )
2022-04-15 08:01:58 -04:00
3fff301367
Plugins: Pass OAuth Token to CallResource Function ( #47028 )
...
* adds oauth support to call resource requests
* adds oauth docs for call resource
* fixes case where dsUID is empty
* improve datasource error handling
2022-04-05 17:40:34 +02:00
bda3f860a8
Plugins: Add plugin settings DTO ( #46283 )
...
* add clearer service layer
* re-order frontend settings for clarity
* fix fetch fail
* fix API response
* fix mockstore
* in -> where
2022-03-18 20:49:13 +01:00