Commit Graph

53975 Commits

Author SHA1 Message Date
Tom Ratcliffe
fc51ec70ba
Alerting: Add manage permissions UI logic for Contact Points (#92885)
* Add showPolicies prop

* Add manage permissions component for easier reuse within alerting

* Add method for checking whether to show access control within alerting

* Remove accidental console.log from main

* Tweak styling for contact point width and add manage permissions drawer

* Improve typing for access control type response

* Add basic test for manage permissions on contact points list

* Only show manage permissions if grafana AM and alertingApiServer is enabled

* Update i18n

* Add test utils for turning features on and back off

* Add access control handlers

* Update tests with new util

* Pass AM in and add tests

* Receiver OSS resource permissions

There is a complication that is not fully addressed: Viewer defaults to read:*
and Editor defaults to read+write+delete:*

This is different to other resource permissions where non-admin are not granted
any global permissions and instead access is handled solely by resource-specific
permissions that are populated on create and removed on delete.

This allows them to easily remove permission to view or edit a single resource
from basic roles.

The reason this is tricky here is that we have multiple APIs that can
create/delete receivers: config api, provisioning api, and k8s receivers api.
Config api in particular is not well-equipped to determine when creates/deletes
are happening and thus ensuring that the proper resource-specific permissions
are created/deleted is finicky.

We would also have to create a migration to populate resource-specific
permissions for all current receivers. This migration would need to be reset so
it can run again if the flag is disabled.

* Add access control permissions

* Pass in contact point ID to receivers form

* Temporarily remove access control check for contact points

* Include access control metadata in k8s receiver List & Get

GET: Always included.
LIST: Included by adding a label selector with value `grafana.com/accessControl`

* Include new permissions for contact points navbar

* Fix receiver creator fixed role to not give global read

* Include in-use metadata in k8s receiver List & Get

GET: Always included.
LIST: Included by adding a label selector with value `grafana.com/inUse`

* Add receiver creator permission to receiver writer

* Add receiver creator permission to navbar

* Always allow listing receivers, don't return 403

* Remove receiver read precondition from receiver create

Otherwise, Creator role will not be able to create their first receiver

* Update routes permissions

* Add further support for RBAC in contact points

* Update routes permissions

* Update contact points header logic

* Back out test feature toggle refactor

Not working atm, not sure why

* Tidy up imports

* Update mock permissions

* Revert more test changes

* Update i18n

* Sync inuse metadata pr

* Add back canAdmin permissions after main merge

* Split out check for policies navtree item

* Tidy up utils and imports and fix rules in use

* Fix contact point tests and act warnings

* Add missing ReceiverPermissionAdmin after merge conflict

* Move contact points permissions

* Only show contact points filter when permissions are correct

* Move to constants

* Fallback to empty array and remove labelSelectors (not needed)

* Allow `toAbility` to take multiple actions

* Show builtin alertmanager if contact points permission

* Add empty state and hide templates if missing permissions

* Translations

* Tidy up mock data

* Fix tests and templates permission

* Update message for unused contact points

* Don't return 403 when user lists receivers and has access to none

* Fix receiver create not adding empty uid permissions

* Move SetDefaultPermissions to ReceiverPermissionService

* Have SetDefaultPermissions use uid from string

Fixes circular dependency

* Add FakeReceiverPermissionsService and fix test wiring

* Implement resource permission handling in provisioning API and renames

Create: Sets to default permissions
Delete: Removes permissions
Update: If receiver name is modified and the new name doesn't exist, it copies
the permissions from the old receiver to the newly created one. If old receiver
is now empty, it removes the old permissions as well.

* Split contact point permissions checks for read/modify

* Generalise getting annotation values from k8s entities

* Proxy RouteDeleteAlertingConfig through MultiOrgAlertmanager

* Cleanup permissions on config api reset and restore

* Cleanup permissions on config api POST

note this is still not available with feature flag enabled

* Gate the permission manager behind FF until initial migration is added

* Sync changes from config api PR

* Switch to named export

* Revert unnecessary changes

* Revert Filter auth change and implement in k8s api only

* Don't allow new scoped permissions to give access without FF

Prevents complications around mixed support for the scoped permissions causing
oddities in the UI.

* Fix integration tests to account for list permission change

* Move to `permissions` file

* Add additional tests for contact points

* Fix redirect for viewer on edit page

* Combine alerting test utils and move to new file location

* Allow new permissions to access provisioning export paths with FF

* Always allow exporting if its grafana flavoured

* Fix logic for showing auto generated policies

* Fix delete logic for contact point only referenced by a rule

* Suppress warning message when renaming a contact point

* Clear team and role perm cache on receiver rename

Prevents temporarily broken UI permissions after rename when a user's source of
elevated permissions comes from a cached team or basic role permission.

* Debug log failed cache clear on CopyPermissions

---------

Co-authored-by: Matt Jacobson <matthew.jacobson@grafana.com>
2024-09-27 19:56:32 +01:00
Yuri Tseretyan
86faeae6d2
Alerting: Update GetTemplates to return sorted list of templates (#93933) 2024-09-27 18:49:37 +01:00
Sven Grossmann
157ded7c3f
Tempo: Create trace to logs links with traces in structured metadata (#93923) 2024-09-27 17:11:09 +01:00
Timothee
f3ba16d3b7
Tidying up the Grafana setup documentation (#93860) 2024-09-27 15:57:38 +00:00
Bruno
8f66b7fdb0
Cloud migrations: disable flaky test (#93921)
* Cloud migrations: disable flaky test

* Update pkg/services/cloudmigration/cloudmigrationimpl/xorm_store_test.go

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>

---------

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2024-09-27 16:36:08 +01:00
Ihor Yeromin
d5e35c4b78
Legend: Render legend threshold colors (#92838)
* feat(barchart): render legend threshold and value mapping colors

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-09-27 17:02:03 +02:00
Mark Visser
c46736f490
Adjust Grafana setup docs (#93894)
* Fix duplicate command and code format

* Minor adjustment

* add bash to code line 

added bash to a code line

* run prettier

---------

Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
2024-09-27 15:00:37 +00:00
renovate[bot]
0401fa1652
Update dependency @faker-js/faker to v9 (#93917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 15:35:15 +01:00
brendamuir
ff5e6da358
Alerting docs: adds simple mode for query section (#93909)
* Alerting docs: adds simple mode for query section

* prettier and add steps section

* delete space

* feedback from sonia

* prettier
2024-09-27 16:22:34 +02:00
Ashley Harrison
bc6752a51c
SingleTopNav: Add "Grafana" header to MegaMenu (#93798)
* add "Grafana" header to MegaMenu

* add truncation for really long custom app titles

* revert padding change since paddingLeft will handle it
2024-09-27 15:20:45 +01:00
renovate[bot]
0e4c90dd87
Update emotion monorepo (#93914)
* Update emotion monorepo

* add @emotion/serialize package + update unit test

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-09-27 15:16:12 +01:00
xiyu95
ce8c42ab35
chore: enforce the validationMessageHorizontalOverflow for InlineField (#93858)
chore: enforce the validationMessageHorizontalOverflow prop for inlineField
2024-09-27 07:01:18 -07:00
Karl Persson
0160f4f72c
RBAC: Add legacy authorization checks to service accounts (#93753)
* Extract a helper funtion to perform list with authorization checks

* Add k8s verb to utils package

* Construct default mapping when no custom mapping is passed

* Configure authorization checks for service accounts

* Fix helper and add filtering to service accounts
2024-09-27 15:53:11 +02:00
renovate[bot]
7710f1c3cf Update dependency rollup to v4.22.5 2024-09-27 13:36:59 +00:00
renovate[bot]
e5d0877af7 Update dependency knip to v5.30.6 2024-09-27 13:13:07 +00:00
Torkel Ödegaard
1941ae21d7
DashboardScene: Refactor body property to be layout manager interface (#93738)
* Began layout refactor

* fixing tests

* Progress

* Progress

* Progress

* Progress

* Progress

* Progress

* finally no errors

* Remove unused interface

* Remove unused interface

* fixed tests

* Update

* Update

* Fixes to keyboard shortcuts and solo route

* fix lint issues
2024-09-27 15:11:28 +02:00
Misi
7e94d05d39
Auth: Fix token rotation redirect when session storage redirect is enabled (#93906)
Fix token rotation redirect when session storage redirect is enabled
2024-09-27 14:57:46 +02:00
renovate[bot]
598179227c
Update dependency yaml to v2.5.1 (#93899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 13:44:00 +01:00
Alex Khomenko
5b53b37634
Routing: Update components using props.match to use hooks (#93792)
* RuleViewed: Get params from hook

* ProviderConfigPage: Use hooks for redux logic

* Update NewDashboardWithDS

* Update StorageFolderPage

* Update StoragePage

* Cleanup

* Update PublicDashboardPage

* Update RuleEditor

* Update BrowseFolderAlertingPage

* Update BrowseFolderLibraryPanelsPage

* Update SoloPanelPage

* Fix test

* Add useParams mocks

* Update ServiceAccountPage

* Simplify mocks

* Cleanup

* Reuse types for path params

* Remove mock for router compat in test

* Switch to element

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-09-27 15:39:29 +03:00
grafana-pr-automation[bot]
9fc4436418
I18n: Download translations from Crowdin (#93904)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-27 13:28:37 +01:00
Konrad Lalik
db42af20ca
Alerting: Prometheus primary mode for the alert list page (#92975)
* Lazy loading of mimir groups

* Refactor rule statuses

* Use prometheus endpoint to populate namespace and group dropdowns

* Add a feature toggle

* Use lazy loading ruler rules if the feature toggle enabled

* Remove unnecessary props form dynamic table

* Remove query from hash calculation

* Conditionally load ns and group autocompletions from Prom or Ruler APIs

* Fix prometheus dto labels property type

* Add a new suggestions hook which provides autocomplete options for the alert rule form

* Improve delete status handling

* Add waiting for Prometheus endpoint consistency after update submission

* Get rule definition from ruler or prometheus endpoint in useCombinedRule

* Add Prometheus consistency check. Fix view page redirects

* Remove rules reload after rule creation, remove statuses from Prom primary mode

* Add waiting for Prometheus consistency on delete rule action

* Add groups list rendering improvements

* Add memo to useAbilities

* Fix GMA consistency check, fix GMA statuses

* defer filered rules rendering

* Update failing tests

* Update locales

* Add rule-id tests

* Remove unused action

* update loading styles

* Fix unrelated test

* Add a new object for reading alerting feature toggles, address minor review issues

* Improve consistency check

* update i18n

* Improve rule form redirects

* Refactor feature toggle handling

* Update docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md

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

* Update public/app/features/alerting/unified/components/rule-viewer/RuleViewer.tsx

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

* Fix prettier issues

* Fix i18n

* Fix the feature toggle description

* Fix rule updates, fix ruler-based suggestions, wait for deletion for GMA rules

* Fix rename

* Remove unused code, improve copy

* Update i18n

* Fix url redirect when serving from subpath

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-09-27 14:27:16 +02:00
Matheus Macabu
fcb17379ea
LibraryElements: add fake service implementation and replace its usage in Dashboard API (#93783)
* LibraryElements: add fake service implementation

* Dashboards: replace fake LibraryElements implementation
2024-09-27 14:22:29 +02:00
Roman Pertl
3437c8be7f
Docs: grafana image renderer instructions custom cert in container (#93646)
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2024-09-27 13:00:57 +01:00
Sam Jewell
51d73249b2
Docs: Update Usage insights logs docs- Scope (#93425)
Update Usage insights logs docs: Scope

As far as I can tell, in https://github.com/grafana/grafana/pull/59931
we started to record Usage Insights events for Explore queries.
And in https://github.com/grafana/grafana/pull/78097 we further improved
our implementation of that logging.

This documentation should have been updated back then to match. So I'm
updating it now.
2024-09-27 12:33:24 +01:00
Jack Westbrook
012d62782c
Fix: Prevent import errors caused by Rollup 4 (#93903)
fix(packages): prevent import errors by injecting exports.esmodule and check for default prop
2024-09-27 12:18:52 +01:00
Artur Wierzbicki
35f5ef007c
Chore: update ownership of grafana live FE code (#93823)
update ownership of live FE
2024-09-27 11:43:02 +01:00
Tobias Skarhed
f49b4d35f2
OAuth: Add custom unauthorized message option in configuration (#93717)
* read custom message from config

* Read error key from bootdata

* oopsie

* Remove console.log

* Update docs and sample/default inis

* Add default key value to the config
2024-09-27 12:11:27 +02:00
renovate[bot]
08dab3f816
Update dependency eslint-plugin-react to v7.37.0 (#93891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 10:48:11 +01:00
Gabriel MABILLE
6137a75552
Docs: document the managed_service_accounts_enabled configuration option (#93883)
* Config: Disclaimer single-org support for managed service accounts

* Add docs update

* Update docs/sources/setup-grafana/configure-grafana/_index.md
2024-09-27 11:07:02 +02:00
Jack Westbrook
f22bee8ca2
Build: Migrate packages to rollup v4 (#93731)
* chore(packages): bump rollup and rollup plugins to latest

* chore(packages): fix rollup node-externals plugin imports

* chore(packages): update build/bundle scripts to pass configPlugin arg to rollup

* feat(packages): migrate rollup configs to be esm compliant

* feat(packages): build using es2018 target and use same tsconfig and tsc for rollup
2024-09-27 11:00:13 +02:00
renovate[bot]
52611d4d02
Update dependency webpack-dev-server to v5.1.0 (#93845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-27 09:42:03 +01:00
Sonia Aguilar
3dbba3e509
Alerting: Fix Grafana recording rules expressions (#93878)
fix grafana recording rules expressions
2024-09-27 10:07:48 +02:00
Roberto Jiménez Sánchez
826245f511
CloudMigrations: Avoid building GMS base path when provided (#93793)
Avoid building GMS base path when provided
2024-09-27 09:22:38 +02:00
Gabriel MABILLE
7928245eb6
ManagedServiceAccounts: Add a config option to disable the feature on-prem (#93571)
* ManagedServiceAccounts: Add a config option to disabled by default

* Update log in pkg/services/extsvcauth/registry/service.go

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-09-27 09:11:59 +02:00
Torkel Ödegaard
2cfba519f1
DashboardScene: Fixes urlsync issue when going from normal to home dashboard (#93758)
* DashboardScene: Fixes urlsync issue when going from normal to home dashboard

* Better fix

* Update
2024-09-27 09:10:49 +02:00
Matheus Macabu
40bcd0df41
LibraryElements: export GetAllElements to service (#93782) 2024-09-27 08:48:56 +02:00
Ryan McKinley
87c81825b7
K8s: Move standalone apiserver CLI to enterprise (#93799) 2024-09-27 09:04:35 +03:00
Michael Mandrus
e672796632
CloudMigrations: Fix OrderBy clause in GetSnapshotList sql handler (#93857)
fix order_by clause in list query
2024-09-26 22:51:01 -04:00
Jev Forsberg
dc1670ed9a
CI: Bump alpine version (#93865)
* baldm0mma/up_alpine/ update alpine

* baldm0mma/resolve commits
2024-09-26 20:50:28 -05:00
Jev Forsberg
b17b98aeb9
CI: Update retry_command function (#93863)
* baldm0mma/update args

* baldm0mma/update_args/ conflict
2024-09-26 19:19:38 -06:00
Jev Forsberg
dc03cc0f9a
CI: Bump alpine version (#93861)
baldm0mma/bump_alpine
2024-09-26 18:58:21 -06:00
Alexander Weaver
378d92130d
Alerting: Don't suppress translation errors in PointsFromFrames (#93747)
* don't suppress error

* reorder

* re-add nilcheck
2024-09-26 16:30:50 -05:00
Steve Simpson
acb051b314
Alerting: Fix logging for failed annotations writing. (#93856) 2024-09-26 23:27:40 +02:00
Kevin Minehart
a847608061
CI: add promotion step for publish grafanacom (#93851)
* add promotion step for publish grafanacom

* publish-grafanacom depends on compile-build-cmd

* use DRONE_TAG

* add docstring comment for depends_on
2024-09-26 22:19:19 +01:00
Kim Nylander
6951feff88
[DOC] Add videos to Explore docs (#93847)
* Add videos to Explore docs

* Apply suggestions from code review
2024-09-26 15:32:43 -04:00
renovate[bot]
125a8a41dd Update dependency nx to v19.8.2 2024-09-26 16:57:15 +00:00
Santiago
920d79680d
Alerting: Fix Slack notification errors when using bad title template (#93771)
* Alerting: Fix Slack notification errors when using bad title template

* upgrade grafana/alerting to latest main
2024-09-26 12:58:58 -03:00
renovate[bot]
7e4eb61be8 Update dependency dompurify to v3.1.7 2024-09-26 15:49:43 +00:00
Joao Silva
1418e88695
Bookmarks: Do not query preferences if no user logged in (#93840) 2024-09-26 16:47:57 +01:00
grafana-delivery-bot[bot]
80adb74205
Release: update changelog for 11.2.1 (#93835)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-26 16:06:40 +01:00