From 77fa3333e4a156a953157a46c34fc4d59d286da1 Mon Sep 17 00:00:00 2001 From: maicon Date: Wed, 10 Sep 2025 18:07:24 -0300 Subject: [PATCH] Page limit config for dashboards with visible annotations (#110911) * Page limit config for dashboards with visible annotations Signed-off-by: Maicon Costa --------- Signed-off-by: Maicon Costa --- .../accesscontrol/accesscontrol.go | 22 ++++++++++++------- .../annotationsimpl/annotations.go | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/pkg/services/annotations/accesscontrol/accesscontrol.go b/pkg/services/annotations/accesscontrol/accesscontrol.go index d315e9076b8..ac9fed6ee18 100644 --- a/pkg/services/annotations/accesscontrol/accesscontrol.go +++ b/pkg/services/annotations/accesscontrol/accesscontrol.go @@ -12,6 +12,7 @@ import ( "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore/permissions" "github.com/grafana/grafana/pkg/services/sqlstore/searchstore" + "github.com/grafana/grafana/pkg/setting" ) var ( @@ -28,16 +29,21 @@ var ( ) type AuthService struct { - db db.DB - features featuremgmt.FeatureToggles - dashSvc dashboards.DashboardService + db db.DB + features featuremgmt.FeatureToggles + dashSvc dashboards.DashboardService + searchDashboardsPageLimit int64 } -func NewAuthService(db db.DB, features featuremgmt.FeatureToggles, dashSvc dashboards.DashboardService) *AuthService { +func NewAuthService(db db.DB, features featuremgmt.FeatureToggles, dashSvc dashboards.DashboardService, cfg *setting.Cfg) *AuthService { + section := cfg.Raw.Section("annotations") + searchDashboardsPageLimit := section.Key("search_dashboards_page_limit").MustInt64(1000) + return &AuthService{ - db: db, - features: features, - dashSvc: dashSvc, + db: db, + features: features, + dashSvc: dashSvc, + searchDashboardsPageLimit: searchDashboardsPageLimit, } } @@ -137,7 +143,7 @@ func (authz *AuthService) dashboardsWithVisibleAnnotations(ctx context.Context, SignedInUser: query.SignedInUser, Page: query.Page, Type: filterType, - Limit: 1000, + Limit: authz.searchDashboardsPageLimit, }) if err != nil { return nil, err diff --git a/pkg/services/annotations/annotationsimpl/annotations.go b/pkg/services/annotations/annotationsimpl/annotations.go index 87f5a9a13ce..b73ed32bd36 100644 --- a/pkg/services/annotations/annotationsimpl/annotations.go +++ b/pkg/services/annotations/annotationsimpl/annotations.go @@ -56,7 +56,7 @@ func ProvideService( return &RepositoryImpl{ db: db, features: features, - authZ: accesscontrol.NewAuthService(db, features, dashSvc), + authZ: accesscontrol.NewAuthService(db, features, dashSvc, cfg), reader: read, writer: write, }