Plugins: replaces various plugin imports with pluginImporter (#108002)

* Plugins: renames plugin_loader

* Wip

* chore: adds pluginImporter

* chore: some small refactors

* chore: better typings

* chore: merge functions

* chore: create a generic plugin cache

* chore: adds comments

* chore: change to const

* chore: remove unused change

* chore: put everything behind feature toggle

* chore: rename test file and props

* chore: adds sync cache as well

* chore: fix the typings

* chore: fix broken unit test

* chore: small rename

* chore: adds tests

* chore: updates after PR feedback

* chore: updates after PR feedback
This commit is contained in:
Hugo Häggmark
2025-07-16 06:42:28 +02:00
committed by GitHub
parent 332601320c
commit 5b82e05697
15 changed files with 1054 additions and 327 deletions
+10
View File
@@ -1755,6 +1755,16 @@ var (
FrontendOnly: true,
Expression: "false",
},
{
Name: "enablePluginImporter",
Description: "Set this to true to use the new PluginImporter functionality",
Stage: FeatureStageExperimental,
Owner: grafanaPluginsPlatformSquad,
HideFromAdminPage: true,
HideFromDocs: true,
FrontendOnly: true,
Expression: "false",
},
}
)
+1
View File
@@ -228,3 +228,4 @@ tabularNumbers,GA,@grafana/grafana-frontend-platform,false,false,false
newInfluxDSConfigPageDesign,privatePreview,@grafana/partner-datasources,false,false,false
enableAppChromeExtensions,experimental,@grafana/plugins-platform-backend,false,false,true
foldersAppPlatformAPI,experimental,@grafana/grafana-search-navigate-organise,false,false,true
enablePluginImporter,experimental,@grafana/plugins-platform-backend,false,false,true
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
228 newInfluxDSConfigPageDesign privatePreview @grafana/partner-datasources false false false
229 enableAppChromeExtensions experimental @grafana/plugins-platform-backend false false true
230 foldersAppPlatformAPI experimental @grafana/grafana-search-navigate-organise false false true
231 enablePluginImporter experimental @grafana/plugins-platform-backend false false true
+4
View File
@@ -922,4 +922,8 @@ const (
// FlagFoldersAppPlatformAPI
// Enables use of app platform API for folders
FlagFoldersAppPlatformAPI = "foldersAppPlatformAPI"
// FlagEnablePluginImporter
// Set this to true to use the new PluginImporter functionality
FlagEnablePluginImporter = "enablePluginImporter"
)
+33
View File
@@ -1003,6 +1003,22 @@
"hideFromAdminPage": true
}
},
{
"metadata": {
"name": "enablePluginImporter",
"resourceVersion": "1752591728321",
"creationTimestamp": "2025-07-15T15:02:08Z"
},
"spec": {
"description": "Set this to true to use the new PluginImporter functionality",
"stage": "experimental",
"codeowner": "@grafana/plugins-platform-backend",
"frontend": true,
"hideFromAdminPage": true,
"hideFromDocs": true,
"expression": "false"
}
},
{
"metadata": {
"name": "enableSCIM",
@@ -2317,6 +2333,23 @@
"requiresRestart": true
}
},
{
"metadata": {
"name": "pluginLoadingRefactor",
"resourceVersion": "1752218524617",
"creationTimestamp": "2025-07-11T07:22:04Z",
"deletionTimestamp": "2025-07-11T07:23:34Z"
},
"spec": {
"description": "Set this to true to use the new plugin loading functionality",
"stage": "experimental",
"codeowner": "@grafana/plugins-platform-backend",
"frontend": true,
"hideFromAdminPage": true,
"hideFromDocs": true,
"expression": "false"
}
},
{
"metadata": {
"name": "pluginProxyPreserveTrailingSlash",