mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
PluginExtensions: Made it possible to enable extensions admin page in non-development environments (#95820)
* Added feature flag for toggling extensions admin page. * fixed typo. * require restart --------- Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
This commit is contained in:
parent
6fd3620d50
commit
c7a7f7dce5
@ -217,6 +217,7 @@ Experimental features might be changed or removed without prior notice.
|
||||
| `prometheusUsesCombobox` | Use new combobox component for Prometheus query editor |
|
||||
| `dashboardSchemaV2` | Enables the new dashboard schema version 2, implementing changes necessary for dynamic dashboards and dashboards as code. |
|
||||
| `playlistsWatcher` | Enables experimental watcher for playlists |
|
||||
| `enableExtensionsAdminPage` | Enables the extension admin page regardless of development mode |
|
||||
|
||||
## Development feature toggles
|
||||
|
||||
|
@ -228,4 +228,5 @@ export interface FeatureToggles {
|
||||
azureMonitorDisableLogLimit?: boolean;
|
||||
dashboardSchemaV2?: boolean;
|
||||
playlistsWatcher?: boolean;
|
||||
enableExtensionsAdminPage?: boolean;
|
||||
}
|
||||
|
@ -1570,6 +1570,13 @@ var (
|
||||
Owner: grafanaAppPlatformSquad,
|
||||
RequiresRestart: true,
|
||||
},
|
||||
{
|
||||
Name: "enableExtensionsAdminPage",
|
||||
Description: "Enables the extension admin page regardless of development mode",
|
||||
Stage: FeatureStageExperimental,
|
||||
Owner: grafanaPluginsPlatformSquad,
|
||||
RequiresRestart: true,
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -209,3 +209,4 @@ prometheusUsesCombobox,experimental,@grafana/observability-metrics,false,false,f
|
||||
azureMonitorDisableLogLimit,GA,@grafana/partner-datasources,false,false,false
|
||||
dashboardSchemaV2,experimental,@grafana/dashboards-squad,false,false,true
|
||||
playlistsWatcher,experimental,@grafana/grafana-app-platform-squad,false,true,false
|
||||
enableExtensionsAdminPage,experimental,@grafana/plugins-platform-backend,false,true,false
|
||||
|
|
@ -846,4 +846,8 @@ const (
|
||||
// FlagPlaylistsWatcher
|
||||
// Enables experimental watcher for playlists
|
||||
FlagPlaylistsWatcher = "playlistsWatcher"
|
||||
|
||||
// FlagEnableExtensionsAdminPage
|
||||
// Enables the extension admin page regardless of development mode
|
||||
FlagEnableExtensionsAdminPage = "enableExtensionsAdminPage"
|
||||
)
|
||||
|
@ -1201,6 +1201,22 @@
|
||||
"frontend": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"name": "enableExtensionsAdminPage",
|
||||
"resourceVersion": "1730819353237",
|
||||
"creationTimestamp": "2024-11-05T09:18:42Z",
|
||||
"annotations": {
|
||||
"grafana.app/updatedTimestamp": "2024-11-05 15:09:13.237578 +0000 UTC"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"description": "Enables the extension admin page regardless of development mode",
|
||||
"stage": "experimental",
|
||||
"codeowner": "@grafana/plugins-platform-backend",
|
||||
"requiresRestart": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"name": "enableNativeHTTPHistogram",
|
||||
|
@ -105,7 +105,7 @@ func (s *ServiceImpl) getAdminNode(c *contextmodel.ReqContext) (*navtree.NavLink
|
||||
})
|
||||
}
|
||||
|
||||
if s.cfg.Env == setting.Dev {
|
||||
if (s.cfg.Env == setting.Dev) || s.features.IsEnabled(ctx, featuremgmt.FlagEnableExtensionsAdminPage) && hasAccess(pluginaccesscontrol.AdminAccessEvaluator) {
|
||||
pluginsNodeLinks = append(pluginsNodeLinks, &navtree.NavLink{
|
||||
Text: "Extensions",
|
||||
Icon: "plug",
|
||||
|
@ -203,9 +203,13 @@ export function getAppRoutes(): RouteDescriptor[] {
|
||||
{
|
||||
path: '/admin/extensions',
|
||||
navId: 'extensions',
|
||||
component: isDevEnv
|
||||
roles: () =>
|
||||
contextSrv.evaluatePermission([AccessControlAction.PluginsInstall, AccessControlAction.PluginsWrite]),
|
||||
component:
|
||||
isDevEnv || config.featureToggles.enableExtensionsAdminPage
|
||||
? SafeDynamicImport(
|
||||
() => import(/* webpackChunkName: "PluginExtensionsLog" */ 'app/features/plugins/extensions/logs/LogViewer')
|
||||
() =>
|
||||
import(/* webpackChunkName: "PluginExtensionsLog" */ 'app/features/plugins/extensions/logs/LogViewer')
|
||||
)
|
||||
: () => <Navigate replace to="/admin" />,
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user