Expressions: Fixes the issue showing expressions editor (#62510)
* Use suggested value for uid
* update the snapshot
* use __expr__
* replace all -100 with __expr__
* update snapshot
* more changes
* revert redundant change
* Use expr.DatasourceUID where it's possible
* generate files
(cherry picked from commit 91221bc436)
Auth: Fix catch both both ErrInvalidAPIKey for context with APIKey (#62193)
* fix: capture both ErrInvalidAPIKey
* rename of variable
(cherry picked from commit c5cb5be3cc)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Encryption: Cache new DEKs (only) after a caution period (#60664)
* Encryption: Cache new DEKs (only) after commit
* Fix typo
* Update secrets manager tests with new failing case
* Update secrets manager tests with new clarifications (comments)
* Correct broken method calls
* Unify methods
* Cache data keys only after a caution period
* Caution period for data keys caching only for encrypt ops
(cherry picked from commit c4e067d49d)
Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
Datasources: Fix Proxy by UID Failing for UIDs with a Hyphen (#61723)
Fix Proxy by UID Failing for UIDs with a Hyphen
Hyphens are allowed in short IDs but not picked up by the
proxyPathRegexp. This caused the end of the uid to be proxied as part of
the path to the backing datasource which would usually cause a 404.
(cherry picked from commit f85d072c17)
Co-authored-by: Chris Marchbanks <csmarchbanks@gmail.com>
Plugins: enable the plugin sdk to get the json data for all datasources (#61729)
(cherry picked from commit 3b718a3e8f)
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
Auth: Fix correct error for updateapikey in context handler (#61544)
* fix: correct error for updateapikey
* refactor: send the correct err forward
* update: based on review
(cherry picked from commit 07bbc0716c)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
* Alerting: Set error annotation on EvaluationError regardless of underlying error type (#61506)
Set error annotation regardless of underlying error type
(cherry picked from commit b289b8ac6e)
* Also cherrypick the nilcheck that got added prior to 9.4
Alerting: Fix conversion of alert state from db state during manager warmup (#60933)
(cherry picked from commit 4d989860fb)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Plugins: add option to proxy ds connections through a secure socks proxy (#59254)
* Plugins: add feature to proxy data source connections
(cherry picked from commit 6805c951e9)
Alerting: Prevent uid collision in migration when db is case-insensitive (#60494)
* Alerting: Prevent short uid collision in legacy migration when db is case-insensitive
Two factors come into play that cause sporadic uid conflicts during legacy alert migration:
- MySQL and MySQL-compatible backends use case-insensitive collation.
- Our short uid generator is not a uniform RNG and generates uids in such a way that generations in quick succession have a higher probability of creating similar uids.
Normally we would be guaranteed unique short uid generation, however if the source alphabet contains
duplicate characters (for example, if we use case-insensitive comparison) this guarantee is void.
Generating even ~1000 uids in quick succession is nearly guaranteed to create a case-insensitive
duplicate.
(cherry picked from commit 570b62091c)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
RBAC: Fix DeleteUserPermissions not being called on Upsert org sync (#60531)
* fix DeleteUserPermissions not being called on RemoveOrgUser
* do not error out of auth flow
* fix test missing service
(cherry picked from commit 77786f236a)
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Alerting: Set Dashboard and Panel IDs on rule group replacement (#60374)
* Set Dashboard and Panel IDs on rule group replacement
* fix comments and abbreviate test variable name
* Update pkg/services/ngalert/provisioning/alert_rules.go
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
(cherry picked from commit 174c61b949)
Co-authored-by: Alex Moreno <alexander.moreno@grafana.com>
Navigation: Fix some missing pages in admin section (#60143)
* add stats and licensing under admin -> general when topnav is enabled
* add ldap to users and access
* use ID instead of Id
* add enterprise licensing node
(cherry picked from commit 39a4ba4396)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Navigation: Prevent app crash when importing a dashboard with a uid of `home` (#59874)
* change home id to be more unique, refactor so that home circular reference is never created
* prefix starred dashboards
* update reducer
(cherry picked from commit a589929c92)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Login: Fix failure to login a new user via an external provider if quota are enabled (#60015)
* Login: Fix failure to login a new user via an external provider if quota are enabled
(cherry picked from commit 341d7b01ee)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Alerting: Use the QuotaTargetSrv instead of the QuotaTarget in quota check (#60026)
Before this change, the alerting provisioning system incorrectly used
the QuotaTarget to check if alerting's request quota had been reached.
The quota service requires the QuotaTargetSrv, which is what's
registered with the service at startup time. This is leading to errors
in the provisioning system.
(cherry picked from commit e6743a7e9a)
Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
ServiceAccounts: Do not display warnings about secret scanner when scanner is disabled (#59952)
ServiceAccounts: Fix warnings about secret scanner when scanner is disabled
(cherry picked from commit d833031726)
Co-authored-by: Jo <joao.guerreiro@grafana.com>
DataSourcePermissions: Handle licensing properly for ds permissions (#59694)
* RBAC: add viewer grand if dspermissions enforcement is not enabled
* RBAC: Change permissions based on role prefix
* RBAC: Add option to for permission service to add a license middleware
* RBAC: Remove actions from query struct
(cherry picked from commit 6d1bcd9f40)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
RBAC: Handle edge case where there is duplicated acl entries for a role on a single dashboard (#58079)
* RBAC: Handle edge case where there is duplicated acl entries for a role
on a single dashboard
(cherry picked from commit 6aaf36776b)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Alerting: Fix swallowing of errors when attaching images to notifications (#59432)
* Break out image logic and add logging
* Attach alert log context to image attachment
* Fix capitalization
(cherry picked from commit 1481ace528)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
User: Optimize signed in user cache management (#59090)
* only access the cache if a user ID is set
* ignore all negative values
(cherry picked from commit d7a652ff7f)
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Internationalization: Enable internationalization by default (#59204)
* Enable internationalization feature flag by default
* Change i18n feature to beta
* Set i18n feature flag to stable
* update features
(cherry picked from commit ba0ac08465)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Navigation: share logic between `buildBreadcrumbs` and `usePageTitle` (#58819)
* simplify usePageTitle logic a bit
* use buildBreadcrumbs logic in usePageTitle
* always add home item to navTree, fix some tests
* fix remaining unit tests
(cherry picked from commit 824a562b03)
Navigation: use correct id to find cloud access policies page (#59123)
use correct id to find cloud access policies page
(cherry picked from commit 8761a71da2)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Alerting: Support Prometheus durations in Provisioning API (#58293)
Provisioning API should support Prometheus durations
(cherry picked from commit 57d6adbc7c)
Co-authored-by: Bart Peeters <birtpeeters@hotmail.com>
Nav: Split Admin into three sections for new IA (#58229)
* start to split admin into two sections
* most of new admin nav implemented
* landing pages
* hide admin for non-admins
* update admin redirects if not topnav
* clean up
* updated IA for admin (still WIP)
* move plugin pages into correct admin sections
* fix backend unit test
* move correlations into the correct section
* add translations for admin sections
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
(cherry picked from commit 5978dc138e)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Navigation: move connections + integrations to be a top level item (#58902)
* move connections + integrations to be a top level item
* add a test to check we can move apps to the root
* split out movePlugin logic into a separate function
* fix linting
* rename movePlugin -> addPluginToSection
(cherry picked from commit d46e3916a1)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>