Commit Graph

3504 Commits

Author SHA1 Message Date
George Robinson
d5ff95cc42 [v8.5.x] Require alert.notifications:write permissions to test receivers and templates (#871)
Require alert.notifications:write permissions to test receivers and templates (#865)

(cherry picked from commit 3c21ab70075256d4ba8e4fbfdcb15f5a394161fa)
2023-05-22 10:58:50 +02:00
Yuri Tseretyan
f23efb1bbd [v8.5.x] Alerting: Update migration to put alerts to the default folder if dashboard folder is missing (#66616)
Alerting: Update migration to put alerts to the default folder if dashboard folder is missing (#65577)

* extract function

* use context logger

* put alert to general folder if folder is missing

* move folderHelper init

* add test

* Update pkg/services/sqlstore/migrations/ualert/ualert.go

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>

---------

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
(cherry picked from commit 7b2f44762e)

# Conflicts:
#	pkg/services/sqlstore/migrations/ualert/migration_test.go
#	pkg/services/sqlstore/migrations/ualert/ualert.go
2023-04-17 15:58:30 +02:00
Emil Tullstedt
bbe9c1bd2a [v8.5.x] Login: Fix panic when UpsertUser is called without ReqContext (#62539) (#62575)
Login: Fix panic when UpsertUser is called without ReqContext (#62539)

(cherry picked from commit b1151dd118)
2023-01-31 13:23:12 +01:00
Jo
4e4f4218d1 Fix: Email and username trimming and invitation validation (#58449)
* Trim leading and trailing whitespaces from email and username on signup

* Check whether the provided email address is the same as where the invitation sent

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
2022-11-14 13:13:06 +01:00
Emil Tullstedt
656e270bd9 Chore: Upgrade Go to 1.19.2 (#56857)
We also need to upgrade the linter together with the Go version, all the changes should relate to either fixing linting problems or upgrading the Go version used to build Grafana.
2022-10-13 14:53:51 +02:00
Sofia Papagiannaki
58b7ae14ce [v8.5.x] Chore: Release 8.5.14 (#56698)
* remove support for v1

(cherry picked from commit 8630a7a991af74edc4030f57d37a4bc263202fde)

* Security: Make proxy endpoints not leak sensitive HTTP headers

Fixes CVE-2022-31130

(cherry picked from commit 2974574a53ab6d26be7b706e76271173a91fea3a)

* Security: Fix do not forward login cookie in outgoing requests

(cherry picked from commit 54a32fc83b233f5910495b5fcca0b4f881221538)

* Add test for username/login field conflict

(cherry picked from commit 7aabcf2694)

* Swap order of login fields

(cherry picked from commit 5ec176cada)

* "Release: Updated versions in package to 8.5.14" (#547)

Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
2022-10-11 15:25:10 +03:00
Ieva
3282afc648 V8.5.12 security patch (#486) (#55495)
* Data source: prevent from using auth proxy header as custom data source header (#477)

* apply security changes for auth proxy permission escalation

* add links to CVE

* remove duplicate check

* apply security fix for admin only folder migration (#484)

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

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-09-20 16:40:52 +01:00
Joan López de la Franca Beltran
51fa81c419 Rendering: Add support for renderer token (#54425) (#54438)
(cherry picked from commit a4f75cc0438712c90b02d24740416f8615e3a0cb)
(cherry picked from commit 6ec06f66b9)
2022-08-30 14:05:05 +02:00
Grot (@grafanabot)
5260d264fb alerting: redact alertmanagers in scheduler logs (#54183) (#54186)
(cherry picked from commit 438c95892f)

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2022-08-24 17:07:26 -04:00
Yuriy Tseretyan
ac565335ff [v8.5.x] Alerting: AlertingProxy to elevate permissions for request forwarded to data proxy when RBAC enabled (#53681)
* use constants from prior to the refactoring
2022-08-12 13:28:19 -04:00
Yuriy Tseretyan
af8853d0bf [8.5.x] Alerting: Remove user input from error response (#53147) 2022-08-02 16:51:55 -04:00
Selene
8ce81019db Add GetDialect function (#52818) 2022-07-27 12:58:41 +02:00
Gabriel MABILLE
393c63e479 RBAC: Fix Anonymous Editors missing dashboard controls (#52649) 2022-07-26 09:19:35 +02:00
Grot (@grafanabot)
3ace91016e Fix anonymous access (#52615) (#52635)
(cherry picked from commit 8d938175f5)

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-07-22 11:08:50 +02:00
gotjosh
79c998c760 Alerting: Allow the webhook notifier to support a custom Authorization header (#52515) (#52621)
* Allow the webhook notifier to support a custom Authorization header

Instead of doing something clever of re-using the existing username/password fields of Basic Authentication - I opted for two diffent fields to match the upstream Alertmanager configuration (that in turn is based of the HTTP Basic authentication).

 It'll fail if you have values for both HTTP Basic Authentication and Authorization.

(cherry picked from commit b026f2bc5d)
2022-07-22 09:41:49 +01:00
Matthew Jacobson
6162f12369 Alerting: Fix Teams notifier not failing on 200 response with error (#52254) (#52269)
Team's webhook API does not always use the status code to communicate errors.
There are cases where it returns 200 and an error message in the body.
For example, 429 - Too Many Requests or when the message is too large.
Instead, what we should be looking for is a response body = "1".

https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using?tabs=cURL#send-messages-using-curl-and-powershell
(cherry picked from commit efa0d90093)
2022-07-14 15:04:17 -04:00
Jguer
b3e1d5cb5d Fix: Choose Lookup params per auth module (#397)
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-07-14 15:04:41 +01:00
Grot (@grafanabot)
6c70574ff1 Alerting: Fix bug where state did not change between Alerting and Error (#52204) (#52208)
This commit fixes a bug where the state did not change from Alerting to Error if the evaluation result returned an error, or from Error to Alerting if evaluations stopped returning errors.

(cherry picked from commit 34d45977ca)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-07-14 06:08:27 -04:00
George Robinson
2160b0e9ab Alerting: Backport fix database unavailable removes rules from scheduler (#52140) 2022-07-14 09:45:04 +01:00
Ieva
8a7fe0f49f Access Control: Allow dashboard admins to query org users (#51695)
* "Release: Updated versions in package to 8.5.6" (#370)

* allow dashboard admins to query org users

Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
2022-07-04 14:22:37 +01:00
gotjosh
8356365b0a Alerting: Don't stop the migration when alert rule tags are invalid (#51253) (#51339)
* Alerting: Don't stop the migration when alert rule tags are invalid

As we migrate we expect the `alertRuleTags` on a dashboard alert to be a JSON object. However, it seems this is not really validated by Grafana and an user can change the format to something else that the JSON parser is not able to marshal into a `map[string]string`.

Let's do a bit better by "attempting" to parse the tags and if we can't we'll simple return an empty map. The data is still there so if the user wishes they can go back, fix the data and attemp the migration again.

(cherry picked from commit 90646e7f41)
2022-06-23 12:37:21 -05:00
Gabriel MABILLE
e9ec97b34c RBAC: Include alert.rules action when setting folder permissions (#49946) (#50510)
* Generate additional actions when setting folder permissions in acl list

* Add migration for managed folder permissions to include alert rule
actions

(cherry picked from commit bdff63d4a8)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-06-09 14:25:04 +02:00
Grot (@grafanabot)
9500c94c98 [v8.5.x] RBAC: drop permissions with folder:create action added by migration (#50493)
* add migrator to drop folder create actions that was set fromt he folder (#49878)

(cherry picked from commit f4f25d911b)

* Add missing const

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: gamab <gabi.mabs@gmail.com>
2022-06-09 13:45:29 +02:00
Grot (@grafanabot)
18d37f81d8 Alerting: Improve Unified Alerting Rollback Warning (#50470) (#50471)
After migrating to unified alerting, users must explicitly allow rolling
back to legacy alerting by setting force_migration = true in config.
This updates the panic message to clarify why that's required and what
the consequences of rolling back will be.

Fixes #50469

(cherry picked from commit 30f035ca34)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-06-09 07:48:34 +02:00
Tania
711ea1c2cb Encryption: Stop decrypting EE encrypted secrets with legacy encryption (#50090) (#50176)
(cherry picked from commit 7a614fd8a1)
2022-06-03 17:35:53 +02:00
Tania
1c2e240995 [v8.5.x]Encryption: Fix decrypting secrets with inactive deks (#50011) 2022-06-02 11:23:41 +02:00
Alexander Weaver
b90006d723 Alerting: Remove double quotes from matchers (#50038) (#50044)
* Alerting: Remove double quotes from matchers

With #38629 a new Alertmanager configuration object was introduced with `object_matchers`, it was meant to circumvent around the fact that Prometheus label names don't support a set of characters that Grafana needs to support for alerts, silences, matchers, etc. (with a common example being elasticsearch's `.`).
This new object does not include the label of sanitzation or validation that its Prometheus equivalent supports in `matchers` and therefore are semantically not equivalent.

This triggered the problem that when the migration is run, we use `matchers` as the object to populate in configuration for routing policies, but when the UI does its first save this object is transformed to `object_matchers`.

Matchers that were previously running just fine would immediately stop working as soon as the configuration is saved.

This problem surfaced with the introduction of #49952 where we stopped stripping double quotes from matchers (not just regex but _all_ of them).

* Add comment explaining rationale and future removal

Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com>
(cherry picked from commit 1a50b0dbb7)

Co-authored-by: gotjosh <josue.abreu@gmail.com>
2022-06-01 16:51:47 -05:00
Grot (@grafanabot)
80a3be920c Alerting: Validate alert notification UID length (#45546) (#49512)
* validate alert notification UID length

* simplify-ish

* remove unused field

* whoopsie

* delete newline

* remove check

* apply feedback

(cherry picked from commit 635fa4ab0f)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-05-24 17:22:08 +02:00
Konrad Lalik
46ea845720 [v8.5.x] Alerting: Fix access to alerts for viewer with editor permissions when RBAC is disabled (#49427)
* Alerting: Fix access to alerts for viewer with editor permissions when RBAC is disabled (#49270)

* Add folder edit permission for users with Viewer role
* relax permissions required to create an alert when RBAC is disabled

(cherry picked from commit 3dfafbadef)

* fix backend conflict

* fixup

Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com>
2022-05-24 09:13:43 +02:00
Grot (@grafanabot)
ccab3e7e0f Parse template when validating it (#49282) (#49284)
(cherry picked from commit e8b498fe8b)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-23 17:33:05 -05:00
Grot (@grafanabot)
5136f7de89 Encryption: Add support for decrypting ciphertexts with algorithm metadata (#49312) (#49336)
(cherry picked from commit 15605b6c80)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2022-05-23 07:52:49 +02:00
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
Yuriy Tseretyan
1547e279b1 Alerting: Fix anonymous access to alerting (#49203) (#49268)
* 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

(cherry picked from commit f7f2253072)
2022-05-19 12:33:29 -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
Grot (@grafanabot)
14bb847de6 Indicate whether templates are provisioned (#49025) (#49194)
(cherry picked from commit 25da759bf2)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-18 14:19:56 -05:00
Grot (@grafanabot)
88df5db710 LibraryPanels: Fix library panels not connecting properly in imported dashboards (#49161) (#49176)
* Use saved dashboard model to create library panel connections when importing

* Rename variables in dashboard import for clarity

(cherry picked from commit 71e1305364)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2022-05-18 17:02:49 +02:00
Grot (@grafanabot)
e6357db4b0 fetch permissions by uid (#49100) (#49134)
(cherry picked from commit 5c4ebb6f34)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-18 11:25:16 +02:00
Grot (@grafanabot)
6f5960fffa [v8.5.x] Alerting: Provisioning GET routes for mute timings (#49113)
* Alerting: Provisioning GET routes for mute timings (#49044)

* Define GET routes and run codegen

* Wire up forked and non-generated API

* Implement and wire

* Tests, authorization

* Fix linter error

(cherry picked from commit 9af30f6570)

* ErrorContains -> Error, then Contains

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-17 14:49:12 -05: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
Grot (@grafanabot)
939156bc2f Dashboard: Fix dashboard update permission check (#48746) (#48853)
* Change dash permission check for dashboards that are moved to a different folder

(cherry picked from commit 6923b4c6c6)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-05-10 14:10:59 +02:00
Grot (@grafanabot)
c15d34e273 Put identifier in path (#48831) (#48832)
(cherry picked from commit 99eaa0fc20)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-06 16:55:10 -05:00
Grot (@grafanabot)
37120a96d6 POST routes to PUT routes (#48828) (#48829)
(cherry picked from commit 809aa38103)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-06 14:48:51 -05:00
Grot (@grafanabot)
8917c920ae Alerting: check provenance of alert rules in current API (#48694) (#48827)
(cherry picked from commit 30d9cc81ec)

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2022-05-06 21:27:51 +02:00
Grot (@grafanabot)
bd9073a6b6 fix a bug (#48782) (#48800)
(cherry picked from commit 3c78196d0b)

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-05-06 10:52:39 +02:00
Ieva
fe351b308f backport 48171 (#48775) 2022-05-06 09:35:37 +01:00
Grot (@grafanabot)
f76a5f1796 [v8.5.x] Alerting: Provisioning message templates (#48789)
* Alerting: Provisioning message templates (#48665)

* Generate API for writing templates

* Persist templates app logic layer

* Validate templates

* Extract logic, make set and delete methods

* Drop post route for templates

* Fix response details, wire up remainder of API

* Authorize routes

* Mirror some existing tests on new APIs

* Generate mock for prov store

* Wire up prov store mock, add tests using it

* Cover cases for both storage paths

* Add happy path tests and fix bugs if file contains no template section

* Normalize template content with define statement

* Tests for deletion

* Fix linter error

* Move provenance field to DTO

* empty commit

* ID to name

* Fix in auth too

(cherry picked from commit 0f56462fbe)

* ErrorContains -> Error then Contains

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-06 09:33:33 +02: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
Karl Persson
52d2419667 Fix permission query for postgres (#48543) (#48568)
(cherry picked from commit 9622e7457e)
2022-05-04 09:22:37 +02:00