Commit Graph
1064 Commits
Author SHA1 Message Date
Yuri TseretyanandSonia Aguilar 28a284f40b [release-12.3.1] Alerting: Fix contact points issue (#115427)
Alerting: Protect sensitive fields of contact points from unauthorized modification
- Introduce a new permission alert.notifications.receivers.protected:write. The permission is granted to contact point administrators.
- Introduce field Protected to NotifierOption
- Introduce DiffReport for models.Integrations with focus on Settings. The diff report is extended with methods that return all keys that are different between two settings.
- Add new annotation 'grafana.com/access/CanModifyProtected' to Receiver model
- Update receiver service to enforce the permission and return status 403 if unauthorized user modifies protected field
- Update receiver testing API to enforce permission and return status 403 if unauthorized user modifies protected field.
- Update UI to disable protected fields if user cannot modify them

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2025-12-16 18:49:10 +00:00
CharandasandIevaVasiljeva 6c728f8dec Provisioning: allow access check to proceed even when non access policy (#112946)
* Provisioning: allow access check to proceed even when non access policy

* Provisioning: access checker needs this for MT

* add permissions registration

* remove scopes

* use in MT for now

* no need to document an internal flag here

* revert vscode change

* refactor the authZ permission evaluation and mapper code to allow evaluating unscoped actions beyond creation

* update wire

* gofmt

* add boolean to struct

---------

Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
2025-11-02 13:14:08 -08:00
Stephanie Hingtgen 445e88cb93 Dashboard Provisioning: Add duplicate cleanup for modes 0-2 (#113336) 2025-11-02 20:39:15 +00:00
Owen Diehl b0ecc36fd6 [App-Platform,Git-Sync]: Add sync job & phase metrics (#113253)
* [git-sync] add sync job & phase metrics

* refactoring sync jobs for clarity and ease of instrumentation

* make gofmt
2025-10-31 10:24:17 -07:00
Jo a339a2dad3 AuthZ: Instantiate needed clients for IAM hooks (#113268)
build API with zanzana hooks support
2025-10-31 15:37:43 +01:00
Tania 4813256e0a OpenFeature: Log key name and namespace in handler (#113288) 2025-10-31 12:31:48 +00:00
Misi e09deb6889 IAM: Use the new authorizer for Teams (#113275)
Use the new authorizer for Teams
2025-10-31 10:48:01 +00:00
Ryan McKinley 53aed34652 LibraryPanels: Support CRUD via apiserver (#113035) 2025-10-31 08:14:38 +03:00
Michael Mandrus cf242def3a Secrets: Refactor data_key_id out of the encoded secure value payload (#112077)
* Secrets: Refactor data_key_id out of the encoded secure value payload (#111852)

* everything compiles

* tests pass

* remove file included by accident

* add entry to gitignore

* some scaffolding for the migration executor

* remove file

* implement and test the migration

* use xkube.Namespace in our interfaces

* add todo

* update wire deps

* add some logs

* fix wire dependency ordering

* create tests to validate error conditions during migrations

* only run the migration as an MT api server

* formatting issues

* change detection of secrets running as MT server

* add todo

* use more specific initializer flags

* make secrets playwright tests work

* set new properties to true by default

* remove developer mode flag

* fix unit tests
2025-10-30 23:04:32 -04:00
Misi 44beedd09a IAM: Handle NULL external_uid, is_provisioned correctly for Teams (#113219)
* Handle NULL external_uid correctly with MySQL

* Add NULL handling to is_provisioned column
2025-10-30 15:50:40 +00:00
Kyle BrandtandTodd Treece c3d7dbc258 SQL Expressions: Add endpoint to get Schemas (#108864)
Return the SQL schema for all DS queries in request (to provide information to AI / Autocomplete for SQL expressions).

All DS queries are treated as if they were inputs to SQL expressions in terms of conversion, regardless if they are selected in a query or not.

Requires feature toggle queryService = true

Endpoint is apis/query.grafana.app/v0alpha1/namespaces/default/sqlschemas

---------

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2025-10-30 10:05:12 -04:00
Ryan McKinley d303746ff9 ShortURL: Use UpdateStatus client (#111170) 2025-10-30 15:57:03 +03:00
Costa Alexoglou bbfb8268d1 Provisioning: concurrent deletes in finalizers and 404 handling (#113155)
* fix: concurrent deletes in finalizers and 404 handling

* chore: feedback review

* fix: broken tests
2025-10-30 11:55:36 +01:00
Todd Treece de88abafdd Plugins API: Merge meta and installs (#112962) 2025-10-29 13:32:31 -04:00
Costa Alexoglou 25dd7e927f feat: add granular context timeout (#112952)
* feat: add granular context timeout

* test: forced thread timeout

* fix: test assumption for blocks

* test: new change

* trigger build

* remove loggers to test

* test with fmt.print

* fix: deadlocks
2025-10-29 08:41:53 +01:00
Ryan McKinley d72e048bfe Chore: Use Kind().GroupVersionResource() (#113133) 2025-10-28 14:54:10 -07:00
Bruno 437dcc875c QueryCaching: Use CachingServiceClient for query caching (#112128)
* Integrate mt querier with query caching

* typo

* let the caller set cache status response header

* fix TestQueryAPI

* make gen-go

* handle CachingServiceClient being nil and make gen-go

* include namespace in cache key

* set signed in user namespace in query_test.go

* fix test

* remove commented out code

* undo services/query/query.go changes

* make gen-go

* remove namespace requirement

* fix tests

* fix test

* remove namespace from SignedInUser in tests

* make gen-go
2025-10-28 11:41:46 -03:00
Jo d216d75fbb Access: Add CoreRole/Role Delete/Update hooks for OpenFGA (#112839)
* Add delete and update hooks for roles/core roles

no need to capture non reference types

small cleanup on vars

* fix ticket priming in hooks

* fix ticket priming in hooks

* Revert "fix ticket priming in hooks"

This reverts commit f8e953ca09.

* use old testing blocks

* protect runtime obj in go func

* update test for correctness

* separate files for test correctness. fix leaking goroutines in go tests

* go workspace fixes

* attribute owner

* clean up go mod
2025-10-27 17:20:59 +00:00
Austin PondandOwen Diehl bf65c43783 Apps: Add Example App to ./apps (#112069)
* [API Server] Add Example App for reference use.

* Remove Printlns.

* Upgrade app-sdk to v0.46.0, update apps to handle breaking changes.

* Only start the reconciler for the example app if the v1alpha1 API version is enabled.

* Some comment doc updates.

* Run make update-workspace

* Set codeowner for /apps/example

* Run make gofmt and make update-workspace

* Run prettier on apps/example/README.md

* Add COPY apps/example to Dockerfile

* Add an authorizer to the example app.

* Fix import ordering.

* Update apps/example/kinds/manifest.cue

Co-authored-by: Owen Diehl <ow.diehl@gmail.com>

* Run make update-workspace

* Re-run make gen-go for enterprise import updates

* Run make update-workspace

---------

Co-authored-by: Owen Diehl <ow.diehl@gmail.com>
2025-10-27 12:01:10 -04:00
Mihai Turdean f019d58a99 [grafana-iam] Add resourcePermissions hooks to sync write to Zanzana on UPDATE and DELETE (#112767) 2025-10-24 11:45:24 -06:00
Denis VodopianovandDave Henderson 81683d554d chore : Deprecating FeatureToggles.IsEnabledGlobally (#112885)
* add deprecation on featuremgmt.IsEnabledGlobally

* add nolint reason

* add reasonable deprecation message

* remove junk edits

* add more nolints

* addressing review comments

* Update pkg/services/featuremgmt/models.go

Co-authored-by: Dave Henderson <dave.henderson@grafana.com>

---------

Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-10-24 12:02:53 -04:00
Ieva 4cea71ee73 Access Control: Fix the permission checks for saving/updating/deleting annotations (#112953)
pass in the correct scope for evaluating annotation permissions on a dashboard
2025-10-24 16:11:58 +01:00
Todd Treece dc77da11cf Plugins: API sync (#112452) 2025-10-24 08:09:26 -04:00
Mihai Doarna 4bdee91501 IAM: Implement the delete method for team bindings (#112844)
* implement the delete method for team bindings

* add integration test

* remove team binding search from legacy store
2025-10-24 11:58:13 +03:00
Gilles De Mey 62c5df36d6 Alerting: Always initialize an empty slice of routes for the routingtree (#112880) 2025-10-23 17:21:13 +02:00
Gábor Farkas 87f40c65e4 datasources: forward the x-forwarded-for header (#112863) 2025-10-23 17:14:50 +02:00
Misi 9c676b3ae7 IAM: Rename Name to Title in UserSpec (#112862)
* Use Title as the name of the display name for User

* Align tests
2025-10-23 16:03:28 +02:00
Tania 82e5b81a30 OpenFeature: Fix instrumentation in OFREP API (#112845)
OpenFeature: Fix instrumentation in ofrep api
2025-10-23 10:09:41 +00:00
ad9d8098ef IAM: Add email, login field validation to User create/update API (#112391)
* wip

* wip

* wip

(cherry picked from commit 8cedf25892)

* Search seems to be working, the validation is still wip

* Use keyword.Name analyzer for Filterable fields

* Only string fields should be indexed with keyword analyzer

* Change search query for email and login fields to use term query
* Remove unnecessary Exact from the resource protobuf definitions

Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>

* Add legacy search support to the API

* Tests for legacy search, validate and integration tests for user

* Lint

* Add snapshot tests to userDocumentBuilder

* Address CodeQL issues

* Improvements, handle Mode2, tests should pass

* Change default limit from 0 to 1 for requests

* Cleanup

* Add fixme

* Update pkg/registry/apis/iam/register.go

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>

* Update pkg/registry/apis/iam/user/legacy_search.go

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-10-23 11:29:02 +02:00
Gábor Farkas a53ce56bca datasources: querier: handle the X-Real-IP header (#112838) 2025-10-23 10:47:48 +02:00
Mihai Doarna 3076f7a9b9 IAM: Implement the update method for team bindings (#112788)
* implement the update method for team bindings

* fix lint error

* add integration tests

* add integration test for non existing team binding

* try to fix lint error
2025-10-23 11:39:38 +03:00
Jo 2e1704b56f Access: Add AfterCreate hooks for Roles/Core Roles (#112666)
As part of migrating Grafana's authorization system to Zanzana (OpenFGA), we need to ensure that role permissions defined in the IAM API are automatically synced to the authorization backend. Without this sync, roles created through the API would not be enforced by Zanzana, creating an inconsistency between defined permissions and actual authorization decisions.

This is a critical piece of the dual-write pattern during the migration to Zanzana, ensuring that:

    Role permissions are immediately available for authorization checks
    The legacy RBAC system and new Zanzana system remain in sync
    Users experience consistent permission enforcement regardless of which backend is queried

safe to revert
2025-10-23 09:47:39 +02:00
Andres Martinez Gotor eb0824a881 Advisor: Add support for multiple orgs (#112577) 2025-10-23 09:22:31 +02:00
Roberto Jiménez SánchezandCharandas Batra c9daec7b6d Provisioning: discontinue use of service identity based background tasks when onlyApiServer is true (#112634)
* Skip informers if Provisioning disable controllers is enabled

* Hydrate requester correctly for Grafana Live

* revert to old code because eventualRestConfig provider issues

---------

Co-authored-by: Charandas Batra <charandas.batra@grafana.com>
2025-10-23 00:35:46 +00:00
Todd Treece 638a1808f8 Access Control: Add fixed role loader service (#112747) 2025-10-22 12:04:42 -04:00
Tania 451004d152 OpenFeature: Add debug logs (#112724) 2025-10-21 17:03:19 +02:00
Kyle Brandt e930b3e6c4 SQL Expressions: Replace NaN/Inf values with Null (#112641)
This is because MySQL doesn't support storing of NaN valuels, and therefore go-mysql-server isn't going to either.

Float fields/columns are always mapped to be nullable now, otherwise we would have to replace NaN/Inf with 0.
2025-10-21 10:43:04 -04:00
Mihai Doarna 7d88b0130c IAM: Generate a unique name for a new TeamBinding object (#112525)
* generate a unique name for TeamBinding and store it in the uid column

* generate testdata

* fix team binding name
2025-10-21 15:01:49 +03:00
Matheus Macabu 93af167f9c Secrets: Add config for enabling gRPC client-side load balancing (#111989) 2025-10-20 14:04:59 +02:00
Stephanie Hingtgen 891d5f0625 Unistore: Propagate DeprecatedLegacyID on upsert (#112619)
Unistore: Fix label propogation on upsert
2025-10-20 09:29:03 +02:00
Tania 688248198e OpenFeature: Add eval ctx and http status code to span attributes (#112572)
* Add HTTP status codes to handlers spans

* Add a span for namespace validation
2025-10-17 21:21:33 +02:00
Ryan McKinley 7c6afeabec Chore: Use IAM DBTime utility in dashboard migrator (#112589) 2025-10-17 17:48:30 +03:00
Jean-Philippe Quéméner d746266b0d fix(folders): allow correct max depth on update (#112570) 2025-10-17 12:17:13 +02:00
Ryan McKinley 1a372e2dec Dashboards: Use the common service authorizer (#111571)
* authorizer

* authorizer
2025-10-17 10:03:35 +03:00
Liza Detrick b3f9dad044 logsdrilldown: add app platform (#112133) 2025-10-17 00:31:42 +03:00
Ryan McKinley bea45a94f0 Correlations: Add legacy storage (#112038) 2025-10-16 21:13:39 +03:00
Costa Alexoglou 163a88056e feat: parallel processChange (#112198)
* feat: parallel processChange

* all except move work

* fix: tests and order of operations

* fix: tests

* chore: review feedback

* chore: review feedback
2025-10-16 19:17:04 +02:00
Tania bceeabd6c3 Revert "OpenFeature: Include HTTP status code and evaluation context in traces" (#112527)
Revert "OpenFeature: Include HTTP status code and evaluation context in trace…"

This reverts commit ffee922fae.
2025-10-16 16:28:54 +00:00
Torkel Ödegaard 77e571b079 RadialGauge: (#111841)
* Radial gauge

* Update

* Update

* Update

* Updated

* Progress

* Spotlight

* Glow

* More effects

* Update

* Update

* Update

* Update

* Fix overflow

* Progress

* Progress

* Barwidth factor

* Update

* segmemnted

* Update

* Update

* Update

* Display processor

* Progress

* Updated

* Update

* rounded bars option

* added option for rounded

* Fixed gauge shape and segments

* Updated text and sparkline placmeent

* progress

* New spotlight effect is working

* refactorings

* Update

* hue working in gauge mode

* Update

* Update

* Progress

* Refactorings and sizing improvements

* Refactorings

* Progress

* Unify arc path

* Thresholdsbar

* Update

* Progress

* Update

* Close to mergable

* Unit tests

* Update

* Update

* Fix

* Update

* update

* simple test

* Fix

* Minor tweak

* added icon to shape

* Progress on color simplification

* progress on new color system

* Simplify color gradient modes around a single auto mode

* Progress on text sizing

* Fixes

* Update

* Update

* Hook up manual font size

* Restore old behavior in old panel
2025-10-16 15:53:38 +02:00
Tania ffee922fae OpenFeature: Include HTTP status code and evaluation context in traces (#112422)
* Add HTTP status codes to handlers spans

* Add a span for namespace validation
2025-10-16 13:37:51 +02:00