Annotations: Optimize search by tags (#93547)
* Annotations: Optimize search on large number of dashboards
* refactor
* fix batch size
* Return early if no annotations found
* revert go.mod
* return nil in case of error
* Move default limit to the API package
* fix empty access control filter
* Set default limit to 100
* optimize query when number of annotations is less than limit
* Update pkg/services/annotations/annotationsimpl/annotations.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* remove limit from store since it's set in API
* set default limit in Find method (do not break tests)
* Only add limit to the query if it's set
* use limit trick for all searches without dashboard filter
* set default page if not provided
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
(cherry picked from commit 5e713673e1)
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
19 lines
603 B
Go
19 lines
603 B
Go
package accesscontrol
|
|
|
|
// AccessResources contains resources that are used to filter annotations based on RBAC.
|
|
type AccessResources struct {
|
|
// Dashboards is a map of dashboard UIDs to IDs
|
|
Dashboards map[string]int64
|
|
// CanAccessDashAnnotations true if the user is allowed to access some dashboard annotations
|
|
CanAccessDashAnnotations bool
|
|
// CanAccessOrgAnnotations true if the user is allowed to access organization annotations
|
|
CanAccessOrgAnnotations bool
|
|
// Skip filtering
|
|
SkipAccessControlFilter bool
|
|
}
|
|
|
|
type dashboardProjection struct {
|
|
ID int64 `xorm:"id"`
|
|
UID string `xorm:"uid"`
|
|
}
|