Commit Graph

15733 Commits

Author SHA1 Message Date
Josh Hunt 7ea0fab606 Prometheus: Enable Combobox metric select by default (#101045)
* Prometheus: enable prometheusUsesCombobox toggle by default

* bold Combobox
2025-03-30 20:24:53 +03:00
Michael Mandrus 88e51d549c CloudMigrations: Add sorting and error filtering to Snapshot Results backend (#102753)
* implement sorting

* swagger gen

* minor fixes

* clean up param reading

* add todo

* add errors only prop

* codegen stuff

* fix copy paste error

* forgot the api gen

* cleanup

* remove tests that are obe

* fix test
2025-03-30 10:42:45 -04:00
Stephanie Hingtgen f84654d162 Stats: Optimize getting folder stats (#103033) 2025-03-28 20:17:50 -05:00
Stephanie Hingtgen b67b9e3c5e K8s: Folders: Reduce db calls with /api/folders (#103058) 2025-03-28 18:13:08 -05:00
Stephanie Hingtgen 290e5cbe83 Navtree: Add dashboard type to reduce query (#103057) 2025-03-29 00:22:24 +02:00
Stephanie Hingtgen 5fa9f2b425 K8s: Folders: Remove unneeded parent calls (#103036) 2025-03-28 07:36:47 -04:00
Stephanie Hingtgen ac30bd432a Navtree: Fix flaky test (#103029) 2025-03-28 00:32:00 +02:00
Stephanie Hingtgen 12c5b81850 K8s: Dashboards: Reduce db calls to get users on list (#103020) 2025-03-27 22:57:49 +02:00
Kyle Brandt e6480a050c SQL Expressions: Allow substring_index func (#103021) 2025-03-27 16:49:21 -04:00
Will Assis 51825cfffe unified-storage: Reduce calls to the user service (#102934)
* Create ListByIdOrUID in user service

* create UnstructuredToLegacyFolderList 

* update GetFolders to use list parser

* update GetDescendants to use list parser

* update UnstructuredToLegacyFolder to also make a single call to the user service

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-03-27 22:01:07 +02:00
Stephanie Hingtgen a262da532e Navtree: Switch to search (#103016) 2025-03-27 13:36:56 -05:00
Stephanie Hingtgen da2743dbef Dashboards: Optimize get shared with me (#103013) 2025-03-27 19:52:31 +02:00
Mustafa Sencer Özcan fe1a72e41b fix(unified-storage): unlist the deleted resource's versions (#102588) 2025-03-27 18:34:37 +01:00
Yuri Tseretyan d10fdc0f02 Alerting: ListDeletedRules to return rules sorted by date (#102945)
---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-03-27 19:31:08 +02:00
Syerikjan Kh 15e7c3c439 Fix: Change secure_json_data column data type to medium text only MYSQL (#102557)
fix: change secure_json_data type to medium text only MYSQL
2025-03-27 12:59:07 -04:00
Emre Yazıcı 7aa71aa734 Tracing: chore make insecure option configurable (#99236)
* Tracing: chore: make insecure option configurable

In case of insecure set to false, default system cert pool will be used to create otlpgrpc client.

* test: add tracing/insecure config checks

This is to verify whether insecure configuration is properly parsed.

* chore: update configura Grafana docs with new setting

* chore: also update comment in the ini files

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
2025-03-27 12:37:23 -04:00
Mariell Hoversholm 69803300f1 Provisioning: Complete rename of jobs (#102979)
Fixes: https://github.com/grafana/git-ui-sync-project/issues/164
2025-03-27 17:06:44 +01:00
Peter Štibraný 57cc4f101d spanner: Fix insert or update in anon_device when running on Spanner. (#102991)
Fix insert or update in anon_device when running on Spanner.
2025-03-27 16:58:27 +01:00
Andreas Christou 157edf92a0 Azure: Mark Azure Prometheus exemplars as GA and enable by default (#100595)
* Mark Azure Prom exemplars as GA and enable by default

* make gen-feature-toggles
2025-03-27 10:54:39 -05:00
Fayzal Ghantiwala 68d8810ecb Alerting: API to convert submitted Prometheus rules to GMA (#102231)
* placeholder commit

* Complete function in api_convert_prometheus.go

* MVP before extensive testing

* Cleanup

* Updated tests

* cleanup

* Fix random logs and lint

* Remove comment

* Fix errors after rebase

* Update test

* Update swagger

* swagger

* Refactor to accept groups in body

* Fix auth tests and some cleanup

* Some cleanup before refactoring

* Remove unnecessary fields

* Also refactor RouteConvertPrometheusPostRuleGroup

* Remove unused code

* Rebase + cleanup

* Update authorization_test

* address comments

* Regen swagger files

* Remove namespace and group filters

* Final comments
2025-03-27 15:30:11 +00:00
Mariell Hoversholm d0d7078953 App Platform: Remove mutable globals (#102962)
* App Platform: Remove mutable globals

* chore: clarify why this exists

* fix: support multi-tenant mode

* refactor: call builder providers directly

* CI: Force re-build
2025-03-27 15:46:09 +01:00
Sonia Aguilar f9471ac10b Alerting: Recover deleted alert rules (#101869)
* add column guid to alert rule table and rule_guid to rule version table

+ populate the new field with UUID

* update storage and domain models

* patch GUID

* ignore GUID in fingerprint tests

* get alert rule versions by GUID

* update rule delete to reset uid in history instead of deleting rows

* add test

* Update delete rule to require UserUID, remove all versions and create "delete" version

that holds information about who and when deleted the rule

* update usages of the delete method

* add list deleted rules to store

* list api to support deleted query parameter

* add list deleted rules to store

^ Conflicts:
^	pkg/services/ngalert/store/alert_rule_test.go

* list api to support deleted query parameter

* Restore deleted rules

* fix recovering manually recording rules

* update role control for the trash route

* add alertingRuleRecoverDeleted feature toggle enabled by default

* fix access control for trash menu item in the navtree

* Add alertingRuleRecoverDeleted feature toggle,
add Delete permanently alert rule menu option

* hide remove permanently functionality in the UI until we have the api available for it

* discard wrong changes after merging

* Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts

* Reverted changes in go.work.sum after fixing conflicts

* Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts

* Reverted changes in pkg/services/ngalert/models/alert_rule.go after fixing conflicts

* Reverted changes in pkg/apis/dashboard_manifest.go after fixing conflicts

* restore delete permanently and add the queryparam for it

* update snapshots

* fix translations

* protect trash route by the feature toggles

* use the new rulerRuleType for checks

* revert ability to delete permanently and alert rule from the ui

* remove unnecessary update after reverting

* fix ff

* add tracking

* use recently deleted instead of trash

* create isRecoverDeletedRulesEnabled for checking ffs

* address pr feedback 1

* include alert rule uid in getRowId

* use RulerGrafanaRulesConfigDTO for deleted rules response

* use isLoading in the AlertingPageWrapper

* fix wrong check for recording rules type

* add test for restoring manually through the alert rule form

* add test for restoring deleted rule

* use importAlertingComponent

* udpate mock

* address pr feedback

* update translations

* address feedback

* address feedback 2

* address feedback 3

* address feedback 4

* move transformation of the response to the endpoint

* fix typo

* refactor grafanaRuleDtoToFormValues

* update translations

* use guid for identifying rows

* prettier

* use ONLY the guid for identifying rows

* Add provides/invalidates tags for deleted rules

---------

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-03-27 16:39:26 +02:00
Mariell Hoversholm 4cd1315700 App Platform(Provisioning): Listen to context cancel ASAP (#102957)
We should not write after the context is cancelled. This causes tests to fail as they are trying to clean up. To try to
accommodate this, we'll need to listen to the context in any loop where we don't immediately get other instructions from
e.g. trying to do an HTTP request.
2025-03-27 15:11:07 +01:00
Eric Leijonmarck dce180acf3 LBAC for data sources: PublicPreview and self serve enablement (#102276)
* Publicpreview and self serve of lbac for mimir

* update from review
2025-03-27 15:44:29 +02:00
Josh Hunt 3a9370083f I18n: Add 13 new languages for translations (#102971)
I18n: Remove extraLanguages toggle
2025-03-27 12:58:52 +00:00
Hugo Kiyodi Oshiro 69d8419109 Plugins: Remove userStorageAPI feature toggle (#102915) 2025-03-27 13:40:00 +01:00
Sam Jewell c9e929e2e6 SQL Expressions: Allow more MySQL AST node-types (#102973)
* SQL Expressions: Add Null-literal node

* Retain some order in the code - put NullVal with BoolVal

* Add support for `IN` keyword

* Add GROUP_CONCAT keyword

* Add COLLATE keyword

From Claude:

The test case demonstrates a simple use of COLLATE with a string
literal, but in real MySQL queries, COLLATE is often used in more
complex scenarios like:

1. String comparisons:
   `SELECT * FROM table WHERE name COLLATE utf8mb4_bin = 'John'`
2. Sorting:
   `SELECT * FROM table ORDER BY name COLLATE utf8mb4_unicode_ci`
3. JOINs:
   `SELECT * FROM table1 JOIN table2 ON table1.name COLLATE utf8mb4_bin = table2.name`

The COLLATE clause is particularly useful when you need case-sensitive
comparisons (utf8mb4_bin) or specific language-aware sorting rules.
2025-03-27 11:32:48 +00:00
Mariell Hoversholm e1e1d3fd9f Fix: Prints should always include new lines (#102795)
* CI: Allow Bench conversion to fail

We shouldn't mark PRs and commits as X if they fail to convert logs with Bench.

* Fix: Prints should always include new lines

* fix: remove unused import
2025-03-27 12:27:53 +01:00
Roberto Jiménez Sánchez b2d9b3abe6 Remote provisioning: use client discovery for sync job (#102885)
* Use client discovery for folders and dashboards synchronization

* Remove unused dashboards client

* Add folders import again
2025-03-27 11:07:06 +01:00
Eric Leijonmarck e216c2f29d Anonymous: Enforce org role Viewer setting (#102070)
* Anon: Remove org role setting

* remove from ini

* remove setting from documentation
2025-03-27 09:10:30 +00:00
colin-stuart 9ca1d8bca7 Tests: Add delete user mock field to fake auth info service (#102947) 2025-03-27 09:45:31 +01:00
Stephanie Hingtgen 0087d7bd58 Unistore: Skip label for getting full path (#102928) 2025-03-26 15:50:53 -05:00
alerting-team[bot] 6df99a6224 Alerting: Update alerting module to 58ba6c617ff05eb1d6f65c59d369a6a16923dff6 (#102812)
* remove feature flag alertingAlertmanagerExtraDedupStage
* use most recent version of fork of alertmanager

---------

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-03-26 15:15:10 -04:00
William Wernert 88d23fe5be Alerting: Remove transitional notifications API endpoints (#102713)
* Remove transitional notifications API endpoints

* Fix openapi spec

* Fix path test

* Remove API tests related to removed endpoints
2025-03-26 12:26:50 -04:00
Alexander Zobnin 63a2ce7214 Zanzana: Support subresources for users and service accounts (#102874)
* Zanzana: Support subresources for users and service accounts

* rename relationsFolder

* fix linter error
2025-03-26 16:07:01 +01:00
Mustafa Sencer Özcan a4e8bd16de fix: add index for resource history get with trash on (#102894) 2025-03-26 15:52:13 +01:00
Leonor Oliveira 51bbfa2d08 [Search] Fix CodeQL warnings (#101364)
* Fix CodeQL warnings

* Also validate if path is a file above the safe dir

* Lint

* [REVIEW] reduce possibility of exploits

* Comment

* Remove test scenario
2025-03-26 15:38:58 +01:00
Mariell Hoversholm f7b9f1ce69 Unified Storage: Return an already exists error (#102857)
* Unified Storage: Return an already exists error

When inserting a resource that already exists (i.e. race condition), we can safely catch UNIQUE constraint violations
and transform them into a `k8s.io/apimachinery/pkg/api/errors` error that stands the test of `errors.IsAlreadyExists`.

* feat: clarify existing conflict error

* chore: make update-workspace

* feat: make new package for backend error

* fix: assign dependency owner

* feat: use dialect for checking error type

* chore: go generate

* revert: to 5af369166d
2025-03-26 14:44:44 +01:00
Karl Persson c236a22284 Authz: Include context in logs when using cache (#102810)
Include context in logs when using cache
2025-03-26 13:55:24 +01:00
Sam Jewell 08bc37cfa2 SQL Expressions: Bump go-mysql-server version (#102866)
To receive this bug-fix:

- https://github.com/dolthub/go-mysql-server/pull/2853

Which merged to main on Feb 17th 2025

I picked a commit on `main` from March 19th 2025:

```console
go get github.com/dolthub/go-mysql-server@8c915e51131f1e867ad873f8e827abf858d65dce/testdata
```

Then
```
make run
```
2025-03-26 12:50:20 +00:00
Roberto Jiménez Sánchez eff2da96d0 Remote Provisioning: Fix empty folder synchronization (#102789)
* Add behavior for hidden

* Rename to IsFilePathSupported

* Modify sync

* Revert renaming

* Fix the tests

* Add more tests

* Maintain empty folders until next full pulling

* Fix wording

* Consider the file as ignored

* Handle folder creation in sync

* Record folder creation / update

* Fix in manual test

* Ensure / slash for folders

* Refactor the tests

* Keep safe path

* Fix some cases

* Remove log lines
2025-03-26 13:39:22 +01:00
Alexander Akhmetov f49a88ab72 Alerting: Add MissingSeriesEvalsToResolve to the APIs (#102150)
What is this feature?

A follow-up for #101184, adds AlertRule.MissingSeriesEvalsToResolve to the APIs.

missing_series_evals_to_resolve must be specified too and it must be > 0.

POST /api/ruler/grafana/api/v1/rules/{folderUID} works in the following way:

    If missing_series_evals_to_resolve is not sent or null, the rule keeps its existing value
    If missing_series_evals_to_resolve > 0: updates to that value
    If missing_series_evals_to_resolve = 0: resets to default (nil).
    AlertRule.MissingSeriesEvalsToResolve can't be 0, so I used it to reset

In the Provisioning API, the value is just set if present and > 0. Otherwise it's reset:

PUT to /api/v1/provisioning/alert-rules/{UID}:

    If missing_series_evals_to_resolve is nil, it's reset to the default value
    If missing_series_evals_to_resolve > 0, it's updated
2025-03-26 13:34:53 +01:00
Ieva ff6039567b RBAC: Return 404 instead of 403 if a dashboard cannot be found (#102815)
return 404 instead of 403 if a dashboard cannot be found
2025-03-26 12:26:14 +00:00
Peter Štibraný fe1f5bc72b ssosettings: Don't update primary key in sso_setting table. (#102878)
Don't update primary key in sso_setting table.
2025-03-26 13:06:29 +01:00
beejeebus 709723927f Assign errorsource to InfluxDB Flux http errors (#102823)
InfluxDB Flux queries can return a http.Error type that we can use to
assign errorsource to.

This PR checks for that type of error, and uses our errorsource
machinery to assign an errorsource.

This is part of https://github.com/grafana/data-sources/issues/377
2025-03-26 08:00:06 -04:00
Jean-Philippe Quéméner cc8b40585b feat(unified-storage): add traces for all the backend sub-paths (#102876) 2025-03-26 12:50:29 +01:00
Alexander Akhmetov f7aa17f2e4 Alerting: Add default values to AlertRule.Data queries in Prometheus conversion (#102843)
What is this feature?

Prometheus conversion: ensures that AlertRule.Data queries always have default parameters set (intervalMs, maxDataPoints). Without this, updates of the same rule can cause version increments.

Why do we need this feature?

Currently, when converting Prometheus rules to Grafana alerts, some default parameters are not explicitly set in the query model. This creates a problem during rule updates:

When a user updates a rule that hasn't changed, we still detect differences in the AlertQuery.Model because the newly converted rules are missing the default fields, such as intervalMs and maxDataPoints. This causes unnecessary version increments of alert rules.
2025-03-26 11:46:49 +01:00
Peter Štibraný d0dbd1d156 spanner: Fix star migration that fills NULL dashboard_uid and org_id fields from dashboard table. (#102768) 2025-03-26 11:15:00 +01:00
Peter Štibraný 0226d710a1 spanner: Store JSONB into string column. (#102731) 2025-03-26 10:58:06 +01:00
Peter Štibraný 5b5f433a26 spanner: Disable running alerting integration tests when using spanner. (#102730)
* Disable running alerting integration tests when using spanner.

* Disable tests for templategroup.
2025-03-26 10:57:55 +01:00