Commit Graph
9252 Commits
Author SHA1 Message Date
Jean-Philippe Quéméner e41f78a56d Alerting: make sure to update contact point references when updating (#54896) 2022-09-08 15:20:52 +02:00
Jo ef245874da OAuth: Allow assigning Server Admin (#54780)
* extract errors to errors file

* implement oauth server admin assignment

* add server admin tests

* deduplicate autoAssignOrgRole

* deduplicate strict setting

* deduplicate strict setting

* add support for generic oauth

* add role attribute strict support for generic oauth

* add support for github/gitlab

* assignGrafanaAdmin option is here to stay

* unify similar errors

* add config option

* add okta server admin mapping

* remove never used Company attribute

* unify generic oauth role extract with other methods

* case insensitive role match as in azure

* add ini settings

* add server admin to devenv

* remove duplicate fields

* add documentation to oauth

* fix titlecase test

* implement doc feedback
2022-09-08 06:11:00 -04:00
Artur Wierzbicki 1353177e15 Search: Add substring matcher (#54813)
* search: bring back substring search

* lint fix

* search: bring back ngram

* search: bring back ngram

* search: more tests
2022-09-08 12:10:30 +02:00
Carl Bergquist b4e3c89f60 instrumentation: dont instrument ErrSkip at all (#54880)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2022-09-08 11:14:55 +02:00
Ezequiel Victorero bcab0194f1 PublicDashboards: disable form if user does not has permissions (#54853) 2022-09-07 18:29:01 -03:00
owensmallwood 108678a8cc Public Dashboards: Only use queries from dashboard for caching (#54596)
Don't accept frontend queries for query caching when its from a public dashboard. Use queries on the dashboard instead.
2022-09-07 12:08:52 -06:00
Matthew Jacobsonandbrendamuir 940d18ad57 Alerting: Sanitize invalid label/annotation names for external alertmanagers (#54537)
* Alerting: Sanitize invalid label/annotation names for external alertmanagers

Grafana's built-in Alertmanager supports both Unicode label keys and values; however, if using an external
Prometheus Alertmanager label keys must be compatible with their data model.
This means label keys must only contain ASCII letters, numbers, as well as underscores and match the regex
`[a-zA-Z_][a-zA-Z0-9_]*`.

Any invalid characters will now be removed or replaced by the Grafana alerting engine before being sent to
the external Alertmanager according to the following rules:

- `Whitespace` will be removed.
- `ASCII characters` will be replaced with `_`.
- `All other characters` will be replaced with their lower-case hex representation.

* Prefix hex replacements with `0x`

* Refactor for clarity

* Apply suggestions from code review

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2022-09-07 11:39:39 -04:00
Alexander Weaver b193eaed6e Alerting: Resetting the notification policy tree to the default policy will also restore default contact points (#54608)
* Add test that resetting the route restores the default receiver

* Return error instead of panic

* Adjust error string to match styleguide
2022-09-07 09:28:10 -05:00
mhuangwm 39102c6656 Admin: Add support to configure default admin email (#54363) 2022-09-07 14:38:40 +02:00
Nicholas Wiersmaandjguer 9e704fec3c JWT: Add support for assigning org roles (#54277)
* feat: allow jwt role to be set

* chore: update documentation

* fix: cr suggestions

* fix: lint issues

* respect org auto assign and default org ID

* add server admin to devenv

Co-authored-by: jguer <joao.guerreiro@grafana.com>
2022-09-07 14:00:33 +02:00
Ashley Harrison 66ce33bc5b make Browse the root item of Dashboards when topnav is enabled (#54782) 2022-09-07 09:24:10 +01:00
Alexander Weaver b8d1474609 Fix incorrect propagation of org ID in rule endpionts (#54603) 2022-09-06 14:51:54 -05:00
Guilherme Caulada 20589f76f4 Secrets: Convert secret migration to a background service (#54676)
* Convert secret migration to a background service

* Fix merge conflicts

* Return concrete type for secret migration provider
2022-09-06 16:21:25 -03:00
Kevin Minehart 1169f14d47 CI: move grabpl build-frontend-packages from grabpl to grafana (#53072)
* move grabpl build-frontend-packages

* add frontend and lerna packages

* grabpl build-frontend-packages -> ./bin/build build-frontend-packages

* move getgrafanaversion

* add noinstalldeps flag

* fix compiler error

* fix lint error

* add missing flags
2022-09-06 20:09:08 +03:00
Ilya Galimyanov b593d371ef Alerting: Telegram: truncate long messages (#54339)
Truncate messages longer than 4096 characters
2022-09-06 16:47:04 +01:00
Laura Fernández 066710a7bc Navigation: use navId and pageNav on Alerting - Contact Points page (#54451) 2022-09-06 16:25:07 +02:00
ismail simsek 9c6a6ca487 graphite and opentsdb integration tests (#54733) 2022-09-06 17:19:04 +03:00
Will Browne 15756ecf86 remove unused cfg (#54770) 2022-09-06 08:59:28 -04:00
George Robinson 77e53f9986 Alerting: Fix boolean comparison on PostgreSQL (#54730) 2022-09-06 08:28:42 +01:00
Ryan McKinley ac93cf1db2 Playlists: Migrate to UIDs and load dashboards in the frontend (#54125) 2022-09-05 20:40:01 -07:00
George Robinson c4d32dd687 Fix nil logger in SqlStore (#54726) 2022-09-05 18:24:19 +01:00
Karl Persson ff35e35ce0 RBAC: Move service and evaluator to acimpl package (#54714)
* RBAC: Move access control evaluator to acimpl package

* RBAC: Move service to acimpl package
2022-09-05 18:15:47 +02:00
Kevin Yu 34fe7a1119 Plugins: Add feature toggles for long running queries (#54349)
* Add feature toggles for long running queries

* update feature flag name

* make feature toggle frontend only
2022-09-05 08:39:45 -07:00
Ezequiel Victorero bfa35ff8d8 PublicDashboards: Add RBAC to secured endpoints (#54544) 2022-09-05 12:22:39 -03:00
ismail simsek e912029ad3 influxdb integration tests (#54700) 2022-09-05 15:35:53 +02:00
kay delaney 65c3ad6721 LibraryElements: Fix inability to delete library panels under MySQL (#54600)
Closes #53456
2022-09-05 14:28:32 +01:00
Sofia Papagiannaki 950715b255 API: Do not expose user input in datasource error responses (#53483) 2022-09-05 16:10:45 +03:00
Torkel Ödegaard 11de1dfe40 TopNav: Plugin page layouts / information architecture (#53174)
* Change nav structure when topnav is enable to do initial tests with new information architecture

* Support for nested sections

* Updated

* sentance case

* Progress on plugin challange

* Rewrite to functional component

* Progress

* Updates

* Progress

* Progress on things

* missing file

* Fixing issue with runtime, need to use setter way to set component exposed via runtime

* Move PageLayoutType to grafana/data

* Fixing breadcrumb issue, adding more tests

* reverted backend change

* fix recursive issue with cleanup
2022-09-05 14:56:08 +02:00
Ashley Harrison 8d489dfd9b Navigation: Landing pages behind feature toggles (#54576)
* super quick attempt

* feature toggle everything

* only construct alertNav if there are navChildren

* fix toggle name

* plugin landing pages poc

* add apps route + put behind feature toggle

* use toIconName

* rename to NavLandingPage

* feature toggle new routes

* don't modify GetServerAdminNode

* some fairly hacky code to check if the plugin has a root page

* remove trailing slash
2022-09-05 10:07:13 +01:00
78978048c3 Instrumentation: log the total number of db queries per request (#54647)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2022-09-05 07:39:22 +02:00
linomanandIeva d2bb72fb3c Login: Remove single admin team restriction (#54534)
* Remove single member team restriction

* Add label when permissions list is empty

* Fix unit tests

* Add co-author.

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2022-09-02 18:16:39 +02:00
Guilherme Caulada f4a35a4645 Secrets: Implement secrets manager plugin fallback store (#54496)
* Refactor fallback to be isolated to plugin secret store

* Check for error value on replace fallback test helper

* Move ResetPlugin from test_helpers.go to plugin.go

* Add check to GetUnwrappedStoreFromCache

* Add fallback GetAll query to WithFallbackEnabled

* Add mutex lock to WithFallbackEnabled

* Add cache to fallback store

* Fix linter issues

* Fix linter issues

* Fix linter issues
2022-09-02 12:39:18 -03:00
Mihály Gyöngyösi 53c095aae7 RBAC: Disable RBACPermissionValidation by default (#54626)
* update conf/provisioning/access-control/sample.yaml
2022-09-02 17:18:01 +02:00
Kevin Minehart a76ce1f567 CI: move grabpl e2e tests from grabpl to grafana (#53075)
* move grabpl e2e tests
2022-09-02 11:02:10 -04:00
Dimitris Sotirakis 8be3ea269d Default to pull_request events (#54640) 2022-09-02 17:39:05 +03:00
Ieva de6584b976 Auth: Extend auth token errors with user ID (#54633)
* add user ID to user token errors

* remove colon

* move user ID to debug log, so it wouldn't accidentally be added in response
2022-09-02 14:38:25 +01:00
Will Browne ecdcafb258 manager exposes renderer + secrets manager (#54629) 2022-09-02 14:20:10 +02:00
Will Browne 43987e7f8c Plugins: Fix plugin registered startup log line (#54634)
* fix plugin registered log

* remove stale test
2022-09-02 14:01:52 +02:00
Joe Blubaugh 5e4fd94413 Alerting: Write and Delete multiple alert instances. (#54072)
Prior to this change, all alert instance writes and deletes happened
individually, in their own database transaction. This change batches up
writes or deletes for a given rule's evaluation loop into a single
transaction before applying it.

Before:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8           398           2991381 ns/op         1133537 B/op      27703 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
    util.go:127: alert definition: {orgID: 1, UID: FovKXiRVzm} with title: "an alert definition FTvFXmRVkz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: foDFXmRVkm} with title: "an alert definition fovFXmRVkz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: VQvFuigVkm} with title: "an alert definition VwDKXmR4kz" interval: 60 created
PASS
ok      github.com/grafana/grafana/pkg/services/ngalert/store   1.619s
```

After:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8          1440            816484 ns/op          352297 B/op       6529 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
    util.go:127: alert definition: {orgID: 1, UID: 302r_igVzm} with title: "an alert definition q0h9lmR4zz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: 71hrlmR4km} with title: "an alert definition nJ29_mR4zz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: Cahr_mR4zm} with title: "an alert definition ja2rlmg4zz" interval: 60 created
PASS
ok      github.com/grafana/grafana/pkg/services/ngalert/store   1.383s
```

So we cut time by about 75% and memory allocations by about 60% when
storing and deleting 100 instances.

This change also updates some of our tests so that they run successfully against postgreSQL - we were using random Int64s, but postgres integers, which our tables use, max out at 2^31-1
2022-09-02 11:17:20 +08:00
Michael Mandrus 39c31416a4 improve log in plugin check (#54599) 2022-09-01 13:47:37 -04:00
Timur Olzhabayev b5b41988cf Docs: Deprecating packages_api and removing it from our pipelines (#54473) 2022-09-01 18:15:44 +02:00
Serge Zaitsev 927ddf9376 Chore: Move login attempt methods to separate service (#54479)
* Chore: Move login attempt methods to separate service

* attempt to fix tests

* fix syntax

* better time mocking

* initialise now func
2022-09-01 18:08:42 +02:00
Dimitris Sotirakis 212f0609eb Check if dist dir exists (#54590) 2022-09-01 10:43:04 -04:00
Timur Olzhabayev f7302149d0 Fix: Adjusting plugin.json schema regex (#54515) 2022-09-01 15:53:38 +02:00
Dimitris Sotirakis 7e2238cf6f CI: Generate Grafana version (and metadata) when the build binary is built (#54393)
* Add GenerateVersions as BeforeFunc

* Delete gen-version

* Fix lint

* Get build id from env var
2022-09-01 15:43:40 +03:00
Karl Persson be6b8d91eb Correlations: Use correct fallback handlers (#54511)
* Correlations: Use correct fallback handlers

* Add signed in middleware to all routes
2022-09-01 12:29:44 +02:00
Josh Hunt f15ce633c9 Navigation: Don't round app plugin icon images (#54543)
* Navigation: Don't round app plugin icon images

* round icon
2022-09-01 10:28:50 +01:00
Kat Yang 58449d42ed Chore: Add dashboard thumbnails service (#54500)
* Chore: Add dashboard thumbnails service

* Fix errors in dashboard thumbs impl

* Inject dashboardThumbsService into wire
2022-08-31 16:45:41 -04:00
Ryan McKinley 55fe1506ba Plugins: unlock on plugin startup failure (#54555) 2022-08-31 16:02:07 -04:00
owensmallwood f4bbce15a0 Public Dashboards: Add Expressions Support (#54336)
Adds support for expressions with public dashboards
2022-08-31 09:11:10 -06:00