Commit Graph

1519 Commits

Author SHA1 Message Date
Yuriy Tseretyan
ce527c4084 Alerting: Fix RBAC actions for notification policies (#49185) (#49348)
* squash actions "alert.notifications:update", "alert.notifications:create", "alert.notifications:delete" to "alert.notifications:write"
* add migration
* update UI to use the write action
* update docs
* changelog

(cherry picked from commit 258b3ab18b)
2022-05-20 19:03:57 -04:00
Grot (@grafanabot)
2a8c8280b8 Alerting: Update migration to migrate only alerts that belong to existing org\dashboard (#49192) (#49199)
* Update migration to migrate only alerts that belong to existing org\dashboard

(cherry picked from commit d87fdc1037)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-05-19 12:14:44 -04:00
Grot (@grafanabot)
67323206c4 Alerting: Fix flaky migration test (#48595) (#49190)
* Fix flaky migration test

(cherry picked from commit 5c32a6b6f6)

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2022-05-19 10:43:47 -04:00
Joan López de la Franca Beltran
6883e451dc Encryption: Add Prometheus metrics (#48603) (#48888)
* Encryption: Add Prometheus metrics (#48603)

(cherry picked from commit 9826a694a8)

* Conflicts solved from commit 9826a69
2022-05-11 00:47:48 +02:00
Ieva
fe351b308f backport 48171 (#48775) 2022-05-06 09:35:37 +01:00
Grot (@grafanabot)
c375e67bf9 Update documentation to explicitly state we should not be putting migrations behind feature flags (#48663) (#48666)
(cherry picked from commit 38fc0c68e4)

Co-authored-by: Jeff Levin <jeff@levinology.com>
2022-05-05 10:12:34 -08:00
Grot (@grafanabot)
ed24f18234 unhide alert rule's data sources during migraiton (#48559) (#48703)
(cherry picked from commit f85e758972)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-05-04 09:52:35 -04:00
Grot (@grafanabot)
dd2bec5904 Alerting: skip flaky test (#48500) (#48517)
(cherry picked from commit 9e3a01a1be)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-05-04 07:31:51 +02:00
Grot (@grafanabot)
3b40f18af1 Alerting: add safeguard for migrations that might cause dataloss (#48526) (#48570)
* Alerting: add safeguard for migrations that might cause dataloss

* add test for panic

* add documentation

(cherry picked from commit 0a87ef06af)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-05-02 11:12:39 +02:00
Matthew Jacobson
771ab80b4b Alerting: Create fewer contact points on migration (#47291) (#48301)
* Alerting: Create fewer contact points on migration

Previously a new contact point was created for every unique combination
of channels attached to any legacy alert. This was very hard to maintain,
requiring modifications in every generated contact point.

This change deduplicates the generated contact points to a more
reasonable state. There should now only be one contact point per legacy
channel, and we attached multiple contact points to a route by nesting
them. The sole exception to this is if there were multiple default
legacy channels, in which case we create a redundant contact point
containing all of them used only in the root policy. This allows for a
much simpler notification policy structure.

Co-authored-by: gotjosh <josue.abreu@gmail.com>
(cherry picked from commit 0301d956da)
2022-04-26 14:07:07 -05:00
Grot (@grafanabot)
a228985d97 Alerting: Add integration test for AddDashAlertMigration (#47730) (#48019)
Adds tests for: 
what circumstances should trigger alert migration from legacy alerting to unified alerting. 
the execution of the migration itself.

Co-authored-by: gotjosh <josue.abreu@gmail.com>
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2022-04-21 13:38:31 +08:00
Grot (@grafanabot)
c8327d04a8 Tracing: Use common traceID context value for opentracing and opentelemetry (#46411) (#47786)
* use common traceID context value for opentracing and opentelemetry

* support sampled trace IDs as well

* inject traceID into NormalResponse on errors

* Finally the test passed

* fix the test

* fix linter

* change the function parameter

Co-authored-by: Ying WANG <ying.wang@grafana.com>
(cherry picked from commit 41012af997)

Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
2022-04-14 18:08:51 +02:00
Grot (@grafanabot)
f01f1073b8 Chore: Remove bus.Bus field (#47695) (#47704)
* Chore: Remove bus.Bus field

* fix integration test

(cherry picked from commit e86b6662a1)

Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
2022-04-13 19:11:20 +02:00
Grot (@grafanabot)
5332a2db05 fix: bug where disabled didnt disable the use of service account (#47688) (#47725)
(cherry picked from commit 673a2ab49e)

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2022-04-13 18:47:08 +02:00
Serge Zaitsev
7729b14da3 Chore: Remove bus (#47511) (#47677)
* Chore: Remove bus

* remove unused const

(cherry picked from commit 18e93c7077)
2022-04-13 11:51:21 +02:00
Grot (@grafanabot)
5721ff9689 Chore: Remove bus from contexthandler (#47458) (#47636)
* Chore: remove bus from contexthandler

* remove bus from orgredirect

(cherry picked from commit 2cf88cfec8)

Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
2022-04-12 22:31:53 +02:00
Grot (@grafanabot)
556178c714 Chore: Remove bus from contexthandler (#47374) (#47616)
* Chore: Remove bus from contexthandler

* fix tests

* try different wire binding

* maybe remove a few more dispatches

* fix tests

(cherry picked from commit d153d896c5)

Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
2022-04-12 12:05:27 +02:00
Grot (@grafanabot)
7a1e09631f Access control: SQL filtering for annotation listing (#47467) (#47555)
* pass in user to attribute scope resolver

* add SQL filter to annotation listing

* check annotation FGAC permissions before exposing them for commenting

* remove the requirement to be able to list all annotations from annotation listing endpoint

* adding tests for annotation listing

* remove changes that got moved to a different PR

* unused var

* Update pkg/services/sqlstore/annotation.go

Co-authored-by: Ezequiel Victorero <evictorero@gmail.com>

* remove unneeded check

* remove unneeded check

* undo accidental change

* undo accidental change

* doc update

* move tests

* redo the approach for passing the user in for scope resolution

* accidental change

* cleanup

* error handling

Co-authored-by: Ezequiel Victorero <evictorero@gmail.com>
(cherry picked from commit ef4c2672b3)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-04-11 14:29:54 +02:00
Serge Zaitsev
3a7fc80948 Chore: Remove last bus parts from login package (#47313)
* Chore: Remove last bus parts from login package

* fix middleware tests
2022-04-06 08:45:01 +02:00
Piotr Jamróz
8490fd77e3 Users: clean up OrgId when all user orgs are removed (#46003)
* Clean up orgId when user organization is removed

* Add a test for removing user org

* Fix linting errors

* Update comment

* Fix linting errors

* Make removing user org more explicit
2022-04-06 08:35:58 +02:00
Josh Hunt
71db5115f4 User: Expose GCOM user ID as externalUserId in grafanaBootData (#47307)
* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* fix sql indtent

Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-04-05 14:44:33 +01:00
Serge Zaitsev
bf9e0e8bc8 Chore: Remove some bus from login package (login attempts) (#47310) 2022-04-05 13:07:27 +02:00
Yuriy Tseretyan
51114527dc Alerting: handle folder permissions when fine-grained access enabled (#47035)
* Use alert:create action for folder search with edit permissions. This matches the action that is used to query dashboards (the update will be addressed later)
* Update rule store to use FindDashboards instead of folder service to list folders the user has access to view alerts. Folder service does not support query type and additional filters. 
* Do not check whether the user can save to folder if FGAC is enabled because it is checked on API level.
2022-04-01 19:33:26 -04:00
Karl Persson
a5e4a533fa Access control: use uid for dashboard and folder scopes (#46807)
* use uid:s for folder and dashboard permissions

* evaluate folder and dashboard permissions based on uids

* add dashboard.uid to accept list

* Check for exact suffix

* Check parent folder on create

* update test

* drop dashboard:create actions with dashboard scope

* fix typo

* AccessControl: test id 0 scope conversion

* AccessControl: store only parent folder UID

* AccessControl: extract general as a constant

* FolderServices: Prevent creation of a folder uid'd general

* FolderServices: Test folder creation prevention

* Update pkg/services/guardian/accesscontrol_guardian.go

* FolderServices: fix mock call expect

* FolderServices: remove uneeded mocks

Co-authored-by: jguer <joao.guerreiro@grafana.com>
2022-03-30 15:14:26 +02:00
Kat Yang
e6726681a9 Chore: Remove x from annotation test (#46935) 2022-03-25 13:23:21 -04:00
Kat Yang
90f2233ea9 Chore: Remove global database engine variable from annotation (#46940)
* Chore: Remove global database engine variable from annotation

* 💩
2022-03-25 13:23:09 -04:00
Kat Yang
19be0b4170 Chore: Remove x from org users (#46848)
* Chore: Remove x from org users

* Chore: Remove x.Dialect() from org users
2022-03-25 17:19:01 +00:00
Gabriel MABILLE
53e7f8405f AccessControl: Permission Migrator, clean unused arguments (#46937) 2022-03-25 14:04:10 +01:00
Gabriel MABILLE
9dc06cd21f simplify bulkAssignRoles (#46891) 2022-03-24 18:06:44 +01:00
Kat Yang
39f14a2ec2 Chore: Remove x from login attempt (#46853) 2022-03-24 17:00:41 +00:00
kay delaney
8329cd59f6 LibraryPanels: Increase max description length to 2048 chars (#46601) 2022-03-24 12:14:56 +00:00
idafurjes
77976ea810 Add fakes for db interface (#46885) 2022-03-23 15:06:47 +01:00
Jean-Philippe Quéméner
a80f04c949 Alerting: add collision safe update function for alertmanager configurations (#46692)
* Alerting: add collision safe update function for alertmanager configurations

* fix typo

* use bootstrap func for tests

* move hash calculation to store

* remove icons lol

* remove removed field
2022-03-23 09:31:46 +01:00
Kat Yang
884c2351d8 Chore: Remove x from org (#46851) 2022-03-22 21:17:53 +00:00
Karl Persson
ee9badecdf Access Control: Add test flag to enable access control (#46780)
* Add feature flags options to test db
2022-03-22 20:48:32 +01:00
idafurjes
5db1a2e804 Add DB interface (#46832) 2022-03-22 15:43:53 +01:00
Marcus Efraimsson
be7bcbf94e Chore: Add tests for plugin settings sqlstore (#46792)
Follow up of #46777 adding tests for plugin settings in sqlstore package.
2022-03-22 15:34:27 +01:00
Selene
b2af18f129 Chore: Remove bus from dashboard service (#46829)
* Move DeleteDashboard funtion into dashboards store service, remove bus and update tests

* Remove bus from folder service and update more tests

* Fix mock
2022-03-22 14:36:50 +01:00
ying-jeanne
adc0cbf176 remove global variable in annotation (#46746)
* remove global varaible in annotation

* remove todo

* replace intransaction with withdbtransaction

* fix typo
2022-03-22 19:20:57 +08:00
Ezequiel Victorero
c717320942 Adding FGAC annotations validation for creation and deletion (#46736)
Access Control: Adding FGAC annotations validation for creation and deletion
Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
2022-03-21 14:28:39 -03:00
Karl Persson
7ab1ef8d6e Access Control: Support other attributes than id for resource permissions (#46727)
* Add option to set ResourceAttribute for a permissions service
* Use prefix in access control sql filter to parse scopes
* Use prefix in access control metadata to check access
2022-03-21 17:58:18 +01:00
ying-jeanne
0d5a6c2194 remove bus from search and avoid import cycle (#46789)
* fix the import cicle

* fix some unittest

* fix removal bus from search
2022-03-21 23:54:30 +08:00
Marcus Efraimsson
1044585b50 Plugins: Fix problematic query (#46777)
Fixes mysql error "sql: expected 0 arguments, got 1" introduced via #46283
2022-03-21 15:42:05 +01:00
Serge Zaitsev
fec634a091 Chore: Remove bus.Dispatch from guardian package (#46711)
* replace bus in guardian with sqlstore

* fix a couple of tests

* replace bus in the rest of the tests

* allow init guardian from other packages

* make linter happy

* init guardian in library elements

* fix another test in libraryelements

* fix more tests

* move guardian mock one level deeper

* fix more tests

* rename init functions
2022-03-21 10:49:49 +01:00
Yuriy Tseretyan
2bd4c9ccde respect query filter in FindDashboards (#46652) 2022-03-18 22:38:32 +01:00
Will Browne
bda3f860a8 Plugins: Add plugin settings DTO (#46283)
* add clearer service layer

* re-order frontend settings for clarity

* fix fetch fail

* fix API response

* fix mockstore

* in -> where
2022-03-18 20:49:13 +01:00
idafurjes
52bd7618dd Remove global variable from user (#46696)
* Remove global variable from user

* Remove missed x
2022-03-18 09:15:23 +01:00
Ashley Harrison
586272e5f0 Navigation: Introduce a preferences table to store Navbar preferences (#44914)
* First attempt at creating new navbar_preferences table in db

* Apply to every nav item instead of just home

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* Chore: introduce initTestDB options for features

* fix unit tests

* Add another unit test and some logic for detecting if a preference already exists

* tidy up

* Only override IsFeatureToggleEnabled if it's defined

* Extract setNavPreferences out into it's own function, initialise features correctly

* Make the linter happy

* Use new structure

* user essentials mob! 🔱

* user essentials mob! 🔱

* Split NavbarPreferences from Preferences

* user essentials mob! 🔱

* user essentials mob! 🔱

* Fix lint error

* Start adding tests

* Change internal db structure to be a generic json object

* GetJsonData -> GetPreferencesJsonData

* Stop using simplejson + add some more unit tests

* Update pkg/api/preferences.go

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Updates following review comments

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* Change patch to upsert, add a unit test

* remove commented out code

* introduce patch user/org preferences methods

* Return Navbar preferences in the get call

* Fix integration test by instantiating JsonData

* Address review comments

* Rename HideFromNavbar -> Hide

* add swagger:model comment

* Add patch to the preferences documentation

* Add openapi annotations

* Add a short description

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* Update unit tests

* remove unneeded url

* remove outdated comment

* Update integration tests

* update generated swagger

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-03-17 12:07:20 +00:00
Jguer
d5883c1b27 Service Accounts: Implement basic usage stats (#46619)
* Stats: do not count SAs as users

* Stats: implement basic service account metrics

* Stats: do not count service account tokens as api keys

* Stats: fix metric names

* Stats: add SA stats test

* rename user to sa
2022-03-16 16:54:34 +01:00
Yuriy Tseretyan
ea815d640f Search Service to support search for folders available for alerting (#46483)
* support new query type "alert-folder"
* move action calculation to the constructor of the filter
* update filter to support query type `dash-folder-alerting` and empty dashboard actions
* require folders:read to access alert rules
2022-03-16 14:07:04 +00:00