Commit Graph

2648 Commits

Author SHA1 Message Date
drew08t d1f854e071 Merge branch 'v9.0.x' of github.com:grafana/grafana into v9.0.x 2022-07-14 10:40:31 -07:00
Grot (@grafanabot) d8eada0132 Preferences: Get home dashboard from teams (#52225) (#52229)
(cherry picked from commit c8b5307c61)

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2022-07-14 17:09:36 +02:00
kay delaney 262720a702 Export: Fix export/import of dash with library panels (#49319) (#51760)
(cherry picked from commit 8053f770c1)
2022-07-14 11:17:12 +01:00
Grot (@grafanabot) 9457f67210 Alerting: Disable /api/admin/pause-all-alerts with Unified Alerting (#51895) (#52077)
/api/admin/pause-all-alerts only takes effect for legacy alerts. This
change returns a 403 if it's called when legacy alerting is disabled.

Fixes #51729

(cherry picked from commit 0cbc14961a)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-07-14 16:58:37 +08:00
idafurjes 59dbbb41f8 Do not check permissions while deleting external snapshot (#51897) (#51904)
(cherry picked from commit ee88b44458)
2022-07-07 15:45:32 +02:00
Grot (@grafanabot) 11c15f3bfa [v9.0.x] Plugins: Register management endpoints only when external managed is also false (#51817)
* Plugins: Register management endpoints only when external managed is also false (#51802)

* Only define plugin install endpoints when catalog enabled

* add external check

(cherry picked from commit 40dff288cd)

* fix test

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Will Browne <will.browne@grafana.com>
2022-07-07 11:19:32 +02:00
Grot (@grafanabot) b73d85fdd8 Only define plugin install endpoints when catalog enabled (#51788) (#51790)
(cherry picked from commit ba9fc10a74)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-07-06 11:28:08 +02:00
Jguer c5aa4f4869 Fix: Choose Lookup params per auth module (#395)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>

Fix: Prefer pointer to struct in lookup

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

Fix: user email for ldap

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

Fix: Use only login for lookup in LDAP

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

Fix: use user email for ldap

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

fix remaining test

fix nit picks
2022-06-30 15:19:25 +03:00
Eric Leijonmarck 5735f6c88b [v9.0.x] Auth: Case insensitive ids duplicate usagestats (#51240)
* merged and backport to 9.0

* implement the missing method GetDialect for sqlStore

* Add back mockstore missing methods
2022-06-28 11:03:53 +02:00
Grot (@grafanabot) 5b390de1b6 Alerting: Add legacy indicator to navbar (#49511) (#49614)
* update id and add translation key

* remove logs

(cherry picked from commit e3a51a4aa8)

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
2022-06-28 10:38:58 +02:00
Grot (@grafanabot) a8401fc8e8 OAuth: Restore debug log behavior (#51244) (#51247)
(cherry picked from commit d2ab3556fa)

Co-authored-by: Jguer <joao.guerreiro@grafana.com>
2022-06-22 15:44:55 +02:00
Serge Zaitsev 72c6512e3f [v9.0.x] Chore: Remove global bus variable (#51126)
* Chore: Remove global bus variable (#50765)

* Chore: Remove global bus variable

* fix bus in tests

(cherry picked from commit 0b55c41d05)

* fix the imports
2022-06-21 11:40:44 +02:00
Grot (@grafanabot) 50c729c23e Bug: Fix delete dashboard snapshot for deleted dashboards (#50919) (#50937)
* Bug: Fix delete dashboard snapshot for deleted dashboards

* Fix lint and make it work for all the errors

* Fix lint

(cherry picked from commit 8ab8ce609b)

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
2022-06-16 13:27:16 +02:00
Ashley Harrison 87a325e6df Chore: Remove newNavigation feature toggle and old navbar code (#50872) (#50932)
* Remove newNavigation feature toggle + old code

* fix unit tests

* remove buildCreateNavLinks

(cherry picked from commit d0fa326798)
2022-06-16 11:26:46 +01:00
Grot (@grafanabot) 8ef7fd3859 backend: add PlaylistUIDs to Playlist; remove playlist IDs from API (#49609) (#50828)
* backend/api: refactor PlaylistId to PlaylistUid
* Add org_id to Get and Update playlist functions
Fix migration - no longer pad the uid; fix mysql syntax

The relevant tests are passing using postgres, mysql and the default sqllite backends, but there are a number of other failing tests when using postgres and myself so I'm not entirely confident with those results.

* fix bad query in GetPlaylistItem and add a test that would have caught the mistake in the first place. Reverted the playlist_uid column addition in playlist_item; it became unnecessary after this PR.

Added default value to the new UID column based on PR feedback.

* break this PRs migration into its own function

* Playlists: Update UI to use the updated API

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
(cherry picked from commit a33a023629)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
2022-06-14 15:48:44 -04:00
Grot (@grafanabot) 5c3bac348c OAuth: Redirect to login if no oauth module is found or if module is not configured (#50661) (#50702)
* OAuth: Redirect to login if no oauth module is found or if module is not
configured

* OAuth: Update test to check for location header

(cherry picked from commit 95a4c4a4d6)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-06-13 17:14:49 +02:00
Dan Cech bc2f941004 clean up duplicated user creation code (#50178) (#50327)
* clean up duplicated user creation code

* remove unused duplicate getOrCreateOrg function

* fix up tests

(cherry picked from commit 9350ab781c)
2022-06-13 07:12:00 -04:00
Grot (@grafanabot) ed169da58c SearchV2: instant local updates, folder events (#50001) (#50194)
(cherry picked from commit d2868a1ce7)

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2022-06-03 22:29:48 +02:00
Will Browne d4fde160a1 resolve conflicts (#50184)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-06-03 18:03:45 +02:00
Grot (@grafanabot) e674c9a2d1 [v9.0.x] Search (SQL): support dashboardUID query parameter (#50126)
* Search (SQL): support dashboardUID query parameter (#50121)

(cherry picked from commit d452322aa8)

* manual merge

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-06-02 18:10:29 -07:00
Grot (@grafanabot) 3e7a2111e6 RBAC: Make RBAC action names more consistent (#49730) (#50083)
* update action names

* correctly retrieve teams for signed in user

* remove test

* undo swagger changes

* undo swagger changes pt2

* add migration from old action names to the new ones

* rename from list to read

* linting

* also update alertign actions

* fix migration

(cherry picked from commit 5dbea9996b)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-06-02 15:15:40 +02:00
Grot (@grafanabot) 63c1a2706f API: Fix swagger specification (#50034) (#50060)
* API: Fix swagger specification

* Validate specification after generation

(cherry picked from commit 6112bd0c63)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2022-06-02 10:09:39 +02:00
Grot (@grafanabot) d344b69fbb Plugins: Remove deprecated /api/tsdb/query metrics endpoint (#49916) (#49996)
* remove /api/tsdb/query

* revert changes to alert rules

* regenerate spec based on 9.0.x

(cherry picked from commit abfc711c53)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-06-01 13:22:53 +02:00
Grot (@grafanabot) 088125ae28 Plugins: Support headers field for check health (#49930) (#49949)
(cherry picked from commit a7813275a5)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-05-31 18:22:35 +02:00
Grot (@grafanabot) e3127d4070 Datasource: Fix allowed cookies to be forwarded as header to backend datasources (#49541) (#49935)
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
(cherry picked from commit 1196b4a609)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-05-31 17:17:55 +02:00
Vardan Torosyan ba0beb8596 Quick Ugly Fix for Oauth not to make web_hack.go panic (#49653) (#49797) 2022-05-30 11:55:03 +02:00
Grot (@grafanabot) 1c67b35d6b Preferences: Fix updating of preferences for Navbar and Query History (#49677) (#49694)
* Preferences: Fix PUT for Navbar and Query History

* Update linting

* Fix linting

* Use models defined in preference package in preferences

* Remove white space

* Revert "Use models defined in preference package in preferences"

This reverts commit 6f7aa9f8d3.

(cherry picked from commit e25a49ff49)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2022-05-26 14:57:55 +02:00
Grot (@grafanabot) 3fac10229b Notification history: Enable by default (#49502) (#49681)
* remove persistNotifications feature flag

* remove unused imports

(cherry picked from commit 8b509eb6dd)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-05-26 13:19:18 +02:00
Grot (@grafanabot) 4e35edcf07 Fix wrap_handler() panic during OAuth login (#49671) (#49678) 2022-05-26 12:44:13 +02:00
Grot (@grafanabot) 4a6b94ae8e [v9.0.x] SearchV2 - Fix starred dashboards for new organizations error (#49649)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
2022-05-25 21:10:21 +02:00
Grot (@grafanabot) 4bd6f62dfd AccessControl: Replace IsEnterprise checks with license checks (#49572) (#49646)
(cherry picked from commit 5caf97be40)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-25 20:59:47 +02:00
Grot (@grafanabot) 0cc75cc593 show notification tab only to editor (#49624) (#49632)
(cherry picked from commit 307c207a24)

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-05-25 18:36:21 +02:00
Grot (@grafanabot) a2f5457463 AccessControl: Grant data source reader to all users when running oss (#49514) (#49604)
* grant data source reader to all users when running oss or enterprise
without license

* fix asserts in alerting tests

* add oss licensing service for test setup

* fix tests to pass in enterprise

* lint

* fix tests

* set setting.IsEnterprise flag for tests

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
(cherry picked from commit 1796a1d277)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-25 14:17:14 +02:00
Ashley Harrison ce86b4ebe7 Navigation: Show starred items in the NavBar (#49219)
* switch saved items to starred items

* hook up redux properly

* Better query + hook up DashList

* update initial state so it's never undefined

* update GetDashboard call

* use new star service

* add scroll + maxwidth to navbar hover menu, sort starred items alphabetically

* increase height, revert changes to CustomScrollbar

* ellipsis!

* update starred dashboard name in navtree

* sort after renaming

* limit to first 50 starred dashboards found
2022-05-23 16:45:46 +01:00
Kristin Laemmert 8c753999df chore: replace artisanal FakeDashboardService with generated mock (#49276)
* chore: replace handmade FakeDashboardService with generated mock

Maintaining a handcrafted FakeDashboardService is not sustainable now that we are in the process of moving the dashboard-related functions out of sqlstore.

* remove dialect global variable
2022-05-23 11:14:27 -04:00
Sofia Papagiannaki 060af782df Docs: Add deprecation notices for datasource endpoints (#49411)
* Update markdown

* Update swagger
2022-05-23 16:11:47 +02:00
Sofia Papagiannaki be0d043673 API: Add endpoint for updating a data source by its UID (#49396)
* API: Add endpoint for updating a data source by UID

* Update docs markdown

* Update swagger

* Apply suggestions from code review

Co-authored-by: Selene <selenepinillos@gmail.com>
2022-05-23 15:13:13 +02:00
Joan López de la Franca Beltran e43879e55d Encryption: Add support for multiple data keys per day (#47765)
* Add database migrations

* Use short uids as data key ids

* Add support for manual data key rotation

* Fix duplicated mutex unlocks

* Fix migration

* Manage current data keys per name

* Adjust key re-encryption and test

* Modify rename column migration for MySQL compatibility

* Refactor secrets manager and data keys cache

* Multiple o11y adjustments

* Fix stats query

* Apply suggestions from code review

Co-authored-by: Tania <yalyna.ts@gmail.com>

* Fix linter

* Docs: Rotate data encryption keys API endpoint

Co-authored-by: Tania <yalyna.ts@gmail.com>
2022-05-23 13:13:55 +02:00
Ashley Harrison ae8c11bfa4 Tweak name + add description (#49387) 2022-05-23 10:52:52 +01:00
idafurjes cc0448927a Add TraceID to data proxy logs (#49302) 2022-05-23 10:38:05 +02:00
sam boyer a3402641d6 api: Validate dashboards on save via coremodels, behind feature toggle (#48252)
* Add coremodelValidation feature flag

* coremodels: use stubs when feature flag is off

* api: validate dashboards on save

* Need pointer receiver for FeatureManager

* Update dashboard Go model

* Align doc comments

* Include CoremodelRegistry in test

* Wedge coremodel in on all test cases, ugh

* Ugh fix comment again

* Update pkg/framework/coremodel/staticregistry/provide.go

Co-authored-by: Artur Wierzbicki <wierzbicki.artur.94@gmail.com>

* Update Thema (and its deps) for better errs

* omg whitespace

Co-authored-by: Artur Wierzbicki <wierzbicki.artur.94@gmail.com>
2022-05-22 02:44:12 +02:00
sh0rez 3d5d8c785b pkg/web: restrict handler types (#48495)
Makes `pkg/web` only accept handles from the following set:

```go
	handlerStd       = func(http.ResponseWriter, *http.Request)
	handlerStdCtx    = func(http.ResponseWriter, *http.Request, *web.Context)
	handlerStdReqCtx = func(http.ResponseWriter, *http.Request, *models.ReqContext)
	handlerReqCtx    = func(*models.ReqContext)
	handlerReqCtxRes = func(*models.ReqContext) Response
	handlerCtx       = func(*web.Context)
```

This is a first step to reducing above set to only `http.Handler`.

---

Due to a cyclic import situation between `pkg/models` and `pkg/web`, parts of this PR were put into `pkg/api/response`, even though they definitely do not belong there. This however is _temporary_ until we untangle `models.ReqContext`.
2022-05-20 12:45:18 -04:00
Karl Persson f5ec4bcbd2 remove action to manage plugin that is not used or documented (#49309) 2022-05-20 11:52:29 +02:00
Gabriel MABILLE 689f51599a AccessControl: Use RBACBuiltInRoleAssignmentEnabled in the frontend instead of FeatureToggle (#49261)
* AccessControl: Frontend changes to basic role enablement
2022-05-20 06:53:28 +00:00
Sofia Papagiannaki 6bb843bd0e API: Introduce health and resources data source endpoints using the data source UID (#48676)
* API: introduce health and resources datasource endpoints with UID

* Document endpoints

* Update swagger
2022-05-19 19:27:59 +03:00
Kristin Laemmert 33359aee6c backend/sqlstore: move GetDashboards to Dashboard Service (#49175)
I also did some mild file renaming to try and get the dashboards package closer in line with the sqlstore split design doc.
2022-05-19 10:59:12 -04:00
Kristin Laemmert 2b8909a9c6 move GetDashboardUIDById out of sqlstore and into dashboard service (#49170)
* sqlstore: move GetDashboardUIDById to dashboard service
* winding change through the rest of the codebase
2022-05-19 10:13:02 -04:00
Yuriy Tseretyan f7f2253072 Alerting: Fix anonymous access to alerting (#49203)
* introduce a fallback handler that checks that role is Viewer.
* update UI nav links to allow alerting tabs for anonymous user
* update rule api to check for Viewer role instead of SignedIn when RBAC is disabled
2022-05-19 09:22:26 -04:00
ying-jeanne e2ea064584 integrat star service into APIs (#49220) 2022-05-19 14:32:10 +02:00
Jeff Levin c7f8c2cc73 add isPublic to dashboard (#48012)
adds toggle to make a dashboard public

* config struct for public dashboard config
* api endpoints for public dashboard configuration
* ui for toggling public dashboard on and off
* load public dashboard config on share modal

Co-authored-by: Owen Smallwood <owen.smallwood@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-05-17 14:11:55 -08:00