Compare commits

...

1808 Commits

Author SHA1 Message Date
Andres Torres
343ac92c45 [release-12.2.2] refactor(annotations): Allow skipping always on dashboard UID migrations (#114108)
refactor(annotations): Allow skipping always on dashboard UID migrations (#113780)

(cherry picked from commit b70c6a726f)
2025-11-18 17:18:27 -05:00
grafana-delivery-bot[bot]
8e40f581ef [release-12.2.2] Docs: Add secrets management beta API docs (#114115)
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-11-18 17:52:33 +00:00
grafana-delivery-bot[bot]
1ce228784b [release-12.2.2] alerts docs: triage page (#114054)
alerts docs: triage page (#113869)

* alerts docs: triage page

documentation for the alert triage page

* public preview note added

* Update alert-triage.md

* prettier

* removed alerts triage references

* rename

* image

* prettier

(cherry picked from commit 441556d1a3)

Co-authored-by: Johnny Kartheiser <140559259+JohnnyK-Grafana@users.noreply.github.com>
2025-11-18 10:31:44 -06:00
grafana-delivery-bot[bot]
ce6e473d19 [release-12.2.2] CI: run publish artifacts on self-hosted runner (#114074)
CI: run publish artifacts on self-hosted runner (#114068)

run publish artifacts on self-hosted runner

(cherry picked from commit a553256b46)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2025-11-18 09:56:28 +00:00
Jack Baldry
7f6371a873 [release-12.2.2] Restructure As code and developer resources (#113964) 2025-11-14 18:05:45 +00:00
Kevin Minehart
71cbf1c25a [release-12.2.2] CI: Make notify-pr workflow optional (#113904)
* CI: Make notify-pr workflow optional (#113896)

* CI: Make notify-pr workflow optional

* also set repo to the current repo

* fix find-pr

(cherry picked from commit d92cb9f7a6)
(cherry picked from commit 3b345a99bc)

* CI: Continue notify even on error

(cherry picked from commit 2e33b077f1)

* CI: Fix release-build bug; github.repository includes org (#113909)

* CI: Fix release-build bug; github.repository includes org

* set pipefail

* fix notify in release-build; this step should fail if it actually fails

(cherry picked from commit 9376d569cc)

* CI: release-build.yml missing pipe (#113915)

(cherry picked from commit 92ef1c4942)
2025-11-14 11:39:49 +00:00
grafana-delivery-bot[bot]
dc39aa123a [release-12.2.2] Stricter validation for redirect URLs (#113860)
Stricter validation for redirect URLs (#113852)

(cherry picked from commit 3f48a6358f)
2025-11-13 18:43:47 +01:00
grafana-delivery-bot[bot]
2df2d435bf [release-12.2.2] DashboardAPI: Remove manual slug creation in dashboards (#113519)
DashboardAPI: Remove manual slug creation in dashboards (#111657)

* remove slug creation on frontend due to slugify issues

* adjust tests

* fix

(cherry picked from commit 90da925985)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-11-13 13:57:33 +00:00
grafana-delivery-bot[bot]
95e54677c0 [release-12.2.2] Playwright: fix timezone test to work at all times (#113840)
Playwright: fix timezone test to work at all times (#113827)

* fix timezone test to work at all times

* remove unused imports

(cherry picked from commit f5f0c1e6f6)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-11-13 13:50:01 +00:00
Matheus Macabu
51394e1c81 [release-12.2.2] Secrets: Fix MariaDB syntax error due to unsupported CTE syntax (#113770)
Secrets: Fix MariaDB syntax error due to unsupported CTE syntax (#111610) (#113690)

* Secrets: fix MariaDB syntax error due to unsupported CTE syntax (#111610)

* parametrize guid/created columns and re-generate test fixtures

---------


(cherry picked from commit 6c512dabdc)

Co-authored-by: Mike <mmelvin0@gmail.com>
2025-11-12 17:56:06 +01:00
Matheus Macabu
3d151f7517 [release-12.2.2] E2E: Improve ad-hoc filtering test (#113746)
E2E: Improve ad-hoc filtering test
2025-11-12 11:59:02 +00:00
Kevin Minehart
c48ccd3955 [release-12.2.2] use adhoc filters test from main (#113733)
use adhoc filters test from main
2025-11-12 12:00:14 +01:00
grafana-delivery-bot[bot]
cc5849e9c4 [release-12.2.2] DashboardScene: Ignore defaults changes when exiting edit mode (#113213)
* DashboardScene: Ignore defaults changes when exiting edit mode (#112796)

* exit dashboard without confirmation with only optional changes

* centralise

* clean up logic

* export to util

(cherry picked from commit 51b39d8c6e)

* Frontend tests: Fix for timechange (#113338)

(cherry picked from commit 6d9e28a59f)

---------

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-11-11 10:30:17 +00:00
grafana-delivery-bot[bot]
68b77a9701 [release-12.2.2] docs: clarifying info on what's new lading page (#113641)
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-11-07 22:28:44 +00:00
grafana-delivery-bot[bot]
883acf1bd3 [release-12.2.2] LibraryPanels: Improve getAllLibraryElements filter performance (#113599)
LibraryPanels: Improve `getAllLibraryElements` filter performance (#113544)

(cherry picked from commit 33390a1483)

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2025-11-07 12:16:13 -03:00
grafana-delivery-bot[bot]
a917724465 [release-12.2.2] SCIM: Upgrade the User.UID field to allow for the new scim- prefix (#113521)
SCIM: Upgrade the User.UID field to allow for the new scim- prefix (#113500)

Upgrade the User.UID field to allow for the new scim- prefix

(cherry picked from commit ca5d898120)

Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
2025-11-06 19:05:13 +01:00
grafana-delivery-bot[bot]
ffed6cfeab [release-12.2.2] Update grafanacli-workflows.md with command link (#113532)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-06 16:29:39 +00:00
grafana-delivery-bot[bot]
3696a9aadf [release-12.2.2] Docs: Git Sync permissions (#113431)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
2025-11-05 11:18:52 +01:00
grafana-delivery-bot[bot]
2f15f7f695 [release-12.2.2] fix(accesscontrol): Reduce memory usage in GroupScopesByActionContext (#113414)
fix(accesscontrol): Reduce memory usage in GroupScopesByActionContext (#112295)


(cherry picked from commit fbc81d2fd0)

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-11-04 17:23:47 +00:00
grafana-delivery-bot[bot]
a36d95abd3 [release-12.2.2] docs(alerting): add note about invalid numeric identifiers in templates (#113413)
docs(alerting): add note about invalid numeric identifiers in templates (#113269)

(cherry picked from commit ffa5e41bec)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-11-04 11:15:21 -06:00
Isabel Matwawana
1d51a8c8a7 [v12.2.x] Docs: Clarify difference between "Add" and "Replace" for saved queries (#113374) 2025-11-04 09:09:24 -05:00
grafana-delivery-bot[bot]
ee12001ce7 [release-12.2.2] Docs: Full instance Git Sync notes (#113353)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Roberto Jiménez Sánchez <roberto.jimenez@grafana.com>
2025-11-03 13:57:44 +00:00
grafana-delivery-bot[bot]
dc12aeb4ab [release-12.2.2] Table: Pill and JSON Cells should allow formatting (#113130)
Table: Pill and JSON Cells should allow formatting (#111951)

* Table: PillCell should use formatted text inside pills

* Table: JSONCell should use formatted text

* remove unused imports

(cherry picked from commit 237ab6c1b4)

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-11-03 08:37:35 -05:00
grafana-delivery-bot[bot]
75d12036b8 [release-12.2.2] PublicDashboards: Dont call API on dashboard page if public dashboards is disabled (#113282)
PublicDashboards: Dont call API on dashboard page if public dashboards is disabled (#113273)

(cherry picked from commit 452fc04d1d)

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-10-31 11:30:38 +00:00
grafana-delivery-bot[bot]
b344916377 [release-12.2.2] Annotations: Honor dashboardUID on dashboardsWithVisibleAnnotations (#113229)
Annotations: Honor dashboardUID on dashboardsWithVisibleAnnotations (#112350)

* Annotations: Honor dashboardUID on dashboardsWithVisibleAnnotations



---------


(cherry picked from commit 75a1846344)

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: maicon <maiconscosta@gmail.com>
2025-10-30 14:27:04 -03:00
grafana-delivery-bot[bot]
eb0899aa9e [release-12.2.2] Docs: Plugins link to catalog (#113199)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
2025-10-30 10:45:45 +01:00
grafana-delivery-bot[bot]
a9d9dc264e [release-12.2.2] docs(alerting): clarify notification group deletion after group interval elapses (#113174)
docs(alerting): clarify notification group deletion after group interval elapses (#113160)

(cherry picked from commit 7eb8a9af99)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-10-29 15:27:23 +00:00
grafana-delivery-bot[bot]
324ca8847c [release-12.2.2] Docs: Add query variable static options (#113169)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-10-29 13:52:31 +00:00
grafana-delivery-bot[bot]
c3460a4038 [release-12.2.2] docs(alerting): add additional migration details (#113165)
docs(alerting): add additional migration details (#112383)

(cherry picked from commit 86bf99aaaa)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-10-29 13:14:25 +00:00
grafana-delivery-bot[bot]
f639587fc9 [release-12.2.2] Update Git Sync and File provisioning status to private preview (#113162)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-10-29 14:07:25 +01:00
grafana-delivery-bot[bot]
6751fadc01 [release-12.2.2] Log TLS handshake EOF error as DEBUG instead INFO (#113098)
Log TLS handshake EOF error as DEBUG instead INFO (#112294)

* Log TLS handshake EOF error as DEBUG instead INFO



---------


(cherry picked from commit a75b01907d)

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: maicon <maiconscosta@gmail.com>
2025-10-28 16:07:06 -03:00
grafana-delivery-bot[bot]
0f6741ff29 [release-12.2.2] Docs: Admin tweaks - Edits, weights (#113089)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
2025-10-28 13:24:16 +01:00
Irene Rodríguez
d76881cc92 [release-12.2.2] Docs: Fix markdown syntax for config options table (#112846)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
Co-authored-by: jtvdez <jacob.valdez@grafana.com>
Fix markdown syntax for config options table (#112805)
2025-10-27 14:25:59 +00:00
grafana-delivery-bot[bot]
c001d12745 [release-12.2.2] Docs: Update saved queries permissions for Viewer role (#112979)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-10-24 15:38:34 -04:00
Jack Baldry
0a29332f80 [v12.2] Restructure IAM documentation (#112930) 2025-10-24 12:48:29 +01:00
grafana-delivery-bot[bot]
06482877cb [release-12.2.2] DOCS: Added a warning about using timezone with macros in MSSQL (#112909)
DOCS: Added a warning about using timezone with macros in MSSQL (#112900)

added warning about using timezone with macros in MSSQL

(cherry picked from commit 64f6bd5348)

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-10-23 21:31:13 +00:00
grafana-delivery-bot[bot]
7bbc1174d5 [release-12.2.2] pkg/build: Add nocgo option (#112882)
pkg/build: Add nocgo option (#112834)

Add nocgo option

(cherry picked from commit 2a0f149a63)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2025-10-23 16:25:20 +00:00
grafana-delivery-bot[bot]
c94396d80a [release-12.2.2] Dashboards: Return the correct model in openapi spec (#112872)
Return the correct model (#112858)

(cherry picked from commit 0ba040e866)

Co-authored-by: Selene <selenepinillos@gmail.com>
2025-10-23 17:59:22 +02:00
grafana-delivery-bot[bot]
a46fcfc0c6 [release-12.2.2] Table: Update ad-hoc filter to use name instead of displayName (#112817) 2025-10-23 08:59:28 -04:00
grafana-delivery-bot[bot]
9990c74ab2 [release-12.2.2] Remove hipchat alert notification details (#112807)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-10-22 13:37:47 +00:00
grafana-delivery-bot[bot]
708fd7c6e8 [release-12.2.2] Docs: Added known limitations to SQL Expressions (#112760)
Docs: Added known limitations to SQL Expressions (#112676)

* initial new section creation

* added additional known limitations

* adding some clarification

(cherry picked from commit e5627bcc67)

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-10-21 16:39:07 -05:00
grafana-delivery-bot[bot]
470edab706 [release-12.2.2] docs(alerting): clarify usage of templates in webhook custom payloads (#112755)
docs(alerting): clarify usage of templates in webhook custom payloads (#112672)

* docs(alerting): clarify usage of templates in webhook custom payloads

* Update docs/sources/alerting/configure-notifications/template-notifications/manage-notification-templates.md



---------


(cherry picked from commit fb5c5411f8)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
Co-authored-by: Johnny Kartheiser <140559259+JohnnyK-Grafana@users.noreply.github.com>
2025-10-21 18:49:20 +00:00
grafana-delivery-bot[bot]
569738c316 [release-12.2.1] Alerting: Fix unmarshalling of GettableStatus to include time intervals (#112734)
Alerting: Fix unmarshalling of GettableStatus to include time intervals (#112602)

* move test files into test-data

* add test for the bug

* populate time-intervals of gettableStatus config

(cherry picked from commit 5f9a51418c)

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-10-21 13:27:31 -04:00
grafana-delivery-bot[bot]
c66f019dfc [release-12.2.1] Include author in patch creation (#112696)
Include author in patch creation (#112675)

Include author in security mirror

(cherry picked from commit ef2e62c852)

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2025-10-21 18:08:21 +02:00
grafana-delivery-bot[bot]
576d2e3cb5 [release-12.2.1] Tag / content discrepancy (#111889)
Co-authored-by: Clément Duveau <clement@duveau.eu>
2025-10-21 14:41:38 +00:00
github-actions[bot]
ef1a904cbe Release: 12.2.1 (#112736)
* Update changelog

* Update version to 12.2.1

---------

Co-authored-by: grafana-delivery-bot[bot] <grafana-delivery-bot[bot]@users.noreply.github.com>
2025-10-21 14:39:47 +00:00
Josh Hunt
563109b696 [release-12.2.1] CI: Remove OIDC debug step from npm publish (#112657)
CI: Remove OIDC debug step from npm publish (#112631)

(cherry picked from commit b0acfd1189)
2025-10-20 14:49:24 +00:00
linoman
f06bb75310 [release-12.2.1] Backport 112615 to release 12.2.1 (#112636)
Update validation of non-provisioned users rejection (#112615)

* Update validation of non-provisioned users rejection

* Align tests

(cherry picked from commit 0e4237b775)
2025-10-20 13:30:27 +02:00
grafana-delivery-bot[bot]
64b98e9866 [release-12.2.1] docs(alerting) Add examples of high-cardinality alerts (#112633)
docs(alerting) Add examples of high-cardinality alerts (#112311)

* docs(alerting) Add examples of high-cardinality alerts

* minor intro edits

(cherry picked from commit 9e505ea2de)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-10-20 13:12:51 +02:00
grafana-delivery-bot[bot]
d5732fe526 [release-12.2.1] Docs: Git Sync resource reqs (#112592)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-10-17 18:06:48 +02:00
grafana-delivery-bot[bot]
3d65272316 [release-12.2.1] Grammar: wrap in try/catch in case regex creation fails (#112600)
Grammar: wrap in try/catch in case regex creation fails (#112595)

* Grammar: wrap in try/catch in case regex creation fails

* Improve breadcrumbs

(cherry picked from commit bbb5322008)

Co-authored-by: Matias Chomicki <matias.chomicki@grafana.com>
2025-10-17 15:52:42 +00:00
grafana-delivery-bot[bot]
1029b8df35 [release-12.2.1] Docs: Manage multi-team access (#112500)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Co-authored-by: Sarah Constant <sarahleejane@users.noreply.github.com>
2025-10-16 09:11:02 +00:00
grafana-delivery-bot[bot]
4da7576d4e [release-12.2.1] Docs: Add batch_wait_duration and batch_size_bytes to usage insights Loki exporter (#112416)
Docs: Add batch_wait_duration and batch_size_bytes to usage insights Loki exporter (#112408)

* Docs: Add batch_wait_duration and batch_size_bytes to usage insights Loki exporter

* Run linter

(cherry picked from commit 1c614fdc9a)

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-10-15 10:35:27 +00:00
Mariell Hoversholm
e86240eb62 [release-12.2.1] Chore: Update Redis library to v9 (#112363) 2025-10-14 12:52:42 +02:00
Matheus Macabu
e6db6c929a [release-12.2.1] Go: Update to 1.25.3 (#112361)
Go: Update to 1.25.3
2025-10-14 10:23:35 +00:00
grafana-delivery-bot[bot]
b1f5d62c38 [release-12.2.1] Logs context: fix position on small viewports (#112343)
Logs context: fix position on small viewports (#112342)

(cherry picked from commit 6c726cf0ea)

Co-authored-by: Matias Chomicki <matias.chomicki@grafana.com>
2025-10-13 16:27:28 +00:00
grafana-delivery-bot[bot]
9bb79a0e8e [release-12.2.1] TimeSeries: Fix memory leak with boolean fields (#112290)
TimeSeries: Fix memory leak with boolean fields (#112252)


(cherry picked from commit 248c20a6b6)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-10-10 15:05:26 +00:00
grafana-delivery-bot[bot]
664a91dc84 [release-12.2.1] GenAI: Fix uncaught error when panel title is missing (#112286) 2025-10-10 13:51:16 +00:00
grafana-delivery-bot[bot]
6ae40fc592 [release-12.2.1] Docs: Clarify role assignment to users and teams when using terraform (#112261)
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2025-10-10 09:04:32 +00:00
grafana-delivery-bot[bot]
208eb881d6 [release-12.2.1] Docs: Adding new entry to 12.2 whats new (#112235)
Docs: Adding new entry to 12.2 whats new (#112234)

(cherry picked from commit 5eb295d850)

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-10-09 17:20:17 +00:00
grafana-delivery-bot[bot]
05e3befe99 [release-12.2.1] Auth: Fix render user OAuth passthrough (#112092)
Auth: Fix render user OAuth passthrough (#111636)

* devenv: fix volumes section when sources don't contain one

* wip

* Working correctly with improvedExternalSessionHandling on

* Remove not needed lines

* Working with the old flow, tests

* Handle compatibility with the feature toggle, tests wip

* Tests

* Cleanup

* Address feedback

* Align tests

* Add comment

* Fix issue with session removal after the invalidation of tokens

* Remove commented out code

* clean up

(cherry picked from commit 53f4803e98)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-10-09 15:47:18 +02:00
grafana-delivery-bot[bot]
b3551d6d0d [release-12.2.1] Explore: Add missing height to logs in Explore (#112177)
Explore: Add missing height to logs in Explore (#112176)

* Explore: Add missing height to logs in Explore

* Add max height to controlled log rows

(cherry picked from commit a0fc683a67)

Co-authored-by: Matias Chomicki <matias.chomicki@grafana.com>
2025-10-08 18:42:10 +02:00
grafana-delivery-bot[bot]
46f2c100e0 [release-12.2.1] Docs: Clarify RBAC availability in documentation (#112173)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-10-08 15:20:24 +00:00
Matheus Macabu
d690b06941 [release-12.2.1] Go: Update to 1.25.2 + golangci-lint v2.5.0 + golang.org/x/net v0.45.0 (#112156)
* Go: Update to 1.25.2

* golangci-lint: Update to 2.5.0

* Dependencies: Bump golang.org/x/net to v0.45.0

* Fix broken feature toggle test
2025-10-08 15:00:14 +02:00
Pepe Cano
37eeb82b5c [release-12.2.1] docs(alerting): Email contact point enhancements (#112121)
docs(alerting): Email contact point enhancements (#111944)

* docs(alerting): Email contact point enhancements

* minor content tweaks

(cherry picked from commit 5438df01a1)
2025-10-08 05:12:10 +02:00
grafana-delivery-bot[bot]
2a12896e81 [release-12.2.1] DOCS: Amazon CloudWatch data source docs revmp (#112132)
DOCS: Amazon CloudWatch data source docs revmp (#109945)

* started new configure doc

* updates to the configure doc

* worked on variables doc

* made edits

* query editor edits

* query editor updates

* continued with updates

* added updates

* additional updates, rewrite of auth doc

* finished query editor updates

* cleaned up the intro doc, added ref URIs to other docs

* some final edits

* more edits prior to PR creation

* ran prettier, added a screenshot

* linter fixes

* updates based on questions doc

* ran prettier

* updates based on feedback

* made more edits based on feedback

* more updates based on feedback

* updates based on feedback

* moved alerting under logs

* ran prettier

(cherry picked from commit 725a91e9eb)

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-10-07 19:40:19 +00:00
Paul Marbach
10fe7d04e9 [release-12.2.1] Table: Backport the Safari 26 fixes to 12.2.1 (#111906)
* [release-12.2.1] Table: Disable virtualization, hover overflow, and scrollbar width resizing on Safari 26 (#111834)

* Table: Disable virtualization, hover overflow, and scrollbar width resizing on Safari 26

* pull obj def out of method

* [release-12.2.1] Table: Avoid overflow issues in Safari 26 (#111858)
2025-10-07 11:08:14 -04:00
grafana-delivery-bot[bot]
0c5602dd10 [release-12.2.1] Docs: Last note for GitSync for ObsCon (#112085)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
2025-10-07 16:50:31 +02:00
grafana-delivery-bot[bot]
0be513c593 [release-12.2.1] Docs: Git Sync - Tim's feedback (#112104)
Docs: Git Sync - Tim's feedback (#112098)

* Feedback

* Prettier

(cherry picked from commit 96b5f63711)

Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
2025-10-07 15:08:42 +02:00
grafana-delivery-bot[bot]
89be22e8e8 [release-12.2.1] Prometheus: Prom Azure and AWS auth with mig info (#112072)
Prometheus: Prom Azure and AWS auth with mig info (#111142)

* docs for prom type mig

* andreas feedback

* update scripts and add forward settings issue

* make links internal

* prettier

* Update docs/sources/datasources/prometheus/configure/aws-authentication.md



* Update docs/sources/datasources/prometheus/configure/aws-authentication.md



* Apply suggestions from code review



* Update docs/sources/datasources/prometheus/configure/aws-authentication.md

* Apply suggestions from code review

* Update docs/sources/datasources/prometheus/configure/azure-authentication.md

* feedback

* prettier

* clarify the revert script is only for self-hosted

* Update docs/sources/datasources/prometheus/configure/aws-authentication.md



* Apply suggestions from code review



---------


(cherry picked from commit 96c24bc64c)

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-10-06 16:53:54 -05:00
grafana-delivery-bot[bot]
52843f360e [release-12.2.1] Docs: Fixed a broken link on the Intro to Exemplars page (#112068)
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Fixed a broken link on the Intro to Exemplars page (#112025)
2025-10-06 17:24:56 +02:00
grafana-delivery-bot[bot]
623e927983 [release-12.2.1] Docs: OaC/Git Sync updates for Obs Con (#112066)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-10-06 15:18:02 +00:00
Jacob Valdez
e188650524 [release-12.2.1] Update index.md (#112028) (#112064)
Co-authored-by: Michael Lamb <michael@michaellamb.dev>
2025-10-06 09:29:22 -05:00
Josh Hunt
aa00229a8b [release-12.2.1] NPM: Backport NPM publishing from main (#112000)
* Backport npm publishing workflow from main

* Ignore false-cjs in validate-npm-packages

(cherry picked from commit 6916b39439)
(cherry picked from commit 1aba469bab)

* Ignore untyped-resolutions for grafana-i18n in validate-npm-packages

(cherry picked from commit b250fe8d22)
2025-10-06 13:51:48 +01:00
grafana-delivery-bot[bot]
cda0661803 [release-12.2.1] Influx: Improve variable regex handling (#111941)
Influx: Improve variable regex handling (#111853)

(cherry picked from commit b50737a76c)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2025-10-03 15:22:19 +01:00
grafana-delivery-bot[bot]
5ebd75d3fb [release-12.2.1] docs(alerting): add settings for alert evaluation backoff retries (#111973)
docs(alerting): add settings for alert evaluation backoff retries (#111891)

* docs(alerting): add settings for alert evaluation backoff retries

* docs(alerting): add mention of backoff settings on the Error state docs

* fix vale prose

(cherry picked from commit 6248971d1e)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-10-03 11:34:44 +02:00
Pepe Cano
71b3906cf8 [release-12.2.1] docs(alerting): alertingSaveStateCompressed is enabled by default (#111972)
* docs(alerting): `alertingSaveStateCompressed` is enabled by default (#111897)

(cherry picked from commit 7ed46fd321)

* update feature flag default state
2025-10-03 10:54:18 +02:00
grafana-delivery-bot[bot]
2ea9a8a6ed [release-12.2.1] Chore: Update on-prem stable release dates (#111953)
Chore: Update on-prem stable release dates (#111909)

* baldm0mma/ update release dates

* Update docs/sources/upgrade-guide/when-to-upgrade/index.md



---------


(cherry picked from commit 2f3c503182)

Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-10-02 10:10:28 -06:00
grafana-delivery-bot[bot]
fdd99e9653 [release-12.2.1] Docs: Add panel options section to dashboard settings (#111947)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-10-02 15:21:16 +00:00
grafana-delivery-bot[bot]
03f738ea1d [release-12.2.1] Doc: Filter by value update (#111886)
* Doc: Filter by value update (#111881)

doc(transformation): filter by value

---------

Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com>
2025-10-02 11:17:20 +02:00
grafana-delivery-bot[bot]
547c496b2d [release-12.2.1] [InfluxDB]: Remove version notices (#111850) 2025-09-30 15:11:07 -06:00
grafana-delivery-bot[bot]
0594304843 [release-12.2.1] LDAP Authentication: Fix URL to propagate username context as parameter (#111849)
LDAP Authentication: Fix URL to propagate username context as parameter (#111723)

Fix URL to propagate username context as parameter

(cherry picked from commit 7055ba9140)

Co-authored-by: Bradley <12028233+bradleypettit@users.noreply.github.com>
2025-09-30 17:08:04 -04:00
grafana-delivery-bot[bot]
57d0237fda [release-12.2.1] Plugins: Dependencies do not inherit parent URL for preinstall (#111769)
Plugins: Dependencies do not inherit parent URL for preinstall (#111762)

dependencies dont inehrit parent url for preinstall

(cherry picked from commit 073338ec29)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2025-09-30 15:05:02 +01:00
grafana-delivery-bot[bot]
87fa31e57b [release-12.2.1] Geomap: Fix duplicated data links (#111772) 2025-09-30 08:21:39 -05:00
grafana-delivery-bot[bot]
26359899d5 [release-12.2.1] feat(ci): Allow overriding runs-on for publish-artifact workflow (#111765)
feat(ci): Allow overriding runs-on for publish-artifact workflow (#111695)


(cherry picked from commit ffe85d7c7e)

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-09-29 12:39:54 -05:00
grafana-delivery-bot[bot]
b841dfa2bc [release-12.2.1] Documentation Node graph broken link (#111757)
Co-authored-by: Jara Suárez de Puga García <jara.suarezdepuga@grafana.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-09-29 12:04:41 -04:00
grafana-delivery-bot[bot]
e675b6a032 [release-12.2.1] Docs: provisioning fix (#111749)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
fix (#111744)
2025-09-29 16:05:32 +02:00
grafana-delivery-bot[bot]
271f268d68 [release-12.2.1] Docs: Edits to OaC/Git Sync (#111732)
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
2025-09-29 12:25:40 +02:00
grafana-delivery-bot[bot]
b059912f7d [release-12.2.1] Refactor SCIM provisioning documentation (#111731)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-09-29 12:20:30 +02:00
John Troy
24df78fb4e [release-12.2.1] Docs: Fix broken links in SAML docs (#111693)
Docs: Fix broken links in SAML docs (#111039)

* Rename this heading to match the link in 'Request Initiation'

* Fix link to 'Configure SAML using the Grafana configuration file' and make the link text match

(cherry picked from commit 004f30fcb7)
2025-09-26 20:16:15 +02:00
grafana-delivery-bot[bot]
dcbbf64aa0 [release-12.2.1] Docs: Marking the image renderer plugin as deprecated (#111670)
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-09-26 14:14:03 +02:00
grafana-delivery-bot[bot]
ce8c46fb91 [release-12.2.1] Docs: Fix link reference in Generic OAuth documentation (#111656)
Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
Fix link reference in Generic OAuth documentation (#111647)
2025-09-26 11:20:03 +02:00
grafana-delivery-bot[bot]
0f8f5c86ef [release-12.2.1] FlameGraph: Ensure total is only counted once for recursive function calls (#111606)
FlameGraph: Ensure total is only counted once for recursive function calls (#111548)

grafana-flamegraph: Ensure total is only counted once for recursive function calls

Example flamegraph: https://flamegraph.com/share/2bb59df3-9930-11f0-94ec-760777e76ccd

(cherry picked from commit c5f6318b7b)

Co-authored-by: Christian Simon <simon@swine.de>
2025-09-26 10:39:43 +02:00
grafana-delivery-bot[bot]
111c53f9fd [release-12.2.1] Docs: Update saved queries feature availability details (#111644)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-09-25 15:46:29 -04:00
grafana-delivery-bot[bot]
cc8928a6a7 [release-12.2.1] DOCS: FIx broken link on RBAC for app plugins page (#111633)
DOCS: FIx broken link on RBAC for app plugins page (#111574)

fixed incorrect RefURI

(cherry picked from commit 0bf37742f1)

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-09-25 10:56:36 -05:00
grafana-delivery-bot[bot]
46956a2997 [release-12.2.1] Fix grafanactl resource pull command syntax (#111608)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Fix grafanactl resource pull command syntax (#111465)
2025-09-25 14:49:17 +02:00
grafana-delivery-bot[bot]
af460952d5 [release-12.2.1] Chore: Fix @grafana/alerting package repo (#111532)
Chore: Fix @grafana/alerting package repo (#110939)

(cherry picked from commit ab3c93b279)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2025-09-24 10:13:31 +01:00
Kevin Minehart
3a8bff55cd update missing npm publish scripts 2025-09-23 10:30:24 -05:00
Kevin Minehart
7223130454 update release-npm and validate script 2025-09-23 09:54:45 -05:00
grafana-delivery-bot[bot]
d53bf3d740 [release-12.2.1] docs: reorder whats new posts and include plugin translation (#111484)
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-09-23 16:40:33 +02:00
Jacob Valdez
6a046831fc Docs: What's new and Upgrade guide v12.2 (#110727) (#111472) 2025-09-23 13:55:49 +02:00
grafana-delivery-bot[bot]
9b4414de27 Release: Bump version to 12.2.1 (#111415)
bump version 12.2.1

Co-authored-by: grafana-delivery-bot[bot] <grafana-delivery-bot[bot]@users.noreply.github.com>
2025-09-19 14:00:37 -05:00
Josh Hunt
c7b629d3bc [release-12.2.1] CI: Backport release-npm.yml (#111396)
backport release-npm.yml from main
2025-09-19 18:31:47 +01:00
grafana-delivery-bot[bot]
bbd19baaaf [release-12.2.1] Dashboards: Fix missing Ctrl+O keyboard shortcut for crosshair toggle (#111402)
Dashboards: Fix missing Ctrl+O keyboard shortcut for crosshair toggle (#111310)

* Dashboard Scenes: Fix missing Ctrl+O keyboard shortcut for crosshair toggle

- Add missing mod+o keybind to dashboard scenes keyboard shortcuts
- Implement crosshair state cycling (Default -> Crosshair -> Tooltip -> Default)
- Add comprehensive unit tests for keyboard shortcuts functionality
- Add e2e test to verify shortcut works and prevents browser file dialog
- Fix ensures parity between legacy and scenes dashboard implementations

Fixes issue where Ctrl+O/Cmd+O was opening browser file dialog instead of
toggling shared crosshair modes in scenes-based dashboards.

* Remove waitForTimeout from e2e test

- Replace arbitrary timeouts with proper element waiting
- Use waitFor with visible state instead of setTimeout
- Improve test reliability and follow Playwright best practices

* Optimize e2e test for crosshair keyboard shortcut

- Remove unnecessary console logging and timeout settings
- Simplify assertions to only check the currently selected radio button
- Improve test performance by reducing DOM queries
- Focus on essential functionality verification

* Fix linting

(cherry picked from commit c0ce4ff1f2)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2025-09-19 16:21:15 +00:00
grafana-delivery-bot[bot]
5a2ab9b8b0 [release-12.2.1] Auth: Add SCIM settings permission to auth config writer role (#111398)
Auth: Add SCIM settings permission to auth config writer role (#111326)

* Auth: add SCIM settings permission to authentication config writer role

* make update-workspace

(cherry picked from commit 1ef27e9749)

Co-authored-by: colin-stuart <colindonstuart@gmail.com>
2025-09-19 10:46:31 -05:00
grafana-delivery-bot[bot]
d1bd29aa3b [release-12.2.1] Page limit config for dashboards with visible annotations (#111379)
Page limit config for dashboards with visible annotations (#110911)

* Page limit config for dashboards with visible annotations



---------


(cherry picked from commit 77fa3333e4)

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: maicon <maiconscosta@gmail.com>
2025-09-19 11:10:55 -03:00
grafana-delivery-bot[bot]
7d205c7dee [release-12.2.1] CI: Fix NPM workflow inputs (#111350)
Fix referring to inputs (#111345)

(cherry picked from commit 1d6c1da94f)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2025-09-18 23:16:26 +01:00
Kevin Minehart
e5a98c3c43 [release-12.2.1] backport bump-version.yml and release-build.yml (#111341)
* [release-12.2.1] backport bump-version.yml and release-build.yml

* add release-npm.yml
2025-09-18 16:57:08 -05:00
grafana-delivery-bot[bot]
50403b38d6 [release-12.2.1] Chore: Improve short url redirection (#111183)
Chore: Improve short url redirection (#111162)

Improve short url redirection

(cherry picked from commit 81fe57478f)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-09-16 15:41:37 +02:00
grafana-delivery-bot[bot]
f6570f8123 [release-12.2.1] LDAP: Restore test user mapping functionality (#111120)
LDAP: Restore test user mapping functionality (#110841)

* Migrate LdapPage from connect() to React-Redux hooks

* Convert LDAP debug page into a drawer and hook it into settings

* prettier

* Use the Text component and make the input and button look like they do on the main settings page.

* Bring back isLoading and put in a LoadingPlaceholder

* i18n-extract

* rejigger

* linter fix

(cherry picked from commit 585b53bc7d)

Co-authored-by: John Troy <jtroy@users.noreply.github.com>
2025-09-15 15:28:00 -04:00
grafana-delivery-bot[bot]
c5cf9ff393 [release-12.2.1] Chore: bump axios to a version without CVE (#111110)
Chore: bump `axios` to a version without CVE (#111076)

bump axios to a version without CVE

(cherry picked from commit 7bba151416)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-09-15 16:25:52 +01:00
Adela Almasan
9738c198b9 [release-12.2.1] Actions: Add permission check to missing panels (#111103) 2025-09-15 09:54:27 -05:00
Luminessa Starlight
06bf567e1c [release-12.2.1]: Accessibility: enable responsive reflow of variables in dashboard edit (#111033)
Accessibility: enable responsive reflow of variables in dashboard edit (#110967)

enable responsive reflow of variables in dashboard edit
2025-09-15 10:46:58 -04:00
Ashley Harrison
c68d3a2ffa Geomap: Only prefix with grafana public path if relative url (#111081) (#111106)
only prefix with grafana public path if relative url
2025-09-15 15:42:47 +01:00
grafana-delivery-bot[bot]
59cc00b07e [release-12.2.1] Fix: Fix redirection after login when Grafana is served from subpath (#111069)
Fix: Fix redirection after login when Grafana is served from subpath (#110889)

Fix short link (/goto) redirection when Grafana is served from subpath

(cherry picked from commit ccc87a03f0)

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-09-15 16:39:21 +02:00
Paul Marbach
8ce2c2d3eb [release-12.2.1] Table: Fix logic to calculate footer height (#110954) (#111107)
Table: Fix logic to calculate footer height (#110954)

* Table: Fix logic to calculate footer height

* add non-numeric footer case to gdev

* Update packages/grafana-ui/src/components/Table/TableNG/utils.ts



* Update packages/grafana-ui/src/components/Table/TableNG/TableNG.tsx



---------


(cherry picked from commit cb37539ed7)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-09-15 09:37:08 -05:00
Paul Marbach
987573a17c [release-12.2.1] Table: Restore previous footer behavior of reducers applying to filtered data (#111041) (#111109)
Table: Restore previous footer behavior of reducers applying to filtered data (#111041)

* Table: Restore previous footer behavior of reducers applying to filtered data

* update e2e to match new behavior

(cherry picked from commit f258d8a417)
2025-09-15 09:36:55 -05:00
Kevin Minehart
49f78c15e8 [release-12.2.0] CI: fix bump version action to use grafana-delivery-bot (#110976) (#110981)
CI: fix bump version action to use grafana-delivery-bot (#110976)

* update bump-version

* Add id-token: write

* update generate-token step

* pull-requests -> pull_requests

* clone with token and set right name

(cherry picked from commit c28a917871)
2025-09-11 15:47:47 -05:00
grafana-delivery-bot[bot]
76340a9741 [release-12.2.0] Alerting: Fix bug where rules with identical mute/active intervals produced conflicting routes (#110971)
Alerting: Fix bug where rules with identical mute/active intervals produced conflicting routes (#110935)

Alerting: Fix hash collision in NotificationSettings fingerprint
(cherry picked from commit fc3636acf2)

Co-authored-by: Alexander Akhmetov <me@alx.cx>
2025-09-11 19:44:08 +02:00
Isabel Matwawana
b15acdf1f2 [release-12.2.0] Docs: ad hoc filter improvements (#110961) 2025-09-11 12:15:52 -04:00
Isabel Matwawana
ca8402fbda [release-12.2.0] docs: clarify that data links must use variable names, not labels (#110965)
Co-authored-by: Sidharth Chauhan <chauhansiddharth71@gmail.com>
2025-09-11 12:09:51 -04:00
Isabel Matwawana
abb44794fe [release-12.2.0] Docs: Replace screenshots for pill and markdown cells (#110962) 2025-09-11 12:03:56 -04:00
Isabel Matwawana
c228eaa99d [release-12.2.0] Docs: Add panel filtering (#110960)
Co-authored-by: Sam Jewell <2903904+samjewell@users.noreply.github.com>
2025-09-11 11:59:24 -04:00
Larissa Wandzura
f41cc1c0d6 created new doc 2025-09-11 10:03:36 -05:00
Larissa Wandzura
b557d71c9a Merge branch 'docs/sql-expressions-updates-082025' of github.com:grafana/grafana into docs/sql-expressions-updates-082025
(cherry picked from commit b0bfbbf547)
2025-09-11 10:01:19 -05:00
Will Browne
e404352a38 Plugins: StaticFS should implement FSRemover (#110706) (#110943)
make staticfs implement fs removal interface
2025-09-11 14:44:47 +01:00
Josh Hunt
454380431d FS: Get CDN prefix from configuration (#110615)
* FS: Get CDN prefix from configuration

* undo logger change

* fix tests

* add unused property

* tests

* fix tests

* remove dead comment
2025-09-08 15:57:03 +00:00
Ihor Yeromin
2f2950eb29 Tests: Move Canvas tests to panel folder and add testing README (#110768)
* chore(e2e-tests): move canvas tests to panels
2025-09-08 17:52:10 +02:00
Ashley Harrison
a95f556e24 Chore: Remove some anys (#110661)
* removing some (hopefully) dead code

* fix some more any

* more any fixes

* manually add suppressions

* remove type assertion

* couple more
2025-09-08 16:49:57 +01:00
Ryan McKinley
7c95d3c8a9 Folders: Split legacy out of folder.Service (and remove folder.FolderStore) (#110734) 2025-09-08 18:27:49 +03:00
Andrew Hackmann
854a8f7e70 Prometheus data source: Remove migration background service (#110764)
Prometheus data source: remove mig bg service
:
2025-09-08 14:55:05 +00:00
Oscar Kilhed
ed69a1f16d Dashboards: Fix UTF-8 characters not working with excel downloads by replacing download for excel with excel compatibility mode. (#110099)
* convert to utf-16le

* Fix tests, remove download for excel

* update i18n

* Update copy

* update test
2025-09-08 16:23:06 +02:00
Zoltán Bedi
67c26c493e PostgreSQL: Fix error source in PGX (#110752) 2025-09-08 16:21:05 +02:00
Fayzal Ghantiwala
22ed5499a2 Alerting: Check if TimeInterval is used in ActiveTimings when deleting (#110691)
* check for active timing in route

* Update test

* Add integration test
2025-09-08 15:04:40 +01:00
Peter Štibraný
7fd9ab9481 Replace check for integration tests. (#110707)
* Replace check for integration tests.
* Revert changes in pkg/tsdb/mysql packages.
* Fix formatting of few tests.
2025-09-08 15:49:49 +02:00
Ashley Harrison
544872d117 Dashboard: revert variable css changes (#110684)
revert variable css changes
2025-09-08 14:33:34 +01:00
Dominik Broj
2e9432b9d5 Alerting: allow hiding alert rule column in CentralAlertHistoryScene (#110746)
allow hiding alert rule column
2025-09-08 15:00:21 +02:00
Misi
badea8bc37 IAM: Create Service Account API and legacy store impl (#110411)
* wip

* IAM: Create Service Account

* Add dual writer

* Update openapi_test.go

* Add integration tests

* Add sql tests

* Add Role to SA spec, add validation, add DBTime, add tests

* Format, update test

* Fixes

* Add check for External

* Address feedback

* Update tests

* Address feedback

* make gen-go

* Simplify a bit

* Fixes

* make update-workspace

* Update pkg/registry/apis/iam/serviceaccount/store.go

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>

* Address feedback, add test for generateName

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-09-08 14:31:32 +02:00
Hugo Häggmark
8a28381278 Chore: cleans up Angular tests (#110757) 2025-09-08 14:16:08 +02:00
Roberto Jiménez Sánchez
ace05e999d Provisioning: Remove temporary logic to test clients in jobs operator (#110758)
Remove temporary logic to test clients in jobs operator
2025-09-08 12:15:13 +00:00
Torkel Ödegaard
958f5a7c52 Dashboard: Panel edit undo/redo and other edit actions should trigger repeat of grid/auto items (#110606)
* Panel edit undo-redo

* Update

* Update

* fix lint & test

* Try switching to source tab

* Added temp fix for old editing ux

* Update
2025-09-08 14:06:37 +02:00
renovate[bot]
3c5c6b8185 Update dependency @floating-ui/react to v0.27.16 (#110715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 13:06:18 +02:00
Peter Štibraný
d09708fe55 Move SkipIntegrationTestInShortMode to testutil. (#110750)
* Move SkipIntegrationTestInShortMode to testutil.

* make update-workspace
2025-09-08 12:50:31 +02:00
Ryan McKinley
08230cbc09 Chore: Remove unused bus.Bus events (#110738) 2025-09-08 10:47:16 +00:00
Hugo Häggmark
bc843913e4 Chore: Removes HideAngularDeprecation configuration (#110665)
* Chore: cleans up HideAngularDeprecation

* Trigger build
2025-09-08 12:39:01 +02:00
Alex Khomenko
7020bdd7e1 Restore dashboards: Update cache invalidation (#110702)
* Restore dashboards: Update cache invalidation

* Delete unused component

* Update i18n

* Restore analytics toggle
2025-09-08 13:32:07 +03:00
Zoltán Bedi
d9f0d642cc PostgreSQL: PGX fix multiple results handling (#110452)
* PostgreSQL: FIx multiple results handling

- Added tests for handling multiple result sets, including compatible and incompatible structures, ensuring no panics occur.
- Improved `convertResultsToFrame` function to validate column compatibility and handle null values correctly.
- Introduced a new helper function `convertPostgresValue` for converting raw PostgreSQL values to appropriate Go types.
- Added comprehensive unit tests for `convertResultsToFrame` covering various scenarios including row limits and mixed result types.

* Add more test case
2025-09-08 10:37:54 +02:00
Tobias Skarhed
7bccabfb1f Secrets: Add e2e selectors (#110689)
* Add e2e selectors for secrets and ConfirmModal

* Update secretform selector
2025-09-08 08:02:11 +00:00
Mariell Hoversholm
4497af20b2 docs: fix Prometheus provisioning example (#110747) 2025-09-08 09:48:04 +02:00
Levente Balogh
2f558e8cb7 Grafana Schema: Extend the VariableHide enum (#110579)
* feat: extend the `VariableHide` enum with a new option

* feat: extend the `VariableHide` for v1
2025-09-08 09:08:09 +02:00
Hugo Häggmark
1fd4611487 Plugin Extensions: refactors shared logic into validator function (#110434)
* Plugin Extensions: consolidate logic

* chore: add specific error to tests

* chore: refactors out common parts to getExtensionValidationResults

* chore: updates after PR feedback

* chore: update after PR feedback
2025-09-08 06:22:27 +02:00
Drew Slobodnjak
23fa9a1484 TimeSeries: Use exported time shift and fix time comparison tooltip (#109947)
* TimeSeries: Use exported time comparison function

* Add alignTimeRangeCompareData to grafana/data

* Simplify tooltip time text formatting

* Bump scenes version

* Add tests for alignTimeRangeCompareData

* Add backwards compatibility for older scenes

* Update shouldAlignTimeCompare for typical query

* Fix tooltip for older versions of scenes

* support for multiple shifts

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-09-06 18:24:42 -07:00
Daniele Stefano Ferru
76f7836419 Provisioning: correctly use resource clients in controllers (#110737)
* Provisioning: correctly use resource clients in controllers

* better names on fields

* fix struct initialisation

* updating roundtripper tests
2025-09-06 18:13:39 -06:00
Ryan McKinley
6f3d2106c0 Chore/Folders: Add authlib client to wire and cleanup (#110683) 2025-09-06 12:14:09 +03:00
owensmallwood
c072ace9cd Unified Storage: Fix enterprise sort fields missing data (#110730) 2025-09-06 11:13:29 +03:00
grafana-pr-automation[bot]
0df8e42f4e I18n: Download translations from Crowdin (#110731)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-06 00:36:42 +00:00
Matthew Jacobson
d21178e348 Alerting: Fix field names on webhook HMAC/TLS config HCL export (#110722)
tlsConfig -> tls_config
hmacConfig -> hmac_config

tls_config export still does not match TF provider, as the provider currently
treats tls_config as a schemaless map. Once this is improved, they will now
match.
2025-09-05 19:58:11 -04:00
Daniele Stefano Ferru
04c3d9bff1 Provisioning: fixing some checks in config (#110729) 2025-09-05 23:27:35 +00:00
Mihai Turdean
62cc0f9c0e Udate IAM Folder Reconciler Operator config (#110728) 2025-09-05 22:56:23 +00:00
Kevin Yu
e3e0a1b8ca CloudWatch: Use the correct metric name for errors per function panel in the AWS Lambda sample dashboard (#110718)
CloudWatch: Use the correct metric name for errors per function panel
2025-09-05 17:01:56 -04:00
Will Assis
005da25698 fix: ListManagedObjects and CountManagedObjects panic when search is not configured (#110726)
fix ListManagedObjects and CountManagedObjects panicking when search index not configured
2025-09-05 20:58:12 +00:00
Stephanie Hingtgen
2750a3516a Provisioning: Add provisioning api server to clients (#110721) 2025-09-05 20:36:52 +00:00
Isabel Matwawana
d58b8aff7b Docs: Add saved queries content (#101845) 2025-09-05 16:36:16 -04:00
Andrew Hackmann
9445328a59 Prometheus data source: Migration service (#107364)
* copying from secrets migration

* service runs and mig promds type

* creating data source check

* adding aws

* split into azure/aws service. feature flag. auto install

* add tests

* clean up

* lint

* add code owner

* imporvments from andres

* remove prom mig from http_server

* remove interface for testing

* add prom mig to provisining data sources so prov happens before mig

* fit into prov

* comment

* log debug instead of returning in update type

* Trigger Build

* feature flag being weird

* not public method

* copying from secrets migration

* service runs and mig promds type

* creating data source check

* adding aws

* add tests

* clean up

* imporvments from andres

* remove prom mig from http_server

* remove interface for testing

* add prom mig to provisining data sources so prov happens before mig

* fit into prov

* Trigger Build

* not public method

* remove logger import
2025-09-05 15:07:06 -05:00
Paul Marbach
7cbc55d615 Table: Update UX for uniform-reducer case in new footer and overflow (#110493)
* Table: Update UX for single-reducer use case in new footer

* all cases are working; unit tests pass

* style and code cleanup in SummaryCell

* remove e2e test for sum reducer label

* reorganize code, todo tests

* slight style cleanup

* one more little reorganization

* updates based on CI failures

* update tests and docs

* unused prop

* update table footer image

* alt text, lint issue

* update gdev to create footer dashboard and re-point e2es there, add a few new cases

* remove console.log
2025-09-05 15:46:07 -04:00
Andres Torres
f9e82aba9c chore(rbac): Remove settings resources mappings (#110708) 2025-09-05 18:56:09 +00:00
Roberto Jiménez Sánchez
ed2273b2d2 Provisioning: processing of jobs in job controller (#110223)
* WIP: Controller

* WIP: more changes

* Use patcher from new location

* Separate import

* Move operators to grafana/grafana

* Tidy go mod

* Remove duplicate TODO

* Wrapper for unified storage

* WIP: build unified storage client

* More attempts

* Revert update workspace

* Improve comment

* Fix linting

* Change signature of repository getter

* Add ticket numbers

* Remove question

* Read config from file for decrypt service

* Config struct for unified torage

* Add local config

* Fix compilation

* Try to configure it

* Fix linting

* Add FIXME comment

* Move reusable logic into controller config

* Remove unused

* More logic to be reused

* Extract workers into separate function

* Clean up unified storage client

* Revert a couple of files

* Remove secrets decrypter from this PR

* Revert enterprise imports

* Clean up unified storage setup logic

* Add TODO

* Revert some changes

* Remove file

* Use the expected clients

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-09-05 18:28:31 +00:00
Zoltán Bedi
8e8c36203f Add support for PostgreSQL enum types in PGX datasource (#109863) 2025-09-05 20:24:54 +02:00
Roberto Jiménez Sánchez
e2913815d3 Provisioning: Build resource clients for operators (#110699)
---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-09-05 17:52:57 +00:00
Matias Chomicki
46258ac2c1 Log Controls: Add dropdown menu for timestamp and line wrapping (#110698)
* LogListControls: add dropdown menu for timestamps

* LogListControls: add dropdown menu for line wrapping

* Update styles

* Translations

* Update tests

* Update test

* LogListControls: all events
2025-09-05 17:43:34 +00:00
owensmallwood
dc1c5a610c Unified Storage: Fix broken tests (#110710)
fix broken tests
2025-09-05 17:19:13 +00:00
colin-stuart
0f54622db7 SCIM: Add logo (#110621)
* SCIM: add logo

* remove accidentally committed logo
2025-09-05 11:53:30 -05:00
Yunwen Zheng
24107abea3 SaveProvisionedDashboardForm: Reset dashboard dirty state after provisioned dashboard save (#110571)
* SaveProvisionedDashboardForm: Bugfix when changes are saved, save button still enabled
2025-09-05 12:06:52 -04:00
owensmallwood
d715bda8af Unified Storage: Adds pruner to kv backend (#110549)
* WIP adding pruner to kv store impl

* pruner only keeps 20 most recent versions

* ignore grafana-kv-data folder

* extracts some stuff to pruner.go file. Adds tests. Adds kvBackendOptions.

* update logging, comments, exports kvbackendoptions fields

* update nooppruner ref

* fixes field casing in test

* fix test

* linter fixes

* remove comment

* make KvStorageBackend private

* Adds pruner key validation and tests. Fixes broken tests.

* update error message when validating pruner key
2025-09-05 10:02:11 -06:00
Sonia Aguilar
f0095d84e3 Alerting: Load labels in drop-downs without blocking the interaction with the form inputs (#110648)
* load labels in dropdown async without blockig the interaction with labels inputs

* fix tests

* update translations

* remove fetchOptions unused property

* revert removing wrong lines

* Preferch rules for autocomplete and use caching

* use selectedKey for getting gops values

* revert removed lines

---------

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>
2025-09-05 15:51:19 +00:00
Cory Forseth
02227855e8 Authz: propagate folder changes to Zanzana (#110599)
* wire sync hooks for folder create/update

* cleanup

* add hook tests

* fix nil context

* better context
2025-09-05 10:46:30 -05:00
Ieva
d692303e76 AuthZ: Deleting managed role permissions for a specified resource (#110617)
* basics for deleting managed role permissions for a specified resource

* fix the query

* fix query tests

* storage tests

* sql tests

* add missing import

* Update pkg/registry/apis/iam/resourcepermission/storage_backend.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* PR feedback

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2025-09-05 16:22:09 +01:00
Sarah Zinger
ba202ebab1 ds-querier: Handle top level datasourceuids (#110616) 2025-09-05 11:08:56 -04:00
Moustafa Baiou
a459d43746 Alerting: Refactor prometheus api functions
Make state and health filters public

Co-authored-by: William Wernert <william.wernert@grafana.com>
Co-authored-by: Fayzal Ghantiwala <fayzal.ghantiwala@grafana.com>
2025-09-05 10:59:16 -04:00
Yuri Tseretyan
ce55d70fa5 Alerting: Refactor notification legacy storage (#110619)
* make legacy store expose only model.Receiver
* use integration as provenance type provider
* use revision RenameReceiverInRoutes
* introduce function GetReceiversNames in config revision

---------

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2025-09-05 14:46:46 +00:00
Alex Khomenko
439fefeda8 Provisioning: Delete repo config when navigating away (#110655) 2025-09-05 17:32:26 +03:00
Stephanie Hingtgen
c4bc83019d Provisioning: Fix bug in config reading (#110703) 2025-09-05 14:30:43 +00:00
Bogdan Matei
3e14a48ebb Update swagger-ui-react to fix sha.js issues (#110696) 2025-09-05 14:04:17 +00:00
Bruno
9a641c651f secrets: update test to accept []byte(nil) and []byte{} (#110630)
Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
2025-09-05 10:19:57 -03:00
Dominik Prokop
b4e63c36c3 Migration v42: HideFrom tooltip consistency migration (#110517)
* Migration to be verified: v42 HideFrom tooltip migration

* snap update

* make gen cue

* Add comments of 42 being the final version
2025-09-05 15:07:30 +02:00
Gabriel MABILLE
801fde02a7 grafana-iam: Implement resourcepermission creation (#110246)
* Extract from #108753

Co-Authored-By: mohammad-hamid <mohammad.hamid@grafana.com>

* Tackle create

Co-Authored-By: mohammad-hamid <mohammad.hamid@grafana.com>

* WIP use identity store to resolve role names

* WIP

* create role

* Remove unecessary comments

* comments

* sql templates

* test role insert tplt

* Add tests 😅

* Test permission insert template

* Test permission delete template

* Test assignment_insert template

* Manually test insertion

* Remove delete permissions. This is a create case we don't have permissions for that resource

* generate name handled by the apiserver library

* Remove comment and conversion

* Small renaming nits

* changes from main

* Add storage backend tests

* Add test to sql

* Test role contains a unique permission

* linting

* Account for pr feedback

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* Reuse mappers

* Move function to models

* Add check between name and spec resource

* Check if the resource does not already exist

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* fix query

* Check basic roles

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* Account for error

* Make struct names consistent

* Nit. I prefer createAndAssignManagedRole

* Remove notifyign

* log errors instead of returning them

* Fix exist query join

* Test errors

* Remove dup

---------

Co-authored-by: mohammad-hamid <mohammad.hamid@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2025-09-05 14:22:25 +02:00
maicon
726c7ba71b search: Force index IDX_dashboard_title when searching dashboards (#110595)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-09-05 08:34:29 -03:00
Peter Štibraný
bd529226a3 unified-storage search: return results matching all search terms (#110672)
* Extract common indexing code.

* Extract common search code.

* Match all terms in the search query.
2025-09-05 11:00:54 +00:00
Roberto Jiménez Sánchez
feb4368de5 Provisioning: Build unified storage client for operators (#110671)
* Build unified storage client in config
* Testing ticker to count managed objects
2025-09-05 10:51:51 +00:00
Alex Khomenko
647c1424d4 Restore dashboards: Clear cache when deleting or restoring dashboards (#110513)
* Restore dashboards: Clear cache when deleting or restoring dahboards

* More cache clearing
2025-09-05 13:03:13 +03:00
Ryan McKinley
9f7101e2ad Chore/Folders: reduce direct use of settings.Cfg (#110657) 2025-09-05 12:50:19 +03:00
Dominik Prokop
9920f4b437 DatasourceSrv: Fix getInstanceSettings for type-only datasource references (#110612)
• Add handling for type-only refs like {type: 'prometheus'} in getInstanceSettings()
• Ensure consistency with get() method behavior
• Add test case verifying both methods return same results for type-only refs
2025-09-05 11:30:13 +02:00
Hugo Häggmark
5eb42ece91 Chore: clean up angular related test (#110659) 2025-09-05 11:28:51 +02:00
Roberto Jiménez Sánchez
1b9e479b68 Provisioning: Abstract away how we build discovery and dynamic clients (#110662)
Abstract away how we get discovery and dynamic clients
2025-09-05 09:22:30 +00:00
grafana-pr-automation[bot]
6a54340501 I18n: Download translations from Crowdin (#110642)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-09-05 09:02:17 +00:00
Alex Khomenko
a8378af6ed Provisioning: Fix loading bitbucket branches (#110651)
* Provisioning: Fetch bitbucket branches

* reuse func

* Prettier
2025-09-05 07:42:43 +00:00
Alex Khomenko
f347bb4f61 Provisioning: Hide other providers if empty (#110652) 2025-09-05 07:16:07 +00:00
Ryan McKinley
eeb940e733 Chore: Replace hand crafted mocks with mockery (#110627) 2025-09-05 07:13:15 +00:00
Diego Giagio
554cd6f198 Postgres: Fix JSON data type mapping with PGX driver (#110566) 2025-09-05 08:39:56 +02:00
ismail simsek
5872672042 Prometheus: Properly handle no __name__ case on RawListItem (#110608)
* handle no __name__ case

* lint:prune

* Add nomargin

---------

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2025-09-05 06:17:51 +00:00
Stephanie Hingtgen
29ef525923 Provisioning: Allow disabling controllers (#110641) 2025-09-05 07:48:23 +02:00
Stephanie Hingtgen
9ddc70423b Provisioning: Cleanup tester interface (#110640)
* Provisioning: Cleanup tester interface

* undo accidental change

* cleanup

* cleanup test
2025-09-05 07:47:27 +02:00
Juan Cabanas
c9eecf850b Saved Queries: renderSaveQueryButton change (#110623)
* refactor in saved query buttons

* naming modified

* tests removed because component is now enterprise

* feedback applied

* translation removed

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2025-09-04 21:58:39 -07:00
Stephanie Hingtgen
b567cde3d3 Provisioning: Reuse controller from registry (#110639) 2025-09-05 01:13:55 +00:00
Leon Sorokin
beaa512eb3 PanelQueryRunner: Use rxjs forkJoin (like Scenes), not lodash merge (#109220) 2025-09-04 19:54:47 -05:00
Stephanie Hingtgen
f302a3d538 Provisioning: Cleanup unused variables in controller (#110637) 2025-09-05 00:51:26 +00:00
Kevin Minehart
4810e51743 CI: pin dagger version to match go.mod (#110638)
* pin dagger version to match go.mod

* set in e2e too
2025-09-05 00:28:27 +00:00
Ryan McKinley
4723d2d8de Stars: implement full CRUD operations via legacy service (#110489) 2025-09-04 14:49:49 -05:00
Ryan McKinley
1dadf2cad9 Stars: Remove deprecated internal ID apis (#110499) 2025-09-04 14:45:01 -05:00
Tom Ratcliffe
3d6d632686 Chore: Remove betterer (#110469) 2025-09-04 18:17:53 +01:00
Will Assis
ea7c370edd unified-storage: add ListSinceModified to kv store (#110250)
* implement ListKeysSince in event store

 implement data store version

---------

Co-authored-by: Georges Chaudy <chaudyg@gmail.com>
2025-09-04 12:26:40 -04:00
Bogdan Matei
eed8d189ac Dashboards: Refactor conditional rendering (#108596) 2025-09-04 16:22:26 +00:00
Matias Chomicki
456bd0e81a LokiOptionFields: track max lines (#110583) 2025-09-04 18:19:23 +02:00
Josh Hunt
45df6c31d9 FS: Add support for local dev configs (#110508)
* FS: Add support for local dev configs

* document AUTO_DOWN

* remove zig
2025-09-04 17:17:32 +01:00
Jean-Philippe Quéméner
a9f9ff8580 fix(search): bump the limit for locationinfo search (#110604) 2025-09-04 17:36:52 +02:00
Ihor Yeromin
8331661fb7 Adhoc filter: Test filter for value buttons integration (#110514)
* test(adhoc-filter): filter for value buttons integration
2025-09-04 15:22:10 +00:00
mohammad-hamid
abcdf20105 grafana-iam: Implement resourcepermission get (#110256)
* resource permissions get

* address review feedback

* address comments
- read using rp name
- narrow by scope and actionsets
- update sql tests

* align with verb simplification

* keep original format to avoid conflicts

* add sqltests

* cleanup

* Remove unecessary errors

* Move query template to queries

* Use splitN to make sure we have three parts

* Revert user permission management for now. We don't need it

* Revert error change

* group permissions by resource

* extract parse scope

* Move sql_test

* Move & test parseScope

* Add tests to getResourcePermission

* Linting

* Use namespace

* Add test to the backend

* Ongoing tests

* Remove pagination, fix query boolean, insert basic role binding

* Linting

* Straightened the created and updated times

* error handling and uniformization with other backend

* Restore comments to avoid later conflicts

* Integration testing

* switch to function, no need to make it a method

* isServiceAccount should default to FALSE instead of TRUE :surprised:

* PR feedback

* Sort spec permissions

* Shouldn't happen but double proofing

---------

Co-authored-by: Gabriel Mabille <gabriel.mabille@grafana.com>
2025-09-04 17:14:15 +02:00
Alexa Vargas
40bf167cb7 Saved Query: Add onSelectQuery to QueryLibraryContext (#110536)
* Saved Query: Remove onSelectQuery prop requirement from components using saved queries

* preserve onSelectQueryCallback on SaveQuery

* add missing onSelectQueryCallbacks
2025-09-04 16:52:42 +02:00
Ezequiel Victorero
76c8fcf99d Saved Queries: Promote to public preview (#110551) 2025-09-04 11:52:00 -03:00
Ivana Huckova
f62785d272 Data source config: Add extension point for components (#110588)
* Data source config: Add extension point for components

* Fix lint

* Fix and add tests

* Refactor allowed plugins

* Fix lint
2025-09-04 14:30:17 +00:00
Mihai Turdean
f1dffca140 IAM Folder Reconciler: Make operator available as a target when running the grafana binary. (#110567) 2025-09-04 08:22:17 -06:00
Tom Ratcliffe
2760be6892 Folders: Refresh children at root level when creating new folder (#110591) 2025-09-04 15:19:06 +01:00
Roberto Jiménez Sánchez
57ea65dc42 Provisioning: Decrypt using Secrets Service in Operators (#110589)
* Use real secrets servicer decrypter

* Add also server name just in case
2025-09-04 16:18:14 +02:00
Alexander Akhmetov
000ada4cd1 Alerting: Fix alert enrichment API plural schema name (#110593) 2025-09-04 16:18:03 +02:00
Ashley Harrison
33722ac1b1 Chore: remove betterer command from lefthook (#110600)
remove betterer command from lefthook
2025-09-04 15:16:21 +01:00
Bruno
6b5cacfade use standard sql in secure_value_lease_inactive.sql (#110532)
* use standard sql in secure_value_lease_inactive.sql

* ci
2025-09-04 10:01:05 -03:00
Victor Marin
27b3137baf Dashboards: User journey E2Es (#109049)
* wip

* wip

* wip

* wip

* scope e2es

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* add dashboard view tests

* mods cujs

* wip refactor

* remove timeouts

* fixes

* betterer

* fixes

* refactor

* refactor

* fix

* use type instead of any

* betterer

* PR mods + codeowners

* CODEOWNERS

* readme lint
2025-09-04 15:17:54 +03:00
Dominik Broj
4d818292d8 Alerting: Expose unified alert history component (#110394)
* register exemplary alert rule extention into IRM extension point

* register AlertRuleHistory into IRM's extension point

* support more default filters

* lazy load alert rule extension

* simplify

* rename extension point

* use exposed component, put props type in grafana-data

* rename PluginExtensionPointsInPlugins to PluginExtensionExposedComponents

* Update public/app/features/alerting/unified/components/rules/central-state-history/CentralAlertHistorySceneExposedComponent.tsx

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>

* export new types from grafana/data and avoid relative import paths

* improve naming of exposed component

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2025-09-04 13:56:50 +02:00
Alexander Akhmetov
100528e274 Alerting: Support retry with backoff in alert rule evaluation (#99710) 2025-09-04 13:56:03 +02:00
Ryan McKinley
8052ecb3ba Dashboards: Remove panel plugin provider from migrations (#110477) 2025-09-04 14:17:22 +03:00
Roberto Jiménez Sánchez
3d009ff7ed Provisioning: Build and use repository factory in repository controller (#110585)
Build and use repository factory
2025-09-04 13:12:56 +02:00
Ryan McKinley
145a50be4d Folders: Improve folder parent testing (#110439) 2025-09-04 10:50:31 +00:00
Roberto Jiménez Sánchez
7d630ec3b1 Provisioning: Refactor tweaks to support MT controllers (#110581)
* Refactor common code to support MT controllers

* Delete original status files
2025-09-04 10:06:50 +00:00
Tom Ratcliffe
55b638ea98 Chore: Move betterer eslint rules to use eslint suppressions (#106267)
Co-authored-by: joshhunt <josh.hunt@grafana.com>
2025-09-04 10:47:13 +01:00
Matias Chomicki
df685757ff New Logs Panel: remove sibling visualization (#110444)
* New Logs Panel: remove sibling visualization

* More removals

* Update provisioned dashboard

* Update translations
2025-09-04 11:27:50 +02:00
Joey
600137919e TraceView: Add support for plugin components in trace view header (#110524)
* Add support for plugin components in trace view header

* Fix lint error

* Remove as

* Fix tests

* Prettier

* better eslint
2025-09-04 09:58:21 +01:00
Ashley Harrison
9272a1c19a Chore: Fix some more a11y checks in stories (#110531)
fix more a11y checks in stories
2025-09-04 09:57:02 +01:00
Torkel Ödegaard
513971119a TabsLayout: Fixes issue serializing tab with repeats (#110576)
* TabsLayout: Fixes issue seralizing tab with repeats

* Fix lint
2025-09-04 10:47:10 +02:00
Andrej Ocenas
2958126c87 Folders: Migrate move folder to new API (#110550) 2025-09-04 10:23:56 +02:00
Alexander Akhmetov
c9707a7463 Alerting: Bump alertenrichment API version to v1beta1 (#110466) 2025-09-04 09:32:29 +02:00
Sergej-Vlasov
6ba1699955 TabItemEditor: Add tab title edit undo action (#110497)
* add undo action for tab title change

* add i18n
2025-09-04 09:58:52 +03:00
Levente Balogh
c7b3662d85 Restricted APIs: Remove type assertion from Betterer (#110548)
chore: remove type-assertion from betterer
2025-09-04 06:50:09 +02:00
Adela Almasan
4f70b93ca6 Actions: Infinity authentication (#109493) 2025-09-03 20:56:30 -05:00
grafana-pr-automation[bot]
936406bfe9 I18n: Download translations from Crowdin (#110569)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-04 00:39:30 +00:00
Will Assis
d9c875d343 fix: dashboard list page bugs while in mode 3 (#110568)
* fix infinite scroll when using folder tree view in dashboard page inside folders with more than 50 items

* fix off-by-one error when fetching in list view
2025-09-03 19:50:58 -04:00
Alex Spencer
6c9faa7595 TableNG: Footer enhancements (#102948)
* Table: Footer support for multiple reducers

* fix migrator test output due to required default value

* fix go migration test

* more go test fixes

* fix go tests for footer

* Merge #110062

* update migration dashboard

* Small docs fixes

* Small docs fix

* remove migration method in Go, update js unit test

* add migration dashboard for footer and clean up some issues with countAll

* Footer should always use og rows for calcs

* update footer to be unaffected by filtering and sorting

* more e2es

* add more complex footer to kitchen sink, migrate panel all the way up

* update codeowners for e2e

* relocate footer migration panels and e2es to main 12.2 migration dashboard

* go further with the migration; kill unused fields, rename reducer to reducers

* get the go code up to date, move enablePagination to its own option as well

* add a unit to one of the numeric columns with a footer in kitchen sink

* fix reducers override in kitchen sink migration table

---------

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-09-03 18:03:33 -04:00
alerting-team[bot]
ae97eb860c Alerting: Update alerting module to 24567882c5d1ec33212a63405d4a383c1703e6f6 (#110562)
---------

Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com>
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-09-03 21:36:43 +00:00
Stephanie Hingtgen
4527530cd2 Provisioning: update readme to skip migrations (#110561) 2025-09-03 21:09:44 +00:00
Costa Alexoglou
3d2cef5f07 feat: provides MT Dashboard service (#110447) 2025-09-03 20:41:37 +00:00
Yuri Tseretyan
7d32640179 Alerting: Fix ticker tests to not fail if channel is empty (#110538) 2025-09-03 16:21:47 -04:00
Kristina
3051dd9d44 Transformations: Account for group by / count when assessing if calculation is needed (#110546)
* Add logic for groupby count and add tests

* remove skip

* Use better and accurate test naming

* deconstruct options, add test for group by / count

* Have different values for test

* Remove only and change variables to allow optional chaining based on field

* add back destructuring
2025-09-03 13:53:27 -05:00
Adela Almasan
a8b7504979 Canvas: Fix element selection being cleared on panel resize (#110010) 2025-09-03 13:05:48 -05:00
Jacob Valdez
45228d1ad9 Docs: updating whats new video shortcode (#110547) 2025-09-03 17:32:30 +00:00
Stephanie Hingtgen
84ae9ea71b Provisioning: Add scaffolding for repo controller (#110543) 2025-09-03 17:30:41 +00:00
Kyle Brandt
00ab80a2f6 SQL Expressions: Add Exemplars to instrumentation (#110481)
follow up to #109633
2025-09-03 17:25:44 +00:00
Matias Chomicki
bbc401a6be New Log Details: Inline improvements (#110276)
* LogLineDetails: make inline details taller

* Translations: add missing plurals

* Update sidebar icon

* LogList: default to inline details

* LogLineDetails: details by screen width

* Inline details: slightly smaller

* LogLineDetails: use container size for default mode
2025-09-03 18:53:38 +02:00
Stephanie Hingtgen
8e41d5929a Operators: Cleanup registration process (#110539) 2025-09-03 16:36:42 +00:00
Yuri Tseretyan
1e0aaa29af Alerting: Comprehensive payload for Alertmanager convert API tests (#110485)
* do not remove global config
* create more comprehensive payload for mimir alertmanager testing
2025-09-03 12:11:55 -04:00
Eric Leijonmarck
ce70900c73 fix: add back missing edit button for panels for viewers-can-edit (#110475)
* fix: add back missing edit button for panels for viewers-can-edit

* lint fix

* updated meta cansave function with config option

* cleanup

* lint

---------

Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-09-03 17:02:17 +01:00
Alexander Akhmetov
8a7c1f595a Alerting: Backend state filtering for history UI (#109647) 2025-09-03 17:47:03 +02:00
Matias Chomicki
9dfd250049 Log line details: Update styles (#110472)
* LogLineDetails: show border right when controls are disabled

* LogLineDetails: update styles

* Update types in test

* Update background, border, and shadow

* Close details: fix tooltip
2025-09-03 17:44:29 +02:00
Peter Štibraný
642d43ff49 search-after-write: Reuse index even if docs count doesn't match (#110527)
* search-after-write: Reuse index even if docs count doesn't match

* Revert unrelated change.
2025-09-03 15:35:46 +00:00
Kyle Brandt
ea7fa58ba8 SQL Expressions: Switch feature toggle to public preview (#110473) 2025-09-03 17:11:00 +02:00
Matheus Macabu
4be28f6f7e EphemeralEnvs: Trigger workflow when PR is merged (#110501) 2025-09-03 16:50:28 +02:00
maicon
fa20755d4b fix: Synchronously notify subscribers when writing Create events to CDK backend (#110476)
* Remove goroutine when writing events on CDK backend

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-09-03 11:49:04 -03:00
Ashley Harrison
9b18987df1 Playwright: Changes needed for enterprise tests (#110424)
* enterprise scaffolding

* clean up gitignore, add enterprise to playwright config

* add workflows

* setup enterprise in the workflows

* update permissions

* try update license path

* add TODO

* undo workflow changes

* remove commands

* add extensions folder

* update gitignore

* include the whole public folder

* add comment

* review comments
2025-09-03 15:45:54 +01:00
Yunwen Zheng
3a3ea45111 FolderRepo: Prevent no basic role user getting infinite api calls on provisioning settings endpoint (#110486) 2025-09-03 10:17:36 -04:00
Ben Darlow
163ff0c9f1 Text: Add Inter italic font variants to Grafana UI (#110313)
Add Inter italic font variants
2025-09-03 15:04:14 +01:00
Yuri Tseretyan
0351a37e99 Alerting: Remote Alertmanager to calculate hash of the request payload instead of just the configuration v2 (#109139)
* Revert "Revert "Alerting: Remote Alertmanager to calculate hash of the reques…"

This reverts commit cbf256120e.

* log the decision

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>

---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-09-03 14:01:25 +00:00
Josh Hunt
bda895ec03 Metrics: Add http_response_size_bytes metric (#110428)
* Metrics: Add http_response_size_bytes metric

* add better handler names for public asset paths

* fix tests

* comment

* remove debug log

* exemplar
2025-09-03 14:47:38 +01:00
Ivana Huckova
4e28cba1c5 Bump @grafana/assistant package (#110507)
* Bump @grafana/assistant package

* Update origin

* Update FlameGraphHeader.tsx

Co-authored-by: Kevin Adam  <16607163+kevelopment@users.noreply.github.com>

* Update LogListContext.tsx

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

* Fix lint

* Update public/app/features/logs/components/panel/LogListContext.tsx

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

---------

Co-authored-by: Kevin Adam <16607163+kevelopment@users.noreply.github.com>
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2025-09-03 15:30:02 +02:00
Ihor Yeromin
dc16562050 AdHoc Filter: Enable to GA (#110445)
* chore(adhoc-filter): enable to GA
2025-09-03 13:21:33 +00:00
Tom Ratcliffe
7947ead939 Chore: Remove betterer undocumented stories check (#110453) 2025-09-03 12:59:36 +00:00
Ihor Yeromin
1faaec2611 P2P Filter: Add adhoc filter option toggle (#110160)
* feat(ds): add adhoc filter option
2025-09-03 12:51:27 +00:00
Tom Ratcliffe
f59495c416 Chore: Move a11y storybook check to eslint (#110425) 2025-09-03 12:31:09 +00:00
Alex Khomenko
88a63a1d92 Icon: Use non-block element for loader (#110399) 2025-09-03 15:29:33 +03:00
Tom Ratcliffe
2afb21f9f7 Chore: Move gf-form betterer check to eslint instead (#110341) 2025-09-03 13:03:44 +01:00
Ben Darlow
46d4061fca Update Storybook documentation for RadioButtonGroup and RadioButtonList with usage guidance (#110291)
* Update the Storybook docs for RadioButtonList where it was incorrectly referencing RadioButtonGroup in code examples

* Update the Storybook docs for RadioButtonList and RadioButtonGroup with more useful guidance for usage

* Refine the Storybook docs for RadioButtonGroup
2025-09-03 12:24:50 +01:00
Igor Suleymanov
a07a8d0ba2 Fix listing and getting dashboard versions across different API versions (#109860)
* Fix listing and getting dashboard versions across different API versions

What

This commit updates dashboard version service to use API version aware
API client. The service now also supports parsing different API version
representation of dashboards.

The API version aware client is also updated to support listing across
versions.

Why

Currently listing or getting specific versions is broken for all v2
versions of the dashboard API, especially if the dashboard being checked
is still saved using v1 APIs.

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Remove superfluous tracing spans

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2025-09-03 13:51:11 +03:00
Tom Ratcliffe
95080d9d56 Folders: Update folder using app platform APIs (#110449) 2025-09-03 11:29:26 +01:00
Dominik Prokop
6c517f82ed Dashboards: Enable kubernetesDashboards by default (#107618)
* Dashboards: Enable kubernetesDashboards by default

* Update integration test to account for the FT being enabled by default

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2025-09-03 12:01:55 +02:00
Luminessa Starlight
8dd82c34f7 Accessibility: Fix overflowing layout on small zoomed screen (#109880)
* fixes the layout in a slightly naive way
does work in both chrome and firefox

* make panel and query sections individually have full viewport height

* allow wrapping in dashboard controls, and align time picker section correctly when wrapped

* use more fixed minimum widths and allow horizontal scroll for overflow

* remove collapsing when sizes are fixed, and fix inverted collapse state logic

* use new wrapper for reflow layout media query setup

replace the magic numbers with theme breakpoints

apply global styles conditionally and locally

fix left to right splitter collapse state so it's removed in small size

added betterer exception that will be removed in the next commit

* moved component definition outside of non-react class so react hook lint rule recognizes it's not a class component (betterer fixes)

* remove unused import

* nit fix

* move disabling useSnapperSplitter logic into the hook

simplify reflow hook to only use height, and use a fixed height unrelated to shared width breakpoints

* remove global style overrides

* prevent scrolling in editor

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-09-03 10:22:00 +01:00
Georges Chaudy
1758fa8fbb unistore: use scorch indexing instead of upside_down (#110463)
* use scorchwith in memory

* comments

* refactor
2025-09-03 11:06:08 +02:00
Andres Martinez Gotor
f13c3b38ea Advisor: Avoid write if checktype exists (#110340) 2025-09-03 09:54:49 +02:00
Gábor Farkas
0bfec936b3 datasources: querier: add user to query (#109917) 2025-09-03 09:29:26 +02:00
Marc Sanmiquel
cb77e97996 Pyroscope: Fix incorrect rate calculation from flamegraph totals (#110470)
* fix(pyroscope): remove incorrect rate calculation from flamegraph totals

* update CHANGELOG.md
2025-09-03 08:15:06 +01:00
Yunwen Zheng
cb3fc369fe Provisioning Action Drawer: Organize action and cancel button order to match existing pattern (#110487) 2025-09-03 08:50:52 +03:00
grafana-pr-automation[bot]
3ac0b5ca03 I18n: Download translations from Crowdin (#110490)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-03 00:44:33 +00:00
Jesse David Peterson
095d90ae71 FS: Canvas panel icons and background images are missing (#110316)
* fix(frontend-service): mount public/img dir, copy Canvas subdirs over

* fix(canvas): update icon selector to use enum type not magic string

* fix(canvas): update folder selector to use grafana path from window

* chore(todo): code comment on when/where to remove Dockerfile COPYing

* feat(resource-dimension): public asset URL should include build/ for CDN

* chore(todo): note where to remove -- Grafana -- ds dependency from later

* fix(canvas): update folder selector to use build/ in path to hit CDN

* test(resource-dimension): expect relative URLs to include build/ for CDN

* fix(geomap): load icons for legend from CDN friendly path as well

* chore(resource-dimensions): delete dead code
2025-09-02 15:38:44 -04:00
Daniele Stefano Ferru
451d6abe15 Provisioning: Fix patching released resources when Repository is deleted (#110295)
* Provisioning: Use merge patch instead of json path to release orphan resources

* rolling back to json Patch

* adding TODO for testing

* adding integration test

* using struct

* addressing comments on tests
2025-09-02 21:13:43 +02:00
Kyle Brandt
d97836f407 SQL Expressions: Return error on malformed input (#110479)
Fixup on a misleading error being returned due to a missing return statement in the code. Was returning the error "conversion succeeded but no frames" even though there was an error.
2025-09-02 14:49:04 -04:00
Matthew Jacobson
099a43aa10 Alerting: Fix insights panel for Grafana missed iterations (#110468)
* Alerting: Fix insights panel for Grafana missed iterations

Existing panel was copied from Mimir version, so it was using the
wrong metric as well as incorrect assumptions on the series labels

grafanacloud_instance_rule_group_iterations_missed_total ->
grafanacloud_grafana_instance_alerting_schedule_rule_evaluations_missed_total

parsing `rule_group` (ex. `/rules/12345/synthetic_monitoring;default`) ->
using `rule_title` directly

* Linting
2025-09-02 14:33:41 -04:00
Ihor Yeromin
bdf9583ada SSE: Return error messages instead of 500 on SSE command parse errors (#109480)
fixes #108897

---------

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2025-09-02 18:00:14 +00:00
Zoltán Bedi
76af73b3f3 Update @grafana/plugin-ui dependency to version ^0.10.10 across multiple packages (#110433) 2025-09-02 19:05:56 +02:00
Ryan McKinley
fdac98cdda ShortURL: Avoid teris-io/shortid (#110456) 2025-09-02 17:01:20 +00:00
Will Browne
81fa79cdf6 Plugins: Add metric for connection request unavailable errors (#110454)
add metric for connection request unavailable errors
2025-09-02 17:23:07 +01:00
colin-stuart
b81395976f Remove SCIM banner (#110315)
* Remove SCIM banner

* yarn i18n-extract
2025-09-02 11:07:05 -05:00
Gilles De Mey
62cbe15f51 Alerting: Hide list view loader if we don't have anything yet (#110464) 2025-09-02 15:24:54 +00:00
Serge Zaitsev
cdd7a2cfd2 Chore: Disable CGo in tests (#108764)
* make cgo optional for sqlite

* update go.mod; check error code differently

* reduce api surface even more

* move test errors into sqlite package

* CGO_ENABLED=0 in unit tests

* disable for enterprise, too

* add driver name constant

* remove unused constants

* make test an integration one

* try integration tests without cgo

* implement error codes for modernc sqlite driver

* typo fix

* missing return

* use error pointer as an interface

* alias the driver

* update workspace, check for test errors too

* check error properly

* add missing driver after rebase

* fix missing import after rebase

* debugging, lets try again

* properly parse options, revert many previous changes

* remove another log

* better url parsing

* revert test rename, leave it for later

* revert reusedSession in unistore

* revert more code

* remove driver name

* revert formatting

* add integration test without cgo for sqlite

* remove tracing and logging

* bring driver alias back

* fix type

* wrong package
2025-09-02 17:24:30 +02:00
Matias Chomicki
9b57d9616a Log Details: Update links UI (#110412)
* LogLineDetailsLinks: create component

* Label: add space

* Comment

* LogLineDetailsLinks: show value in a toggletip

* LogLineDetailsLinks: add label

* Update tests
2025-09-02 15:06:57 +00:00
Gilles De Mey
a058665bbc Alerting: Minor papercut for data sources in the list view (#110460) 2025-09-02 17:05:51 +02:00
Andreas Christou
95072dad6c Azure: Show resource group in picker (#110442)
* Show resource group in picker

* Trigger build
2025-09-02 14:57:29 +00:00
Eric Leijonmarck
12a789cfc5 LBAC for data sources: Update doc to remove the reference of specific data sources and cloud only (#110462)
update docs
2025-09-02 14:42:08 +00:00
Lauren
c6ff3b5be2 Alerting: Allow filter by rule source in Filter V2 (#110336)
* add UI for rule source section of filter

* add logic to filter grafana vs external datasources

* run yarn i18n-extract

* resolve PR comments

* resolve design comments

* add rule source to search parser

* rename external to datasource

* import empty from ix

* fix tests

* fix typing

* resolve comments- treat undefined as *

* resolve PR comments
2025-09-02 15:27:54 +01:00
Ryan McKinley
146caddf1f Chore: update feature toggle stats from git (#110457) 2025-09-02 17:15:08 +03:00
xavi
16b7535dd4 Forbid more redirect patterns (#110337) 2025-09-02 16:12:39 +02:00
Lauren
95f167bb8b Alerting: Reduce failed network requests in Filter V2 (#110280)
* update options type to promise, fetch only when dropdown is open

* add GMA/DMA section WIP

* remove rule manager radio

* use default no options found in dropdowns

* fix failing test

* resolve PR comments

* replace fetchPromNamespaces with fetchGrafanaGroups
2025-09-02 14:12:20 +00:00
Bruno
f8cd7049e8 Secrets: garbage collection (#110247)
* clean up older secret versions

* start gargbage collection worker as background service

* make gen-go

* fix typo

* make update-workspace

* undo go mod changes

* undo go work sum changes

* Update pkg/registry/apis/secret/garbagecollectionworker/worker.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/registry/apis/secret/garbagecollectionworker/worker.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* default gc_worker_batch_size to 1 minute

* fix typo

* fix typo

* add test to ensure cleaning up secure values is idempotent

* make gen-go

* make update-workspace

* undo go.mod and .sum changes

* undo enterprise imports

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-09-02 11:11:01 -03:00
Sergej-Vlasov
d5eb3e291a DashboardGridItem: Trigger row repeat behaviour on panel edit complete (#110397)
reset SceneGridRow repeats on panel change
2025-09-02 17:10:10 +03:00
Sergej-Vlasov
2a7fcd7d5f TabsLayoutManager: Tab url sync rethink (#110274)
* Url sync for tabs rehink

* Update

* Thinks are working pretty well

* wip: solve tab not found

* fix lint and tests

* adjust wait for repeats in getCurrentTab

* set currentTabSlug in useEffect

* set currentTabSlug on tab title change

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2025-09-02 17:09:55 +03:00
Yunwen Zheng
d33f0e0941 Provisioning: Add ProvisioningAwareFolderPicker to prevent cross-repository folder moves (#110136)
* Added ProvisioningAwareFolderPicker component to prevent cross repo resource move
2025-09-02 09:55:59 -04:00
Jean-Philippe Quéméner
6d5fe47790 fix(unified-storage): use contextual logger for permissions (#110455) 2025-09-02 15:53:37 +02:00
Jean-Philippe Quéméner
5fb72d1b04 fix(unified-strorage): optimize allocations (#110448) 2025-09-02 15:43:48 +02:00
Tom Ratcliffe
2a5ba2e74a Folders: Fix folder parents error handling (#109605) 2025-09-02 14:25:28 +01:00
Matheus Macabu
9816c48ab2 Secrets: Add UI feature toggle (#110451) 2025-09-02 15:25:22 +02:00
Andres Martinez Gotor
13baef080c Datasource view: Show a not-found message (#110417) 2025-09-02 14:37:51 +02:00
Yulia Shanyrova
0c44a0c14a Plugins: Pin plugin search and connections search to the page (#109903)
* pin page header for plugins and connections

* fix tests
2025-09-02 13:57:58 +02:00
Alexander Akhmetov
9d9f464679 Alerting: Add alertenrichment API types (#110396) 2025-09-02 13:33:54 +02:00
renovate[bot]
7d329c8080 Update scenes to v6.33.0 (#110438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 14:16:34 +03:00
Levente Balogh
41681eb2ee Dashoard-Scene: Remove unused(?) console.log() statement (#110395)
chore: remove console.log
2025-09-02 13:05:43 +02:00
Andrej Ocenas
bab84c64dc Folders: Migrate bulk move action to new API (#110150) 2025-09-02 12:41:29 +02:00
Matheus Macabu
4045da21e0 Provisioning: Bump secret dependency version (#110440) 2025-09-02 10:09:14 +00:00
Andreas Christou
1a8d25375a Azure: Resource picker improvements (#109458) (#109520)
* Azure: Create feature toggle for resource picker improvements (#109458)

Create feature toggle

* Azure: Resource picker subscriptions filter (#109527)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Update tests, lint, and i18n

* Lint and test

* Simplify type

* Azure: Resource picker types filter  (#109528)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Update tests, lint, and i18n

* Lint and test

* Simplify type

* Rename variable for clarity

* Azure: Resource picker locations filter  (#109530)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Locations filter

* Update tests, lint, and i18n

* Minor test updates

* Imports

* Lint and test

* Simplify type

* Rename variable for clarity

* Rename var

* Azure: Resource picker filters tests (#109590)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Locations filter

* Update tests, lint, and i18n

* Minor test updates

* Imports

* Lint and test

* Resource picker filter tests

* Update tests

* Simplify type

* Rename variable for clarity

* Rename var

* Azure: Resource picker - recent resources (#109596)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Locations filter

* Update tests, lint, and i18n

* Minor test updates

* Imports

* Lint and test

* Resource picker filter tests

* Update tests

* Event for filter usage

* Function to support local storage

* Recent resources view

- Add LocalStorageValueProvider to store recent resources
- Add tabbed view to support switching between recent resources and resource picker
- Extract the base resource picker out to a functional component for reusability
- Extract the base resource table out to a functional component for reusability

* Update i18n keys

* Export resource key

* Add no recent resources text

* Run legacy tests with feature toggle off

* Add filters test without feature toggle

* Don't use as type assertions

* Add tests for recent resources

* Store resources for each query type

* i18n-extract

* Simplify type

* Minor performance improvement

* Rename variable for clarity

* Rename var

* Add placeholders

* Azure: Resource picker tests (#110175)

* Minor simplifying refactor

* Add more tests

* Update E2E
2025-09-02 11:02:01 +01:00
dependabot[bot]
b56b7add01 Chore(deps): Bump google-github-actions/setup-gcloud from 2.1.4 to 3.0.1 (#110372)
Bump google-github-actions/setup-gcloud from 2.1.4 to 3.0.1

Bumps [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) from 2.1.4 to 3.0.1.
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](77e7a554d4...aa5489c893)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 11:34:54 +02:00
Victor Marin
05380088d5 DataSourceApi: More specific naming for getFiltersApplicability (#110407)
* rename getFiltersApplicability

* typecheck

* typecheck
2025-09-02 11:32:24 +03:00
Matheus Macabu
1e926a29c0 Secrets: Extract external facing decrypt types to apps (#110432) 2025-09-02 10:30:29 +02:00
Alex Khomenko
c1c51beee4 Provisioning: Update branch selection (#110389) 2025-09-02 11:27:33 +03:00
Bergbok
13594b2b2e Docs: fix broken link in Jaeger plugin README (#110145)
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2025-09-02 08:12:16 +00:00
Roberto Jiménez Sánchez
4eadc823a9 Provisioning: Move repository package to provisioning app (#110228)
* Move repository package to apps

* Move operators to grafana/grafana

* Go mod tidy

* Own package by git sync team for now

* Merged

* Do not use settings in local extra

* Remove dependency on webhook extra

* Hack to work around issue with secure contracts

* Sync Go modules

* Revert "Move operators to grafana/grafana"

This reverts commit 9f19b30a2e.
2025-09-02 09:45:44 +02:00
Sergej-Vlasov
fb7b69e8b5 RowItemEditor: Add row title edit undo action (#110398)
* add undo/redo for row title change

* refactor with useRef
2025-09-02 10:09:16 +03:00
Alex Khomenko
ceec2340b3 Provisioning: Fix rule of hooks violations (#110414) 2025-09-02 08:07:11 +03:00
grafana-pr-automation[bot]
e94b61f964 I18n: Download translations from Crowdin (#110431)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-02 00:40:24 +00:00
wassaf shahzad
88886d39d0 Histogram: Fix Tooltip placement issue (#110368)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-09-01 16:48:44 -05:00
maicon
fccf58add7 Unistore: Only Shadow Search Traffic when running on modes > 0 (#110302)
* Unistore: Only Shadow Search Traffic when running on modes > 0

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-09-01 16:14:53 -03:00
antonio
2f769b0a62 add video to alerting tutorial (#110429) 2025-09-01 20:19:43 +02:00
Juan Cabanas
b47aece718 Save Queries: Remove entry points when user has Viewer role (#110244) 2025-09-01 14:18:02 -03:00
Irene Rodríguez
9244d5f058 Docs: Modify Go installation command for foundation SDK (#110415) 2025-09-01 15:38:54 +00:00
Andreas Christou
0dc283b303 Graphite: Add backend feature toggle (#110043)
Add feature toggle
2025-09-01 15:13:47 +00:00
Tobias Skarhed
dac6d04e24 Scopes: Arrow key selection support (#110155)
* Add basic arrow key navigation support

* Add shortcut for applying scopes

* Support expanding nodes with arrow keys

* Make useEffect non-conditional

* Add a11y and error boundary

* Fix preventDefault

* Add test for keyboardinteractions

* Add tests and expanded status to treeitem

* Reset highlight when disabled and change styles

* Fix tests

* Update i18n

* Remove unused var

* Reset enterprise imports from main

* Move failing test to correct quite

* Remove test outside fo context

* Remove unused import

* Use highlitghted ID instead of index

* Extract all highlighing functionality into its own hook

* Remove unused imports
2025-09-01 16:59:50 +02:00
Roberto Jiménez Sánchez
4de9ec7310 Provisioning: Fix import cycle between grafana and provisioning app (#110406)
* Move operators to grafana/grafana

* Go mod tidy
2025-09-01 13:29:34 +00:00
Dominik Prokop
7324087273 Dashboard migration: v14 Broken dash repro (#110405)
* Broken dash repro

* Fix V16 migration to preserve panels when rows array is empty

- Fixed bug where panels were deleted when migrating dashboards with empty rows array
- Updated v16.go to match frontend implementation behavior
- Added test case for empty rows scenario in v16_test.go
- Renamed test files to v16.empty-rows-and-panels-array.json for clarity
- All migration tests passing (419 test cases)
2025-09-01 13:02:59 +00:00
Alexa Vargas
af893344f2 Saved Queries: Fix Change DS during replace query did not update DataSourcePicker (#110299)
* Pass onUpdateDatasources from PanelDataQueriesTab to QueryEditorRows to keep ds up to date

* Add unit tests

* add type ds to make the test clearer
2025-09-01 14:53:07 +02:00
Tom Ratcliffe
66a99d0ae8 Folders: Create folder using app platform APIs (#110166) 2025-09-01 13:09:09 +01:00
Ashley Harrison
db924493f2 Revert "Dashboard: Add unit tests for keyboard shortcuts (#107065)" (#110404)
This reverts commit 789834d65b.
2025-09-01 12:52:45 +01:00
Sven Grossmann
04ccd1e6bd ExtensionSidebar: Allow Assistant to be shown in compact mode (#110400) 2025-09-01 13:08:34 +02:00
Laura Fernández
0b7cb8c17c FS: Modify nginx.conf so Goto is managed by backend (#110402) 2025-09-01 13:02:17 +02:00
Peter Štibraný
4475e2ad19 getClientToDistributeRequest: remove logging of selected client, fix logging of error (#110403) 2025-09-01 10:57:25 +00:00
Bogdan Matei
c4f6e3c710 Dashboard: Only show Conditional Rendering on Custom Grid when FF is enabled (#110390) 2025-09-01 13:14:58 +03:00
Sven Grossmann
b6d7374b25 ExtensionSidebar: Remove feature flag and enable by default (#109906)
* ExtensionSidebar: Remove feature flag and enable by default

* ExtensionSidebar: Remove `isEnabled`

* ExtensionSidebar: Lint

* ExtensionSidebar: Lint

* ExtensionSidebar: Remove more FF

* i dont know why, but okay
2025-09-01 12:14:17 +02:00
Levente Balogh
d31e682345 Plugins: Expose core APIs only for certain plugins (#107967)
* feat(plugins): add a way to expose core apis only to certain plugins

* review: update naming

* review: update the owners of the feature toggle

* feat: share the restricted apis with extensions

* fix: linters

* feat: remove the `addPanel` api

* chore: fix linting and betterer issue

* tests: use `@ts-expect-error` for more clarity
2025-09-01 11:57:00 +02:00
Peter Štibraný
da43e2ae07 Don't use transaction in ListModifiedSince. (#110392)
* Don't use transaction in ListModifiedSince.

To guarantee that we don't include events with RV > LatestRV, we include the check in SQL query instead.

* Fix integration test by converting SQL comments into template comments.
2025-09-01 11:39:02 +02:00
Konrad Lalik
31114fb47c Alerting: Add Triage feature toggle (#110326)
* Add state history config to frontend config object

* Add alertingTriage feature toggle

* Add Triage menu entry

* Add old state history config props for backward compatibility
2025-09-01 11:33:33 +02:00
xavi
f09f77ced4 fix(docs): Fix broken link in Entra ID SAML docs (#110367) 2025-09-01 11:29:00 +02:00
Gabriel MABILLE
885812f694 AuthZ: Recover from an outdated cached folder tree (#110293) 2025-09-01 11:16:01 +02:00
Todd Treece
9416abc146 Storage: Set default list limit to 500 (#110356) 2025-09-01 11:09:40 +02:00
Aritra Dey
789834d65b Dashboard: Add unit tests for keyboard shortcuts (#107065)
* Dashboard: Add unit tests for keyboard shortcuts in editor and viewer modes

Fixes #89940

Signed-off-by: Aritra Dey <adey01027@gmail.com>

* fix: lint check

Signed-off-by: Aritra Dey <adey01027@gmail.com>

* fix(scenes): correct keyboard shortcut tests and panel id logic

Signed-off-by: Aritra Dey <adey01027@gmail.com>

* fix: prettier lint check

Signed-off-by: Aritra Dey <adey01027@gmail.com>

---------

Signed-off-by: Aritra Dey <adey01027@gmail.com>
2025-09-01 11:52:39 +03:00
Peter Štibraný
238f121e10 LastModifiedSince: return latestRV even when it hasn't changed. (#110391)
Return latestRV.
2025-09-01 08:45:40 +00:00
Sergej-Vlasov
a0280d701b TabsLayout: Add left margin to nested tab (#109052)
add margin if tabs layout is inside tab item
2025-09-01 08:01:57 +00:00
Stephanie Hingtgen
232d68fb8c Controllers: Make available as a target (#110357)
* Controllers: Add to build process
* Allow setting through env variables
2025-08-30 12:27:50 +02:00
Prajwal Awate
0d782bdedb Fix: Update return type for getActionsDefaultField to Field. (#110347) 2025-08-29 20:49:35 -05:00
grafana-pr-automation[bot]
ea296f79b2 I18n: Download translations from Crowdin (#110364)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-30 00:39:25 +00:00
Dominik Prokop
398ed84a60 Dashboard migration: Add missing metrics registration (#110178) 2025-08-29 18:37:39 -06:00
Paul Marbach
b22f15ad16 Table: Max row height for variable height rows (#109639)
* Table: Max height for wrapped content

* Docs: tableNG max cell height (#110069)

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>

* change to Max row height instead of Max cell height

* fix unit test

* table utils codeowners

* Update packages/grafana-ui/src/components/Table/TableNG/utils.ts

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>

* update docs

* fix docs

* Revert "fix unit test"

This reverts commit c46b0f1bec.

* fix unit test

* trade one important for another

* Tweaked wording

* hover overflow for max row height

* get rid of commented out section

* and we did it without important

* centralize overflow for max height assessment

* some alignment stuff was busted

* didn't end up using the max heigh arg for shouldTextOverflow

* make i18n path more consistent

* put some tooltip things back since they ultimately didnt change

* we can simplify the :not selector

* delete comment

* don't bother with :not

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-29 15:10:17 -04:00
Matias Chomicki
e47e579bee LogLine: add min-height to fields wrapper (#110353) 2025-08-29 18:34:44 +00:00
Matias Chomicki
e30931c219 Log Line: Add custom highlight renderer (#110335)
* LogLine: implement custom highlight renderer

* Log line: fully replace highlighted body with highlight tokens

* processing: update test

* Add unit test

* Add deeply nested JSON test

* processing: update clone function

* Scroll to log line: find by uid

* LogLineDetailsLog: check if the log contains ansi

* Prettier
2025-08-29 20:33:21 +02:00
Ezequiel Victorero
d63e1ce04d Cleanup: Restore 10 minute default value for background process (#110355) 2025-08-29 17:56:45 +00:00
Leon Sorokin
262c267e59 Trend: Add bar width assertion guard for single data point (#110351) 2025-08-29 15:55:29 +00:00
Will Assis
18bc69f5c6 unified-storage: Bleve test cleanup (#110240)
* consolidate index build tests

* shut up logging in test
2025-08-29 15:35:31 +00:00
Josh Hunt
2d33fead9d NewsPanel: Ensure unique HTML IDs for titles (#110344) 2025-08-29 16:34:15 +01:00
Ashley Harrison
57db26a9bf Frontend service: Fix geomap assets not loading (#110146)
* attempting to "fix" geomap

* copy gazetteer/maps folders into dockerfile for frontend service

* add TODO comments

* remove unused import

* conditionally use public cdn path

* fix unit tests

* try refactor e2e test for better stability

* Revert "try refactor e2e test for better stability"

This reverts commit d966d68e15.

* safer

* use grafana_public_path
2025-08-29 16:29:57 +01:00
Tom Ratcliffe
c9f815088a Folders: Remove conditional hook calling in new folders hooks (#110305) 2025-08-29 16:17:33 +01:00
Alyssa Joyner
125b56b8f5 [InfluxDB] Detect product from URL (#110137) 2025-08-29 09:13:26 -06:00
Gilles De Mey
a71664c114 Alerting: Add route matching functionality to package (#108982) 2025-08-29 14:52:27 +00:00
Alex Khomenko
48ad2fe46b Provisioning: Add branch dropdown to save drawer (#110270)
* Provisioning: Add branch dropdown to save modals

* Allow custom value

* Fix

* Refactor branch selection

* SHow configured branch first

* Update validation error

* Update tests

* Move workflow toggle into onChange

* Clear errors on switch

* Fix tests

* Comments
2025-08-29 17:47:24 +03:00
Leon Sorokin
de1cc4c1a7 Trend: Fix x-axis max affected by null-append to bar series (#110322) 2025-08-29 09:47:14 -05:00
Yunwen Zheng
6952461362 FolderPicker: Allow customizing root item display (#110319)
FolderPicker: Allow customize root item display item
2025-08-29 10:43:48 -04:00
Alikamran Rzayev
be3fa041a5 Dashboards: Conserve timestamp on time range copy-paste across timezones (#109769)
* fix(timepicker): preserve UTC timestamp on copy-paste across timezones

* test: add UTC copy/paste timezone conversion test

* Update packages/grafana-ui/src/components/DateTimePickers/TimeRangePicker/TimeRangeContent.test.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove duplicate mockClipboard clear

* Extract utility functions for formatting and converting time ranges

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-29 16:03:34 +02:00
Levente Balogh
a746f6e121 Dashboards: Make it possible to render variables under a drop-down (#109225)
* feat: extend the variable models

* test(DropDownVariableControls): add tests

* refactor(VariableControls): filter in the render method
2025-08-29 12:56:26 +00:00
Nathan Vērzemnieks
72eeefabd7 Revert: DataSource: Support config CRUD from apiservers (#106996) (#110342)
Revert "DataSource: Support config CRUD from apiservers (#106996)"

This reverts commit eda94a6434.
2025-08-29 14:49:57 +02:00
Peter Štibraný
3a3ba483b1 unified-storage: Skip query when ListModifiedSince cannot return anything. (#110338)
* Skip query when ListModifiedSince cannot return anything.

* Only save listRV if it's different than sinceRV. This saves a disk access if not needed.

* Add test for ListModifiedSince with same RV.
2025-08-29 14:49:20 +02:00
Aleksandar Petrov
e3f5a65372 Pyroscope: Process and display sampling annotations (#109707)
* pyroscope: process sampling annotations

* Enable annotations in classic explore

* Run prettier

* Revert unneeded change to plugin.json

* Tweak wording in sampling annotation

* Fix test

* Disable annotations by default
2025-08-29 13:14:22 +02:00
Piotr Jamróz
a2e0a7391b Explore: Remove Drilldowns banner (#110329)
* Explore: Remove Drilldowns banner

Removing banner added in https://github.com/grafana/grafana/pull/100409. It's been 6 months since it was added and we can remove it now.

* Update translations file
2025-08-29 12:53:06 +02:00
antonio
3479a17e2c Update CONTRIBUTING.md (Fa1thw patch 4) (#110331)
Update CONTRIBUTING.md

added in champions program

Co-authored-by: fa1thw <122316391+fa1thw@users.noreply.github.com>
2025-08-29 12:37:09 +02:00
Laura Fernández
65d5265f86 Chore: Move Deprecated layout components rule from Betterer to ESlint (#110279) 2025-08-29 12:33:14 +02:00
Ihor Yeromin
97f1ed0b88 Tooltip Filter: Add test for Filter for value (#110308)
chore(adhoc-filter): add tests
2025-08-29 09:56:22 +00:00
Roberto Jiménez Sánchez
fd9d41fe4f Provisining: Fix flake in Github URL tests (#110333)
Remove unnecessary repository deletion in provisioning integration tests
2025-08-29 09:48:52 +00:00
Matheus Macabu
e5d91fd461 Extensions: Declare tempo as being used by Enterprise (#110327) 2025-08-29 11:13:44 +02:00
Sergej-Vlasov
02fd8981a0 DashboardGridItem: Adjust panel count logic (#110212)
* adjust dashboard grid item panel count logic

* update packages
2025-08-29 08:41:46 +00:00
Ashley Harrison
c3151c7e9d Chore: Publish frontend metrics from github actions (#110271)
* remove build size from ci scripts, test adding a github action step

* generate pa11y results file

* setup node

* don't need grabpl

* get key from vault

* doublequote env var

* write node script for publishing

* update CODEOWNERS

* add some logging

* yarn install...

* tidy up

* only on main branch
2025-08-29 09:24:22 +01:00
Ashley Harrison
de8930b92a Chore: Define components outside of the scene class (#110180)
define components outside of the scene class
2025-08-29 09:05:46 +01:00
Zoltán Bedi
9edfe7bc0b Pyroscope: Add start and end date to profiletypes call (#110277) 2025-08-29 10:05:33 +02:00
Oscar Kilhed
533513039e Dashboards: Fix kiosk mode not persisting through refresh (#110284)
Kiosk needs to be rendered as kiosk=true in url
2025-08-29 08:41:33 +02:00
Kristina
c1edba6d8f Trend: Add support for a logarithmic x axis (#101433)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-29 00:02:49 -05:00
Haris Rozajac
c62ba51d68 Kubernetes Dashboards: Delete resourceVersion (on update and create) and name (on create) (#110318)
delete resourceVersion when creating and updating, and delete name whe creating
2025-08-28 21:52:14 -05:00
grafana-pr-automation[bot]
ddf242de86 I18n: Download translations from Crowdin (#110321)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-29 00:44:56 +00:00
Jeff Levin
06d3555d30 Update the version of bench used for FE perf tests. (#110317)
Update bench from v0.6.0 to v0.6.1
2025-08-28 20:44:12 +00:00
Ezequiel Victorero
4b43877324 ShortURL: Use the k8s API in the cleanup process (#109938) 2025-08-28 17:40:45 -03:00
Ryan McKinley
eda94a6434 DataSource: Support config CRUD from apiservers (#106996) 2025-08-28 22:28:26 +03:00
Yuri Tseretyan
15fab1cb99 Alerting: Update integration schema to support versions (#109969)
* add VersionedNotifierPlugin and method that converts NotifierPlugin to it

* return new schema if query parameter version=2

* add version to k8s model of integration

* fix open api snapshot

* add version to IntegrationConfig

* use current version on conversion

* create versioned integrations for test
2025-08-28 14:46:30 -04:00
Matias Chomicki
3a2483a73a Inline log details: adjust height on resize (#110310) 2025-08-28 20:24:47 +02:00
Moustafa Baiou
c73b3ccf6e Alerting: Fix copying of recording rule fields
Recording rule fields were not being copied correctly when duplicating an alert rule. This manifests as missing `TargetDataSourceUID` fields from the `Record` part of the rule when rules in a group are re-ordered.

Added some additional tests to ensure we cover the generation of recording rules in tests and fixed the copying logic to ensure all fields are copied correctly.
2025-08-28 14:07:00 -04:00
Mihai Turdean
d0412d9a0d Simplify local development config for iam-app-operator (#110164) 2025-08-28 11:38:47 -06:00
Ryan McKinley
43648d20c3 Preferences: Add read-only APIServer for preferences and dashboard stars (#106109) 2025-08-28 19:51:32 +03:00
Matias Chomicki
05c52936a8 New Log Details: Fix multiple displayed links and correlactions (#110296)
* LogLineDetailsFields: fix multiple link rows

* LogLineDetails: check all links to render link block
2025-08-28 18:47:11 +02:00
Adela Almasan
748010bb0b Canvas: Add option to disable tooltips for one-click elements (#109937) 2025-08-28 16:33:58 +00:00
Vardan Torosyan
90ccc8fc5a Docs: Add a reference to Terraform SCIM resource (#110290)
* Docs: Add a reference to Terraform SCIM resource

* Refactor troublshooting page

* Refactor troublshooting page
2025-08-28 18:33:14 +02:00
renovate[bot]
8458436b61 Update scenes to v6.32.0 (#110301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 16:08:05 +00:00
Mustafa Sencer Özcan
1c840406b8 fix: improve rest client on integration tests (#110289) 2025-08-28 18:04:12 +02:00
Ezequiel Victorero
acc7f39e2e Saved Queries: Use new queries API (#110185) 2025-08-28 12:44:35 -03:00
Luminessa Starlight
9cf561f338 Accessibility: Constrain popups to screen height (#110241)
* limit ButtonSelect dropdown height to screen height and scroll the overflow

* limit color picker size to screen height and scroll if constrained
2025-08-28 11:43:38 -04:00
Peter Štibraný
ad571b50e9 Create context with deadline inside goroutine. (#110297) 2025-08-28 15:33:34 +00:00
Laura Fernández
b92f007894 Chore: Improve Playwright documentation (#110022) 2025-08-28 17:16:19 +02:00
Peter Štibraný
7a8010be0c search-after-write: improve observability (#110288)
* Improve tracing and observability around updating of index during search.
2025-08-28 16:02:47 +02:00
Tania
f76ef1ca87 Add url configuration to openfeature settings (#110258)
It looks like it's not possible to override with env variables those settings that does not exist in config.ini.
2025-08-28 15:28:03 +02:00
Jack Baldry
17f6b31e8c Fix link to site which is no longer relevant (#110214)
Fix link to abandoned web page

Wikipedia isn't likely to get hijacked in the same way.
2025-08-28 14:19:38 +01:00
Collin Fingar
537fe42418 Saved Queries: Entry point removal in Alerting (#110189)
* Saved queries: Remove query editor row buttons in Alerts

* Naming tweaks in test file
2025-08-28 09:09:54 -04:00
Nathan Vērzemnieks
bd5459fcf0 Plugins: Record plugin version in request metrics (#110210)
Plugins: record plugin version in request metrics
2025-08-28 15:05:39 +02:00
Sonia Aguilar
58e649a956 Alerting: Move alerting file to an alerting folder (#110257)
* move alerting.ts to alerting folder

* fix CODEOWNERS

* update betterer

* prettier 

* lint

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-08-28 12:11:19 +00:00
Yannick Alexander
7b78971455 TraceGraph: Add Crisp Edges Rendering (#108016)
added crisp edge image rendering for span graphs

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2025-08-28 13:46:38 +02:00
Lauren
2e02596350 Alerting: disable error alerts in Filter V2 (#110269)
disable error notifications
2025-08-28 12:43:44 +01:00
Josh Hunt
abc1033b11 FS: Add prometheus metrics to dev stack (#109952)
* FS: Add prometheus metrics to dev stack

* remove comments
2025-08-28 11:02:09 +00:00
Misi
a5c05ba9c1 IAM: Moving code to the /pkg/apps/iam folder (#109985)
* wip

* Gen GetTeams with app sdk

* Revert some changes, cleanup

* Format iam_manifest.go

* Remove generated file

* Regenerate openapi defs

* Cleanup

* Remove TODO
2025-08-28 12:32:15 +02:00
Gabriel MABILLE
0284c3f1f9 grafana-iam: change resourcepermission to use a single verb (#110263)
* `grafana-iam`: change resource permission to only allow a single action set for now

* api changes
2025-08-28 11:25:38 +02:00
Josh Hunt
87fe2f4258 Chore: Fix no-restricted-imports config not applying correctly (#110232)
* fix types

* get useSelector from the correct place

* use declare module instead
2025-08-28 10:19:36 +01:00
Matheus Macabu
9b24e7eac8 Extensions: Declare tempo as being used by Enterprise (#110261) 2025-08-28 11:17:05 +02:00
Sven Grossmann
c3a159ec65 Logs: Rename Assistant button to Explain log line (#110266)
Logs: Rename to `Explain log line`
2025-08-28 09:10:02 +00:00
Matheus Macabu
7106ef640d OpenAPI: Regenerate files (#110262) 2025-08-28 10:41:45 +02:00
Sonia Aguilar
98bd10965b Alerting: Add feature toggle and extension point (#110141)
* Add feature toggle and extension point

* Update ff name for enrichment per rule

* update translations

* rename to addRuleFormEnrichmentSection

* pr feedback

* prettier

* update translations

* revert wrong change in tsconfig
2025-08-28 10:30:28 +02:00
Alex Bikfalvi
4d55358fd2 docs: Add Grafana-managed recording rules documentation for Tempo (#110097)
Creates comprehensive guide for configuring recording rules with TraceQL metrics queries,
including Tempo-specific considerations for time ranges, evaluation delays, and examples.

Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
Co-authored-by: Kim Nylander <kim.nylander@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-08-28 10:22:56 +02:00
Hugo Häggmark
fe88f2366a Variables: shows warning when user tries to save erroneous variables (#110154)
* Variables: shows warning when saving variables with errors

* chore: updates after PR feedback

* chore: removes changes in non-scenes parts
2025-08-28 08:04:48 +02:00
grafana-pr-automation[bot]
bded48b4f3 I18n: Download translations from Crowdin (#110254)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-28 00:40:18 +00:00
maicon
12382d7f20 unistore/apistore: improve package docs (#110242)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-08-27 19:00:05 -03:00
Thomas Casteleyn
7768e507da docs(openapi): Cleanup tag usage and minor fixes (#105546)
* docs(openapi): Cleanup tag usage and minor fixes

* Add missing change

* More fixes

* make swagger-gen

* Remove unused documentation

* Update pkg/services/publicdashboards/api/query.go

Co-authored-by: Artur Wierzbicki <artur@arturwierzbicki.com>

* Run make swagger-gen

* Run make openapi3-gen

---------

Co-authored-by: Artur Wierzbicki <artur@arturwierzbicki.com>
2025-08-28 01:51:04 +04:00
Paul Marbach
76b1e5e389 Table: Migrate to field-level wrapText toggle, use standard hideFrom.viz for hidden fields (#109297)
* Added wrap text to table options and removed from multiple cell options

* Removed wrap text from cell options shared file

* Edited

* Edited

* Table: Migrate to field-level wrapText toggle

* migrate hidden -> hideFrom.viz as well

* more cleanup from rebase

* restore options that got killed in the rebase

* when wrap text is enabled for the whole table, exclude columns that do not make sense

* fix TableNG unit tests

* fix i18n

* unit tests for the migrations

* sort out e2e issue

* fix migration unit test

* fix backend migration test as well

* add a dashboard for the v12.2 table migrations

* update dev-dashboards.lisonnet

* make gen-jsonnet

* one of the panel versions didnt get updated

---------

Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-08-27 16:37:02 -04:00
owensmallwood
699bffc9e4 Unified Storage: Dont need to test casing with ordering (#110245)
Dont need to test casing with ordering.
2025-08-27 14:06:43 -06:00
jcolladokuri
541e378891 Prometheus: QueryEditor fix error when switching from code to builder for undefined aggregation operations (#110179)
* convert stddev to function instead of aggregation

* adds missing stdvar, limitK and limit_ratio agg functions

* add tests
2025-08-27 12:04:13 -07:00
Kristian Bremberg
be4dc6fdb6 BackendSrv: remove ampersand in validatePath (#109725)
remove ampersand from fetch URL split

Co-authored-by: Isaiah Grigsby <isaiah.grigsby@grafana.com>
2025-08-27 18:30:06 +00:00
Roberto Jiménez Sánchez
93a35fc7be Provisioning: Move apifmt, loki and safepath to provisioning app (#110226)
* Move apifmt

* Move safepath

* Move Loki package

* Regenerate Loki mock

* Missing file for Loki
2025-08-27 13:26:48 -05:00
Matias Chomicki
e78f6b6b37 New Logs Panel: Extend line wrapping to control JSON formatting (#110224)
* LogListControls: add third state to line wrapping

* LogListContext: decouple wrapLogMessage and prettifyJSON from state object

* Processing: reformat JSON according to prettifyJSON

* LogListControls: update class names and colors

* onLogOptionsChangeType: update type signature

* Update type

* Update tests

* Dont translate the plus sign

* Comments
2025-08-27 17:34:14 +00:00
maicon
cfe73925cd Add index IDX_folder_org_id_parent_uid_uid (#110131)
* Add index IDX_folder_org_id_parent_uid

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Force index on Dashboard Permission Filter (MYSQL)

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-08-27 14:29:11 -03:00
Kyle Brandt
dd4ffc9918 SQL Expressions: Add setting to limit length of query (#110165)
sql_expression_query_length_limit

Set the maximum length of a SQL query that can be used in a SQL expression. Default is 10000 characters. A setting of 0 means no limit.
2025-08-27 12:08:25 -04:00
Alex Khomenko
74cfe7b803 Provisioning: Add branch selection in Onboarding Wizard and Config page (#110217)
* Provisioning: Add branch selection component with fetching logic

* Simplify api call

* Use fetch

* Simplify branch logic

* Remove branch selector

* Add repo fetching

* Restructure

* Add missing files

* Ad branch selection to config form

* Cleanup

* Remove isDfault

* useAsync

* useAsync for branch loading

* Remove repo fetching

* Refactor

* Allow custom value

* Add pagination

* dedupe

* useBranchOptions

* format

* Remove types

* comments

* Fix test

* Add translations
2025-08-27 18:47:37 +03:00
Will Assis
7921c7da23 unified-storage: reuse index if RV is set even if it is outdated (#110184)
* unified-storage: reuse index if RV is set even if it is outdated and searchAfterWrite FF is enabled
2025-08-27 11:10:54 -04:00
Lauren
edd59d634e Alerting: Display Error Message in Alert History View (#110123)
* add error message to alert history view

* fix lint and typing

* resolve design comments- add show/hide button

* resolve design comments- make error box grey

* run yarn i18n-extract

* separate PR

* resolve PR comments

* fix lint

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-08-27 15:13:52 +01:00
Matias Chomicki
a25116dbd5 New Log Panel: Extend clickable area (#110156)
* LogLine: make the entire line clickable

* New Logs Panel: Extend log line clickable area
2025-08-27 15:37:28 +02:00
Jacob Valdez
5cde7a3a16 Docs: Moving some guides around (#109941)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-08-27 08:35:36 -05:00
Kevin Minehart
aa458d4aea Docs: Deprecate grafana/grafana-oss docker repo in favor of grafana/grafana (#110065)
* deprecate grafana/grafana-oss docker repo

* fix typo

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>

* Update docs/sources/setup-grafana/configure-docker.md

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>

* Update docs/sources/setup-grafana/installation/docker/index.md

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>

* Apply suggestions from code review

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>

---------

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-08-27 08:34:59 -05:00
ismail simsek
5fe58431d4 Chore: Remove prometheusCodeModeMetricNamesSearch feature toggle (#109024)
* remove feature toggle prometheusCodeModeMetricNamesSearch

* remove code that relies on prometheusCodeModeMetricNamesSearch feature toggle

* remove code that related to prometheusCodeModeMetricNamesSearch feature toggle

* remove commented code lines

* remove commented code line

* Put codeModeMetricNamesSuggestionLimit selector back

* remove redundant unit test
2025-08-27 15:11:58 +02:00
Gabriel MABILLE
b6226c6173 grafana-iam: Skeleton of the resource permission api backend (#110218)
* Extract from #108753

Co-Authored-By: mohammad-hamid <mohammad.hamid@grafana.com>

* Tackle create

Co-Authored-By: mohammad-hamid <mohammad.hamid@grafana.com>

* WIP use identity store to resolve role names

* Commit empty service for now

* Clean

* For now only show name and created at

---------

Co-authored-by: mohammad-hamid <mohammad.hamid@grafana.com>
2025-08-27 15:00:09 +02:00
Victor Marin
a0075ffdd6 DataSourceAPI: Modify getFiltersApplicability param type (#110147)
* modify getFiltersApplicability param type

* modify getFiltersApplicability param type
2025-08-27 12:23:29 +00:00
Josh Hunt
67b22177a8 Accessibility: Ensure dashboard edit panel inputs have accessible labels (again) (#110163)
* Revert "Revert: "Accessibility: Ensure dashboard edit panel inputs have accessible labels" (#109984)"

This reverts commit 7331a2e8c3.

* revert test change that accidentally catches the issue

* use useId in some places

* make ID required

* fix some ids

* fix a couple more

* add ids to variables

Co-authored-by: Ashley Harrison <ashharrison90@gmail.com>

* add ids to get viz options

* add ids in getPanelFrameOptions

* add getFieldOverrideElements

* change name

* Replace other uuids with hard coded ids

* hoist useId out

* use some new selectors for table e2es

* commit betterer crimes

* use useId where we can

* Revert "use useId where we can"

This reverts commit 34090ac75d.

* fix some dashboard layouts tests

* rm AutoCellOptionsEditor

* idk try and fix tests

* restore fixed its for url state

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Ashley Harrison <ashharrison90@gmail.com>
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-08-27 13:10:47 +01:00
Matheus Macabu
85c567609d Secrets: Add result label for decryption errors (#110213) 2025-08-27 14:09:43 +02:00
Victor Marin
86c7f96fcb TextBoxVariable: Fix change detection for query prop (#109895)
* fix textbox variable model save on change

* better test name

* betterer

* fix test

* fix test
2025-08-27 10:59:07 +00:00
Stijn Van Hoey
f31560534a Emails: Fix template brackets in passwordless_verify_ templates (#107108) 2025-08-27 12:47:02 +02:00
Costa Alexoglou
9785e573aa Provisioning: Fix Dashboard Creation For First-Level Repository Folders (#109962) 2025-08-27 12:20:57 +02:00
Matheus Macabu
fa831577f1 Dependencies: Bump github.com/go-viper/mapstructure/v2 to 2.4.0 (#110201) 2025-08-27 11:28:10 +02:00
Oscar Kilhed
be80f36248 Mixed datasource: Use getDefaultQuery from the datasource when creating new queries when using the mixed datasource (#110158)
* get default query when creating a new query in mixed ds

* fix typo

* fix any in test
2025-08-27 11:24:23 +02:00
grafana-pr-automation[bot]
f124fbc38f I18n: Download translations from Crowdin (#110194)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-27 08:29:48 +00:00
Matheus Macabu
616311508d Secrets: Refactor cue schema with new version of App SDK (#110199) 2025-08-27 10:16:17 +02:00
Ryan McKinley
88cd7df18d Provisioning: Show alert when token is missing (#110088) 2025-08-27 05:34:27 +00:00
Kevin Minehart
b83ca0712b Add dockerfile test to github actions (#110191)
* Add dockerfile test to github actions

* fix github action

* Update CODEOWNERS
2025-08-26 19:15:36 -05:00
Paul Marbach
ec38e0bd58 Table: Enable tableNextGen by default (#109832)
* Table: Enable tableNextGen by default

* kill off tableNextGen feature flag

* i18n

* i18n

* i18n

* remove state beta from table panel

* fix migration for 0 decimals migration

* add explicit auto option bacjk

* match impl from previous migrations code

* try changing some selectors

* remove timezone test from Cypress

* fix PlaylistForm unit test

* fix some selectors

* clean up i18n, are these gridcells somehow?

* return a couple of selectors caught in the dragnet to being cell instead of gridcell

* fix i18n for en-US

* clean up gdevs now that wrapHeaderText has no default

* update role in e2e for when it is re-enabled
2025-08-26 17:25:16 -04:00
Isabel Matwawana
1c13f4a0f2 Docs: Change height unit from kg to inches (#110188) 2025-08-26 20:20:27 +00:00
Collin Fingar
eb6b49ca62 Saved Queries: Rename entrypoint for dashboards (#110186) 2025-08-26 16:14:07 -04:00
Jacob Valdez
41f7774ccf Docs: Fixing broken links in data sources (#110068)
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2025-08-26 14:22:05 -05:00
maicon
99fc606e17 Add permission role_id action index (#110125)
* Add permission role_id action index

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Drop permission role_id index

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-08-26 16:12:13 -03:00
owensmallwood
b4ed217656 Unified Storage: Removes check for name ordering and adds test (#110183)
removes check for name ordering. Adds test to assert expected name and rv ordering.
2025-08-26 12:39:30 -06:00
Matias Chomicki
740945511d New Logs Panel: More analytics (#110149)
* LogLineDetailsDisplayedFields: report fields reorganization

* LogLineDetailsTrace: analytics

* Prettier

* Rename interactions key
2025-08-26 17:46:01 +00:00
Hugo Kiyodi Oshiro
578e07fd0e Plugins: Fix typo in connections homepage card (#109793) 2025-08-26 14:43:46 -03:00
Mustafa Sencer Özcan
3056924d10 fix: enforce timeout for requests run in qos (#110162) 2025-08-26 18:40:22 +02:00
Alexander Akhmetov
5e1f79ca83 Alerting: Fix alert rule comparison with the same missing_evals_to_resolve (#110174) 2025-08-26 18:20:50 +02:00
Yuri Tseretyan
c5667476a7 Alerting: Update ticker to accept logger in the constructor (#110176)
* add logger to ticker
* move ticker to schedule
2025-08-26 12:17:48 -04:00
Kristina
1c587a983f Correlations: Add better handling to correlation type and update documentation (#109922)
* Add better type handling when correlation is created from provisioning and fix documentation

* add external example

* change error when deprecated key is used
2025-08-26 10:14:05 -05:00
Matheus Macabu
fc739de01d Dependencies(js): Update sha.js to 2.4.12 (#110153) 2025-08-26 16:42:48 +02:00
Mihai Turdean
3eebe43c6d Slight refactor of Zanzana GRPC Client to use it in the IAM Folder Operator (#110120) 2025-08-26 08:34:15 -06:00
Matheus Macabu
60f31342c0 Secrets: Remove proxy certs (#110140) 2025-08-26 16:24:26 +02:00
Kim Nylander
2cba22c092 [DOC] Tempo DS: Clone a provisioned data source doc (#110114)
* Tempo DS: Clone a provisioned data source doc

* Chagnes from prettier

* Update docs/sources/datasources/tempo/configure-tempo-data-source.md
2025-08-26 14:14:41 +00:00
Matheus Macabu
78ac555c4d CI: Run gofmt on Linting action (#110159)
* CI: Run gofmt on Linting action

* Chore: Run gofmt on all packages
2025-08-26 16:14:03 +02:00
Andres Martinez Gotor
d34338be02 Advisor: Avoid pagination when listing checks (#110161) 2025-08-26 16:03:34 +02:00
Kyle Brandt
58c8fdad7a SSE/QuerySvc: (Chore) Remove expression parser code and feature toggle (#110117) 2025-08-26 13:21:24 +00:00
Steffen Baarsgaard
b047175330 Auth: Support JWT configs tls_client_ca and jwk_set_bearer_token_file (#109095)
* Auth.jwt: Support config tls_client_ca

* Auth.jwt: Support config jwk_set_bearer_token_file

* Docs: Document new JWKS url options and mention tls_skip_verify_insecure

* Docs: Fix note on JWKS response caching

* chore: Refactor getBearerToken into standalone function

* docs: Apply wording/formatting suggestions

Co-authored-by: Victor Cinaglia <victorcinaglia@gmail.com>

* chore: Simplify ca helper function using testcerts

Co-authored-by: Victor Cinaglia <victorcinaglia@gmail.com>

* chore: Update doc and add comment preventing potential erroneous optimization

Co-authored-by: Victor Cinaglia <victorcinaglia@gmail.com>

chore: Reword comment prevent an erroneous refactor

* docs: Update casing

Co-authored-by: Victor Cinaglia <victorcinaglia@gmail.com>

---------

Co-authored-by: Victor Cinaglia <victorcinaglia@gmail.com>
2025-08-26 09:50:06 -03:00
Andres Martinez Gotor
145577831b Chore: fix betterer issues (#110100) 2025-08-26 14:45:27 +02:00
Moustafa Baiou
5724fae778 Alerting: Add Extended List Query for Alert Rules w/pagination (#109360)
* Alerting: Add Extended List Query for Alert Rules w/pagination

This adds an extended query which allows filtering by the kind of rule (Recording or Alerting) and supports pagination.

Pagination tokens will allow us to list all rules paginated, regardless of the rule group.

---------

Co-authored-by: William Wernert <william.wernert@grafana.com>
2025-08-26 08:20:47 -04:00
Ivan Ortega Alba
a7e4447d0e DashboardMigration: V16 was removing panels when repeatInteration is null (#110151) 2025-08-26 14:20:22 +02:00
Matheus Macabu
6e3ded8432 Preferences: Add module to Go workspace (#110148) 2025-08-26 13:30:15 +02:00
Will Assis
ac641e07fe unified-storage: increase sprinkles default limit from 100 to 10000 (#110135)
increase sprinkles default limit from 100 to 10000
2025-08-26 10:59:15 +02:00
Peter Štibraný
067b6e20a2 Fix name of the summary, remove _total suffix (#110143) 2025-08-26 08:48:05 +00:00
Andres Martinez Gotor
07b208ac43 Advisor: Fixes for retry item logic (#109918) 2025-08-26 10:44:47 +02:00
grafana-pr-automation[bot]
f144f74995 I18n: Download translations from Crowdin (#110138)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-26 08:41:06 +00:00
Roberto Jiménez Sánchez
e196f13b2b Provisioning: Introduce Repository Factory with extras (#110018) 2025-08-26 10:37:47 +02:00
Konrad Lalik
6a050ff551 Alerting: Fix permission checks for the Import to GMA (#109950)
Fix permission checks for the Import rules buttons and import to GMA page
2025-08-26 08:39:36 +02:00
Hugo Häggmark
6b67b394fd Chore: fixes React hook betterer for EditDataSource.test.tsx (#110104) 2025-08-26 06:56:51 +02:00
owensmallwood
bacb5c576c Unified Storage: Fix yield statement (#110134)
fix yield
2025-08-25 20:06:24 -06:00
Kristina
e87652060c Transformations: Handle special case with nested dataframes/JSON (#109876)
* Fix crashes

* Remove inline snapshot
2025-08-25 19:14:04 -05:00
Ezequiel Victorero
649e9aa8ca SavedQueries: Create feature flag (#109944) 2025-08-25 18:22:09 -03:00
Alex Spencer
c658b702f6 Transformations: Organize by fields betterer fix (#110127)
fix: betterer
2025-08-25 13:02:05 -07:00
Paul Marbach
67502a5a7c Table: Color text, color background, and apply to row can co-mingle (#109939)
* Table: Color text, color background, and apply to row can co-mingle

* fix test

* lean on existing memoization and utils more

* just make that method a prop of TableCellRenderer

* add prop to tooltip stuff as well

* fix another test

* update TableNG with apply to row mixed color cell table

* simplify color overrides table

* special case: apply to row transparent bg

* add unit test

* delete erroneous import

* update for readability
2025-08-25 19:47:11 +00:00
Brendan O'Handley
4d2decfa0c Tempo: automatic native histogram check for service graph (#108394)
* add new dataquery field for identifying which histogram type

* run make gen-cue to update tempo dataquery

* add native histogram check function & look for dataquery flag

* remove console log

* check for native histograms in queryfield

* only run query when histograms have not been migrated yet

* use less resource intensive query, just check if series are there

* fix type issue

* use series as better for detecting existence of a metric, fix betterer things

* fix type

* fix import

* remove metric name from func

* use datasrource func and don't make a new one

* remove string for boolean check in service graph functions

* fix bug for switching tempo data sources

* handle race condition for unmounting before async call is completed

* fix imports

* add todo to implement getNativeHistograms in Prometheus data source

* add todo to remove automatic check once tempo fully migrates to native histograms

* add todo to remove the native histogram config option
2025-08-25 19:43:22 +00:00
Dominik Prokop
a806f2db99 Update scenes to v6.30.4 canary and document profile isolation (#110112)
* Update scenes to v6.30.4 canary and document profile isolation

- Bump @grafana/scenes and @grafana/scenes-react to 6.30.4--canary.1225
- Document SceneRenderProfiler overlapping profile handling

* Update scenes
2025-08-25 20:53:50 +02:00
Matias Chomicki
2af5edbebe New Log Details: fix attribute extension links (#110119)
* New Log Details: fix attribute extension links

* LogLineDetailsFields: do not render empty divs
2025-08-25 13:32:48 -05:00
Stephanie Hingtgen
ad30905969 Feature toggles: Cleanup generated file (#110124)
cleanup generated file
2025-08-25 18:28:42 +00:00
Stephanie Hingtgen
581a34834e Data source: Modify docs to mention uids cannot be updated (#110121) 2025-08-25 12:51:24 -05:00
Ryan McKinley
99f640fbab Provisioning: Always fetch token (#110116) 2025-08-25 18:57:27 +02:00
Matias Chomicki
4eeb6c3ed8 Logs Panel: fix conditionally called React hooks (#110113)
* Logs Panel: fix conditionally called React hooks

* Update betterer
2025-08-25 17:50:49 +02:00
Kyle Brandt
4f0cb47d3c SQL Expressions: Rework backend errors and error instrumentation (#109633)
* Capture error_type label on metrics/traces
* Make error messages more helpful to user
* Use errutil, categorized errors, and tie them to error_type (category in code)
* Misc trace fixes
* Add metric to track SQL input conversion
2025-08-25 11:13:42 -04:00
linoman
539b413584 SAML catalog: Add metrics for saml catalog logins (#109904)
* Add samlCatalog metric

* Add samlCatalog metric to stats

* Define hook for successful SamlCatalog metrics

* Register new hook

* Add tests

* Rework the collected stats and split it into versions
2025-08-25 16:21:10 +02:00
Matias Chomicki
9646a06a91 Log Details: Show embedded trace if available (#109926)
* LogLineDetails: get link details from href

* links: create module

* LogList: pass time zone and time range to Details

* LogLineDetailsTrace: create component

* InlineLogDetails: pass time range and time zone

* LogLineDetailsTrace: show loading and error messages

* Update tests

* LogLineDetailsTrace: update message styles

* Prettier

* Add test

* LogLineDetails: add embedded metric test

* Prettier

* LogLineDetailsTrace: use unique request id

* LogLineDetailsTrace: reset state when props change

* Chore: rename

* Chore: rename

* links: add integration test

* Prettier
2025-08-25 14:06:01 +00:00
Andrej Ocenas
dcea3315fa Folders: Migrate bulk delete actions (#109525)
* Split delete items call and use new API

* add test

* Add translation

* Remove unnecessary array spread

* move check provisioned into util function

* wip conflict fix

* Undo file rename

* Remove unneeded handler for now

* Fix delete invalidating getFolder calls

* Don't call hooks conditionally

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-08-25 13:55:46 +02:00
Zoltán Bedi
1e0587001d PostgreSQL: PGX default to time series format when no format is specified in queries (#110028)
* PostgreSQL: PGX default to table format when no format is specified in queries

* Change to default to time series
2025-08-25 13:31:57 +02:00
schoen2
bd06c062b7 Dashboard: Fix AngularJS deprecation in grafana-overview dashboard (#106462)
Co-authored-by: Hannes Schön <hannes.schoen@diva-e.com>
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2025-08-25 12:55:02 +02:00
Ryan McKinley
27c92a6644 Dashboards: Make conversion data optional (#109965) 2025-08-25 13:47:42 +03:00
Torkel Ödegaard
da5209be1e Dashboards: Add support for full screen panel view and embedded (solo panel) route to repeated panels and new layouts (via new SoloPanelContex) (#107375)
* SoloPanelContext: First steps

* working in default grid

* Fixes

* Update

* SoloPanelPage

* Fixing search layout

* Fixes

* Fixes

* Update

* remove comments

* Solving panel not found

* Fix

* fix lint

* fix lint
2025-08-25 12:23:11 +02:00
Ryan McKinley
7434a9d725 Provisioning: Save temporary repository with sync.target=folder (#110094) 2025-08-25 13:14:12 +03:00
ismail simsek
35b7341638 Chore: Update project urls for zipkin, jaeger, tempo and parca (#110095)
Update project urls for zipkin, jaeger, tempo and parca
2025-08-25 09:57:54 +00:00
Stephanie Hingtgen
1091054c25 Unistore: Wire up inline secure values (#110072)
* Unistore: Wire up inline secure values

* add validation and test

* linter
2025-08-25 02:48:49 -06:00
Roberto Jiménez Sánchez
e7ccefcf92 Provisioning: Add Standalone Job Controller Without Job Processing (#109610)
* Add standalone job controller
* Add makefile
* Add limit on the current implementation
* Move job controllers to app package
* Add TLS flags
2025-08-25 08:48:40 +00:00
Victor Marin
9204a08207 Scopes: Fix zod schema for scope spec (#109348)
* fix zod schema for scope spec

* keep only title and filters required
2025-08-25 08:35:05 +00:00
Peter Štibraný
4c996a8a7f search: Guarantee search-after-write consistency (#109972) 2025-08-25 10:13:07 +02:00
Roberto Jiménez Sánchez
9a668ce06f Provisioning: Use API Client For Job Processing (#110044) 2025-08-25 09:46:20 +02:00
grafana-pr-automation[bot]
1c14780335 I18n: Download translations from Crowdin (#110080)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-24 00:41:24 +00:00
Hasith De Alwis
9fb5790166 Trend/TimeSeries: Add "Show values" option (#108090)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-23 12:33:45 +00:00
Kevin Minehart
67a6866c7b CI: Skip expensive tests suites on push in forks and mirrors (#110074)
Skip expensive tests suites on push in forks and mirrors
2025-08-23 02:44:51 +00:00
grafana-pr-automation[bot]
ded6ba49f3 I18n: Download translations from Crowdin (#110076)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-23 00:40:48 +00:00
Kevin Minehart
488caa12ec CI: Avoid running on 'push' in mirrors / forks (#110063)
* CI: Avoid running on 'push' in mirrors / forks

* use single quotes
2025-08-22 18:35:52 -05:00
Sarah Zinger
d51e6a16bc DS-Querier: support group queries (#109879) 2025-08-22 14:59:30 -04:00
Sarah Zinger
333a21f19d DS-Querier: Fix data source not found (#110064) 2025-08-22 14:59:07 -04:00
Sarah Zinger
a38c113227 Create option to read ini file without validating frontend files (#109990) 2025-08-22 18:28:40 +00:00
Isabel Matwawana
021726dfe2 Docs: Remove empty admonition and add a new step (#110058) 2025-08-22 17:56:00 +00:00
Alyssa Joyner
1cb90cd3b2 [InfluxDB]: Design quick wins (#109680) 2025-08-22 11:05:45 -06:00
Ryan McKinley
ce65391067 Provisioning: Use inline secrets for gitsync (#109908)
Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-08-22 18:38:28 +02:00
Kevin Minehart
04f392d37b CI: Push docker images to dockerhub on merges to main (#110056) 2025-08-22 15:30:11 +00:00
Jev Forsberg
3cd03c5932 Chore: Fix example of major release (#110007)
baldm0mma/ fix example of major release
2025-08-22 09:08:04 -06:00
Kevin Minehart
2450f6d0de CI: update backport workflow with more conditions (#109541)
update backport workflow with more conditions
2025-08-22 15:03:38 +00:00
Miguel Palau
cbb54c517d Refactor: Remove unused extension links from DataSourceTestingStatus … (#110004) 2025-08-22 17:02:35 +02:00
Tom Ratcliffe
743bc1cfe2 Chore: Upgrade grafana eslint config and re-enable rule of hooks rules (#110029) 2025-08-22 15:38:02 +01:00
Isabel Matwawana
8d863260e4 Docs: Add degrees to rotation angle descriptions (#109995) 2025-08-22 10:11:13 -04:00
Isabel Matwawana
ce1ff46f4a Docs: Folder name character limitations (#109992) 2025-08-22 10:10:54 -04:00
Yunwen Zheng
e5a7d3f104 NestedFolderPicker: Add rootFolderUID prop (#109991)
* NestedFolderPicker: add rootFolderUID prop
2025-08-22 13:37:39 +00:00
Tom Ratcliffe
ff7408b541 Chore: Update betterer issue template and add script for creating issues (#110036) 2025-08-22 12:36:05 +00:00
Yaelle Chaudy
bf8979a7bf Dynamic Dashboards: Added dynamic dashboard feature toggle info as prop to dashboards events (#110024)
* Added dynamic dashboard feature toggle info as prop to dashboards events

* splitting out sharing interactions from dashboards one and fixing tests
2025-08-22 14:28:27 +02:00
Tom Ratcliffe
85f1f0d227 Chore: Skip CodeQL depending on changed files (#109959) 2025-08-22 13:13:28 +01:00
lean.dev
21fc58f632 SecretsManager: fix span name for SetVersion operations (#110035)
SecretsManager: fix span name for SetVersion operations
2025-08-22 12:01:41 +00:00
Matheus Macabu
d2ec846224 Chore: Remove Bingo as Drone is removed (#110020) 2025-08-22 13:49:44 +02:00
Roberto Jiménez Sánchez
ed13225b71 Provisioning: Refactor History Writer to Use API Client (#110031)
* Separate interfaces for writing and reading in job history

* Register the 2 writers

* Commit unsaved file

* Do not validate or mutate history jobs

* Change the TODOs
2025-08-22 13:41:00 +02:00
Ryan McKinley
c67a6d820c Provisioning: Remove cue generated go types (for now) (#110030) 2025-08-22 11:26:11 +00:00
Alexander Akhmetov
5d3be370e0 Alerting: Fix provisioning API returning 500 for validation errors in notification settings (#110006) 2025-08-22 13:16:06 +02:00
Alexander Akhmetov
b4ff398865 Alerting: Fix folder permissions for Editor role in Prometheus import (#109977)
Alerting: Fix folder permisisons for Editor role in Prometheus import
2025-08-22 13:15:53 +02:00
Matheus Macabu
33ca5f166f Secrets: Remove feature toggle check in dependency register (#110026) 2025-08-22 13:14:18 +02:00
Alex Khomenko
3e79ccabe9 Provisioning: Add option to keep resources when deleting repository (#109955)
* Provisioning: Add option to keep deleted repository resources

* Use existing repository

* Update confirm modal

* Update text
2025-08-22 13:20:03 +03:00
Santiago
6976ac4caa Alerting: Fix bad field used in LogContext (#110023) 2025-08-22 10:13:02 +00:00
Alexandra Valentine-Ketchum
76a20ff66b Fix typo in docs for grafana.ini security configuration options (#108848)
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
2025-08-22 09:08:24 +00:00
Anna Urbiztondo
f82da0430e Docs: Plugins - more edits (#109777)
* Some more touches

* More edits

* WIP

* LBAC

* Improve header, Prettier
2025-08-22 10:00:07 +02:00
Alex Bikfalvi
fe2d9ce16a feat(Tempo): Syntax and autocompletion for compare and with (#108824)
Support syntax highlighting and autocompletion for:

* `compare(...)` TraceQL metrics function
* `with(...)` query hint

Partially fixes: https://github.com/grafana/grafana/issues/103764

Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
2025-08-22 09:42:28 +02:00
Hugo Häggmark
6822bea9ed Plugins: updates plugin schema description for language prop (#110013) 2025-08-22 09:24:54 +02:00
Konrad Lalik
27c845828b Alerting: Improve API error payload handling (#109956)
* Handle error.data being set to null

* Tidy up code
2025-08-22 08:39:25 +02:00
grafana-pr-automation[bot]
ca19dc44db I18n: Download translations from Crowdin (#110009)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 00:39:56 +00:00
Dominik Prokop
86aa5dca11 Migration v14: Shared crosshair to graph tooltip migration (#109606)
* migrate to v19

* migrate to v18

* Migration to be verified: v17 Convert minSpan to maxPerRow in panels

* Migration to be verified: 16 Grid layout migration

* Refactor v17 and v19 migrations to use shared helper functions

* Migration to be verified: 15 No-op migration for schema consistency

* Migration to be verified: 14 Shared crosshair to graph tooltip migration

* cleanup

---------

Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2025-08-21 16:44:14 -06:00
Paul Marbach
61c160b30f Table: Fields and Column Widths arrays can get out-of-sync on length (#109997)
* Table: Fields and Column Widths arrays can get out-of-sync on length

* slight cleanup for e2e

* remove a couple of page desctructures
2025-08-21 20:49:53 +00:00
Jev Forsberg
a180601968 Chore: Clarify version update content (#109987)
* baldm0mma/ clarify update content

* baldm0mma/ scan and update rest of doc

* baldm0mma/ run prettier

* baldm0mma/ rerun yarn run prettier:write

* Update docs/sources/upgrade-guide/when-to-upgrade/index.md

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>

---------

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-08-21 13:59:27 -06:00
Luminessa Starlight
7331a2e8c3 Revert: "Accessibility: Ensure dashboard edit panel inputs have accessible labels" (#109984)
* Revert "Accessibility: Ensure dashboard edit panel inputs have accessible labels (#109546)"

This reverts commit 4d067059c9.

* kick CI
2025-08-21 15:23:23 -04:00
Paul Marbach
e91c12db64 Table: Prevent re-created functions and arrays (#109929)
* Table: Button up re-created functions and arrays

* use the single styles object

* restore automatically adjusted line

* restore automatically adjusted line

* update computeColWidths to create a string to help compare col widths

* use compareArrayVals for widths comparisons

* satisfy linter

* whoops, had this backwards

* clean up case with frozen columns

* remove dep

* avoid unnecessary change to computeColWidths
2025-08-21 15:22:30 -04:00
alerting-team[bot]
54f741f7a5 Alerting: Update alerting module to 10915888e4f099586ad37bea5f4a70f45101d2f5 (#109989)
[create-pull-request] automated change

Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com>
2025-08-21 18:50:40 +00:00
Adam Simpson
c522979e09 query service: add ruleuid to error log (#109986)
* query service: add ruleuid to error log

* little fix

---------

Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
2025-08-21 18:17:22 +00:00
Paul Marbach
65317ffcbd Table: fix use row height after lines-to-pxs update (#109943) 2025-08-21 14:02:06 -04:00
Leon Sorokin
c4460dc568 Transformations: Fix XYChart legend toggle with Organize -> Partition (#109771) 2025-08-21 17:56:27 +00:00
Adela Almasan
25c13c55c0 Canvas: Dynamic connection direction (#108423) 2025-08-21 12:49:42 -05:00
Tom Ratcliffe
e49230d3eb Folders: Fix create button disable on submit & duplication logic (#109696) 2025-08-21 17:40:50 +01:00
Yunwen Zheng
6d538f62c8 Provisioning components organize (#109741)
* Provisioning components organize
2025-08-21 12:17:43 -04:00
Lauren
56c8e53a99 Alerting: Improved filters part 2 (#109738)
* refactor: split out form component into separate functions

* add storybook variation for infoOption in dropdown

* add tracking to search input for v2 view, tidy up tracking functions

* add tests for filter tracking

* refactor: boy-scouting V1 filter

* move FiltersV2 to rule-list directory

* fix lint issue

* resolve PR comments round 1

* resolve PR comments round 2- update file locations

* generate apis

* fix tests

* fix lint issue

* fix imports
2025-08-21 16:04:00 +00:00
Tom Ratcliffe
82d36a259e Folders: Refactor Browse/Dashboards list tests (#109421) 2025-08-21 15:46:12 +01:00
Matheus Macabu
91748fe115 Auditing: Document new options for recording datasource query request/response body (#109951) 2025-08-21 16:05:13 +02:00
Paul Marbach
2ab5df43e0 Table: Add unit tests for MaybeWrapWithLink (#109932) 2025-08-21 16:00:18 +02:00
Matias Chomicki
01d48e26fe New Logs Context: Add time window option (#109901)
* LogLineDetails: add open and close events

* LogLineContext: add interval picker

* Log Context: allow to customize the time window around the log

* Loki: support custom time window

* LogLineContext: implement variable time window

* Remove console

* LogLineContext: store and format options

* LogLineContext: replace radio with combobox

* LogLineContext: run time window on the first request

* InfiniteScroll: use loading to prevent fake events

* Chore: update old comment

* Minor reorg

* Clean up unnecessary styles

* LogLineContext: fix overflow and scroll

* LogList: fix loading prop

* Update comment

* Translations

* Update public/app/features/logs/components/panel/LogLineContext.tsx

* LogLineContext: move default to constant

* LogLineContext: add test

* Prettier

* New Logs Context: Generic DS support for time window option (#109934)

* chore: add supportsAdjustableWindow to logs context interface

* Build

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2025-08-21 13:50:05 +00:00
Alexander Zobnin
2b254ed623 Zanzana: Add server side metrics (#109923)
* Zanzana: Add metrics to server side

* Zanzana: Collect check duration

* add metrics for other methods
2025-08-21 15:20:07 +02:00
Matheus Macabu
88507add9d Secrets: Fix OpenAPI definition for create resource (#109960) 2025-08-21 14:50:52 +02:00
Tom Ratcliffe
5c542478a7 Folders: Update folder hook tests to use mock server handlers (#109341) 2025-08-21 12:58:49 +01:00
Alexa Vargas
806872bfce Grafana UI: Tabs - add missing style for disabled tabs (#109907)
* Grafana UI: Tabs - add disabled style

* apply PR feedback
2025-08-21 13:50:22 +02:00
Misi
aade015d96 IAM: Change required permission in the app (#109894)
* Update required permissions

* Align tests
2025-08-21 11:33:56 +00:00
Hugo Häggmark
17438dcb6d Plugins: adds languages to the plugin schema (#109949) 2025-08-21 13:09:31 +02:00
Hugo Häggmark
bba89fdb42 i18n: fixes translations for plugins before v12.1.0 (#109948)
i18n: fixes translated plugins before 12.1.0
2025-08-21 13:06:50 +02:00
Tom Ratcliffe
429cb9d916 Chore: Update grafana eslint config version and fix rule violations (#109666) 2025-08-21 11:59:41 +01:00
Ryan McKinley
6f940f855e Chore: Remove public dashboard cue (#109940) 2025-08-21 13:58:36 +03:00
Anna Urbiztondo
66b146a9df Docs: Clarifying env var expansion (#109869)
* First thoughts

* Edits

* Prettier

* Update docs/sources/administration/provisioning/index.md

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>

* Style edits

* Update docs/sources/administration/provisioning/index.md

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>

* Prettier

---------

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2025-08-21 12:36:25 +02:00
Alexander Akhmetov
557a40497c Alerting: Add contact point filter to Active Notifications page (#109775) 2025-08-21 12:28:31 +02:00
Andreas Christou
8f1ba9acef MultiCombobox: Fix select all when only a single option is available (#109910)
* Fix condition

* Add tests
2025-08-21 11:19:33 +01:00
Kevin Adam
0262a23d7f feat(@grafana/assistant): bump assistant sdk (#109911)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2025-08-21 12:07:47 +02:00
Ryan McKinley
018e810d43 Provisioning: Remove clonedir (not used by nanogit) (#109954)
remove clone dir
2025-08-21 10:04:30 +00:00
Lauren
34655a47c5 Alerting: Set dataSourceName to GRAFANA_RULES_SOURCE_NAME when switch… (#109900)
Alerting: Set dataSourceName to GRAFANA_RULES_SOURCE_NAME when switching to Grafana‑managed
2025-08-21 09:35:50 +00:00
Andres Martinez Gotor
7f044a1e3c DatasourcePicker: Add favorite info in reported events (#109866) 2025-08-21 11:27:05 +02:00
Santiago
29aff8c387 Remote Alertmanager: Ignore tenant ID when merging remote state (#109928)
* Remote Alertmanager: Ignore tenant ID when merging remote state

* update tests
2025-08-21 09:00:37 +00:00
Roberto Jiménez Sánchez
61d137992b Provisioning: Mark repository as unhealthy if hooks fail (#109788) 2025-08-21 08:32:23 +00:00
Ashley Harrison
03d9ec4ea3 Frontend service: Fix favicon (#109914)
fix frontend service favicon
2025-08-21 09:27:27 +01:00
Alexa Vargas
f4f406cc64 Query Library: Rename "Query Library"to "Saved Queries" in Explore components (#109891)
* rename query library user interface text with "saved queries"

* add missing replacement on "Query history"

* fix unit test

* Fix test and apply PR feedback
2025-08-21 10:19:07 +02:00
grafana-pr-automation[bot]
f82586f654 I18n: Download translations from Crowdin (#109946)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-21 00:40:00 +00:00
Leon Sorokin
424e336ae1 TableNG: Memoize some components to improve rendering performance (#109763)
* try React.memo

* Table: Rework the renderers file and some types

* more test cleanups

* remove for gauge for now

* memoize all of the renderers

* also memoize the Tooltip component

* memoize the TableCellActions

* memo useStyles2

* update useStyles2 usage in TableNG

* remove console.log

* add a test for the AutoCell fallback rendering case for testField

* style nit - update variable name to be more idiomatic

---------

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-08-20 17:12:32 -04:00
Paul Marbach
950423903f Table: Refactor row height to work in pxs instead of lines (#109735)
* Table: Refactor row height to work in pxs instead of lines

* non-string pill value handling, internal cleanup on buildCellHeightMeasurers

* no need to round up to max line
2025-08-20 16:31:20 -04:00
Josh Hunt
fbca70747c E2E: Add performance monitoring E2E test (#109417)
* initial workflow

* add bench reporter

* add pr trigger

* update workflow

* actually add the test

* debug

.....

* more debug

* this it???

* Debugging GHA workflow

https

newline

tree

cache node modules

try bench again

fix path

* Add RequestsRecorder and tweak GHA workflow

* More debugging GHA workflow

cache

cache key

try renaming path

specify env var correctly

* Run tests on both envs, wait for requests to finish

fix status

cat stats

cat stats

* prefix metric names

* cleanup

* cleanup gha

* codeowners

* make gen-jsonnet

* quote things

* Add host_type label for categorising the various hosts

* rename pw_boot_time_seconds to pw_test_run_time_seconds

* change prefix

* codeowners, gha name

* remove node-modules caching

* fix codeowners
2025-08-20 19:36:54 +00:00
Kevin Minehart
7c2945bb54 Remove drone & dead code in pkg/build; update go modules (#109935)
* remove drone & dead code in pkg/build; update go modules

* remove .drone.star

* Remove drone scripts and drone references in Makefile

* make update-workspace

* remove deadcode tool

* Remove daggerbuild/scripts: deadcode

* Remove drone files / folders in CODEOWNERS

* make update-workspace

* remove more dead code
2025-08-20 14:27:58 -05:00
Adela Almasan
196506a484 Tooltip: Remove hideFrom.tooltip check for tooltip headers (#109925) 2025-08-20 19:24:50 +00:00
Dominik Prokop
af1b878cb7 Migration v15: No-op migration for schema consistency (#109604)
* migrate to v19

* migrate to v18

* Migration to be verified: v17 Convert minSpan to maxPerRow in panels

* Migration to be verified: 16 Grid layout migration

* Refactor v17 and v19 migrations to use shared helper functions

* Migration to be verified: 15 No-op migration for schema consistency

* Update v27.go

* Update v16.go

* cleanup

---------

Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2025-08-20 19:01:45 +00:00
owensmallwood
cace999671 Unified Storage: Add ListSinceModified to StorageBackend (#109697)
* WIP added ListSinceModified to StorageBackend interface

* fix compile time check

* Fix method name

* Fix naming

* fix the rest of the ListSinceModified names

* Uses resource key without name field

* get latest rv from resource_version. Update test.

* adds moar tests

* adds method stub for ListModifiedSince to other StorageBackend implementations

* adds dummy impl to noop storage backend for ListModifiedSince

* skip tests for badger kv backend for now

* fixes tests and adds badgerkv impl for ListModifiedSince

* add badger kv impl

* adds test for new query

* adds test data for new query

* adds ListModifiedSince stub to mockStorageBackend

* uncomment tests

* refactors ListModifiedSince to return an iter.seq2 and handles deduplication. Updates tests. Updates query result sorting.

* remove comments

* remove folder from query (dont need it, yet?)

* regen test queries

* updates test

* updates function comment

* use resourcepb.ResourceKey instead of ModifiedResourceKey

* wrap seq in single transaction. Rollback transaction after 30s if iterator never used. Only track last seen event. Formatting.

* skip TestListModifiedSince for kv backend

* use WatchEvent_Type for action type

* remove redundant fields from order by clause and regen test data for query

* remove redundant fields from order by clause and regen test data for query
2025-08-20 11:54:31 -06:00
Dominik Prokop
49739618fa Dashboard Migrations v16: Grid layout migration (#109603)
* Migration to be verified: v17 Convert minSpan to maxPerRow in panels

* Address review comments: use Go idiom for variable naming and sort.Ints for sorting

* Migration to be verified: 16 Grid layout migration

* Refactor v17 and v19 migrations to use shared helper functions

* Address reviews comments

---------

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-08-20 17:31:32 +00:00
Josh Hunt
95ea14cc72 FS: Replace frontend-service-up with command that auto shuts down (#109933) 2025-08-20 18:27:04 +01:00
KgOfHedgehogs
7fd5121c4f Transformations: Fix Partition by values transform missing refId (#106417)
* Fix partition by values missing refId

* have partitioned refID include original refID

---------

Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
2025-08-20 12:19:47 -05:00
Mihai Turdean
c8b0fd685b Implement a basic operator to reconcile the folder hierarchy from Unistore to Zanzana (#109705) 2025-08-20 17:14:06 +00:00
Ihor Yeromin
f7d39204cd Transformation: Add missing binary operator (#109695)
* fix(transformation): add binary operator
2025-08-20 17:13:36 +00:00
Yunwen Zheng
6085bbf820 DashboardPreviewBanner: isNewPr prop adjustment (#109885)
Bug fix where when saving changes to dashboard, DashboardPreviewBanner is rendering backward banner between loaded from new resource vs new resource created on remote.
2025-08-20 13:01:45 -04:00
Kevin Minehart
4adbab1571 CI: For community supported riscv64 builds use musl-cross instead of zig for… (#109931)
Community supported riscv64 builds: use musl-cross instead of zig for build
2025-08-20 16:59:07 +00:00
Paul Marbach
24a3a4c7dc Icon: Memoize rendered icons for situations where duplicate icons are rendered (#109883) 2025-08-20 16:52:34 +00:00
Kevin Yu
629cb1dee0 CloudWatch: Fix logs query requestId to prevent setting undefined-logs as a requestId (#109930) 2025-08-20 09:41:17 -07:00
Leon Sorokin
5bbb7c1e2a TableNG: Fix crash with malformed/invalid data links (#109920) 2025-08-20 16:33:52 +00:00
Yunwen Zheng
66dc5ea4fb Provision resource operation: refresh parent folder when resource operation is performed (#109555)
* refresh parent folder when resource is created or deleted

* bulk delete and bulk move job: after job success, refetch folders

* refresh parent on both branch and default workflow

* move after success logic into getRepositoryJobsWithPath
2025-08-20 12:27:41 -04:00
Yunwen Zheng
170c84c3f8 MoveProvisionedDashboard: bug fix when selecting root folder, error is showing (#109638)
* MoveProvisionedDashboard: root folder error fix

* Remove provisioned badge when whole instance is provisioned, root folder checkbox fix

* If root level only have one provisioned folder, allow select all on subitems

* remove button tooltip and remove comment

* regenerate API clients after schema updates

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-08-20 11:50:39 -04:00
Jacob Valdez
03bcd604fc docs: fixing typo in config docs (#109882) 2025-08-20 10:49:28 -05:00
Ashley Harrison
6386e8a734 Chore: Remove duplicated various-suite cypress tests (#109737)
* remove duplicated various-suite cypress tests and update CODEOWNERS for playwright versions

* assign missing CODEOWNERS
2025-08-20 16:48:26 +01:00
Ashley Harrison
c8d9b5b207 Chore: regenerate api clients (#109919)
regenerate apis
2025-08-20 14:43:45 +00:00
Ashley Harrison
af1b6dd171 Chore: Readd api client verification and update clients (#109847)
* add api client verification to lint step

* separate steps, clearer error messages

* make same change to non-enterprise version

* double-quote

* ignore conf

* update generated apis

* add names for steps

* fix comment
2025-08-20 13:54:51 +01:00
Haris Rozajac
5ec1b4198c Dashboard Schema V2: Handle a case when fieldConfig is undefined (#109881)
handle a case when fieldConfig is undefined
2025-08-20 14:35:56 +02:00
Hugo Häggmark
71fd156eda Plugins: adds plugin version to log output (#109845) 2025-08-20 13:18:59 +02:00
Alexander Akhmetov
38672c7936 Alerting: Set specific backend type in remote_writer_writes_total metric for grafanacloud-prom datasource (#109516) 2025-08-20 13:04:00 +02:00
renovate[bot]
91c23988ef Update scenes to v6.30.1 (#109899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 10:50:38 +00:00
Alexander Zobnin
ede33327d0 Devenv: Add tempo and pyroscope to the provisioned data sources (#109853) 2025-08-20 12:09:08 +02:00
Alex Khomenko
b4ded7847e Chore: Disable tui for Nx (#109896)
* Nx: Disabled tui

* fix
2025-08-20 10:08:03 +00:00
Alex Khomenko
4b59f76738 Provisioning: Fix rendering loop in FinishedJobStatus component (#109890)
Provisioning: Fix renderign loop in FinishedJobStatus component
2025-08-20 12:41:55 +03:00
Georges Chaudy
9a065e0c64 apiserver: enable support for Streaming lists (#109893)
enable watchlist
2025-08-20 11:09:55 +02:00
Ryan McKinley
fa81fae1e3 Provisioning: Add inline secure values to repository schema (#109594) 2025-08-20 09:05:41 +00:00
Roberto Jiménez Sánchez
c37a03263f Provisioning: Fix Bug Blocking Changing Pull Target During Onboarding (#109892)
* Fix bug changing target for unsynced repository

* Fix linting
2025-08-20 09:02:19 +00:00
Ashley Harrison
62fbeb35c1 Chore: Replace config.bootData.user with contextSrv (#109686)
* replace config.bootData.user with contextSrv

* fix unit tests

* fix mutating context object in test

* kick CI
2025-08-20 09:55:12 +01:00
Gábor Farkas
35ecb3330b apiserver: openapi: only log errors when an error happened (#109780) 2025-08-20 10:48:05 +02:00
Torkel Ödegaard
485831f0b2 Dashboards: Repeating with no clone keys (#109839)
* Dashboards: New pathId concept to find panels not based on scene object key

* Minor fix

* fix test

* Fix test

* adding unit tests for pathId functions

* fix

* Fix link sharing to use new path

* fix

* Update

* No clone keys

* Remove all the clone keys complexity

* More changes

* update e2e test

* Progress

* fix auto grid item

* Finally working cannot move panel into clone row

* adjust how we find vizpanel for keyboard shortcuts

* Update

* Fix shortcuts

* Fix test

* fixing tests

* fix lint

* fix tests

* fix e2e

* adjust how outliine children are collected for auto and custom grids

* update

* Upgrade scenes

---------

Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-08-20 10:21:18 +02:00
Alexa Vargas
f6404b9589 Query Library: Connect QueryLibraryEditingHeader in QueryEditorRow (#109818)
* Query Library: Connect QueryLibraryEditingHeader in QueryEditorRow

* Add unit test to queryn editor row

* Remove logic of "update query" save disk and add extra condition to prevent dragable action
2025-08-20 10:18:12 +02:00
grafana-pr-automation[bot]
af0c0cf0c0 I18n: Download translations from Crowdin (#109884)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-20 00:40:16 +00:00
Stephanie Hingtgen
77c96cbd06 Secrets: Refactor setting additional decrypter (#109877) 2025-08-19 16:10:43 -05:00
Isabel Matwawana
b51e175f0b Docs: TableNG - Tooltip from field docs (#109752) 2025-08-19 23:12:49 +03:00
Ezequiel Victorero
9fa988e9c3 ShortURL: Unskip integration test (#109874) 2025-08-19 15:41:23 -03:00
Brian Gann
5a67158734 Build: Adds option to build debug frontend docker images (#108202)
* Add env support for different build environment targets
* Add NX target for dev builds
* Add option to build in dev mode
* skip immutable flag for dev builds
2025-08-19 14:22:59 -04:00
Matias Chomicki
0113f12c7d New Logs Panel: Details and JSON adjustments (#109867)
* processing: detect json logs to apply custom grammar

* LogLineDetails: improve label column width

* wip

* Remove log

* grammar: remove unused grammar

* grammar: fix log grammar

* LogLineDetails: improve margins

* LogLineDetails: further fine tune width

* Update tests

* processing: more tests
2025-08-19 17:23:18 +00:00
Laura Fernández
247373ac41 Chore: Remove Deprecated layout components (#109872) 2025-08-19 18:43:01 +02:00
Jacob Valdez
0b69c94e8b Docs: removing release note pages for OSS IA reorg (#109829)
Co-authored-by: Robby Milo <robbymilo@fastmail.com>
2025-08-19 11:12:31 -05:00
Todd Treece
e6df473e5a App Installer: Merge builder and installer admission (#109854) 2025-08-19 11:58:03 -04:00
Andrej Ocenas
e159d25fdd Dashboard List: Fix how link query part is created when variables are included (#109861)
Fix how link query part is created
2025-08-19 17:43:15 +02:00
Santiago
a31323578f Remote Alertmanager: Move factory functions to the remote package (#108582)
* Remote Alertmanager: Move factory functions to the remote package

* remove createRemoteAlertmanager

* modify comment

* unexport functions to create remote secondary and primary forked AMs

* RemoteFactory -> NewRemoteFactory

* avoid passing a logger

* avoid panics if creating the internal AM fails

* remove lines

* rephrase comment

* fix source of sync interval
2025-08-19 15:34:58 +00:00
Jean-Philippe Quéméner
e157dbaa4f fix(folders): check for library panels on delete (legacy) (#109848) 2025-08-19 17:32:35 +02:00
Matheus Macabu
537ac8ec68 Secrets: Validate name/namespace with standard K8s validator (#109868)
* Secrets: Validate name/namespace with standard K8s validator

* Secrets: Simplify error message for mismatched owner inline secure values
2025-08-19 16:55:52 +02:00
Ezequiel Victorero
a3396e3549 Library Panels: Return valid panels (#109827) 2025-08-19 11:44:27 -03:00
Torkel Ödegaard
b0e9307d15 Dashboards: Fixing saving and viewing snapshots for repeated panels (#109856) 2025-08-19 16:42:15 +02:00
Matheus Macabu
d07fa65920 GHA: Switch some BE workflows to self-hosted runners (#109846)
* GHA: Use equivalent self-hosted runners for BE unit tests Enterprise

* GHA: Use standard runners for BE unit tests OSS

* GHA: Use equivalent self-hosted runner for ephemeral env action

* GHA: Use self-hosted runners and adjust shards for BE integration tests

* GHA: Upgrade BE integration test Postgres from 12 to 17

* GHA: Upgrade BE integration test MySQL from 8.0.32 to 8.0.43
2025-08-19 16:20:58 +02:00
Matt Cowley
350af57356 Navigation: Expose runtime hook for controlling mega menu (#109482)
* Navigation: Expose runtime hook for controlling mega menu

* Navigation: Allow changing menu open state without persisting
2025-08-19 15:10:38 +01:00
Kevin Minehart
9c7f7530f3 CI: Forward source-event from workflow_dispatch in release-build.yml (#109865) 2025-08-19 07:43:22 -06:00
Will Assis
34496e137c unified-storage: Search after write save rv to index (#109641)
* save rv to index after index is built
2025-08-19 09:41:35 -04:00
Yuri Tseretyan
a2cae07ac7 Alerting: Remove method ReceiverService.ListReceivers (#109828) 2025-08-19 09:12:23 -04:00
Torkel Ödegaard
9ea3c3a9a2 Dashboard: Fixes url links to embedded panels in scene based dashboards (#109837)
* Dashboard: Fixes url links to embedded panels in scene based dashboards

* fix
2025-08-19 15:07:09 +02:00
Alex Khomenko
2a617abd77 Api clients: Update provisioning, playlist clients and fix type errors (#109850)
* Update provisioning types

* Update playlist types

* Revert

* import

* lint
2025-08-19 13:01:38 +00:00
Matias Chomicki
525f444407 LogLine: pass collapsed state to memoized log body component (#109849)
* LogLine: pass collapsed state to memoized log body component

* Logline: add regression

* chore: remove unnecessary spy

* Prettier
2025-08-19 14:23:48 +02:00
Laura Fernández
b27af4186c Chore: Remove deprecated VerticalGroup in Dashboards area (#109675) 2025-08-19 15:07:21 +03:00
Laura Fernández
ee6a61490a Chore: Remove deprecated HorizontalGroup in Dashboards area (#109790) 2025-08-19 13:52:57 +02:00
Andres Martinez Gotor
f5b9d93610 Add favorite button to EditDatasource page (#109609) 2025-08-19 13:40:19 +02:00
Will Assis
06115478f9 fix: dashboard version history duplicating entries sometimes (#109490)
* fix: version history duplicating entries when navigation fails after restoring dashboard version

* fix navigation issue

---------

Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-08-19 07:03:24 -04:00
Gábor Farkas
2e5b55a855 datasources: querier: renamed the "mt" builder to "qs" builder (#109779) 2025-08-19 12:37:56 +02:00
Mariell Hoversholm
0fc29cbaae Rendering: Remove SVG sanitization (#109797) 2025-08-19 11:34:12 +02:00
Yulia Shanyrova
1a87679dc7 Plugins: Add apps to connections page to be consistent with cloud (#109600)
* Add apps to connections page

* fix the tests

* fix connections tests
2025-08-19 11:13:01 +02:00
Ashley Harrison
0687017595 E2E: Run playwright cloud plugins tests as part of github actions (#109055)
* add github workflow scaffolding

* update comments

* Add image and resource commands

* Add secrets paths

* Block workflow run for forks

* ignore via package.json, update CODEOWNERS

* fix workflow path

* remove old azure monitor test

* pull docker image first

* add permissions for docker pull step

* checkout first

* keep creds file

* try all in one job

* with creds...

* add cloud: 'azure'

* pass CLOUD to docker

* add -playwright

* actually use the env vars

* don't need to pass CLOUD env var

* remove commented out code and tidy up

* kick CI

* Update container names and set PLAYWRIGHT_CI

* Update path

* fix zizmor violation

* use bigger runner, add double quoting

* add separate command and increase timeout

* remove timeout

* parameterise the e2e command in CI

* move cloud-plugins-e2e-tests into normal e2e test workflow

* fix detect changes

* pass creds into dagger

* try remove quotes

* add a debug log

* exec playwright command after mounting file

* reassign e2eContainer, add change to check the tests fail correctly

* fix test

---------

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2025-08-19 09:25:16 +01:00
Alexander Akhmetov
1e6719f571 Alerting: Show converted alertmanager configurations in the UI (#109027) 2025-08-19 10:04:05 +02:00
Piotr Jamróz
bbf01a6383 Flame Graph: Analyze with Grafana Assistant (#108684)
* Bare-bones mocked integration

* Create correct context based on the query

* Add data source name

* Do not bundle grafana/assistant with flame graph

* Rename component

* Add tests

* Mock grafana/assistant

* Update feature toggle and allow hiding the button

* Update deps

* Update types

* Update yarn.lock

* Fix typo in feature toggle description

* Enable grafanaAssistantInProfilesDrilldown by default

* Enable grafanaAssistantInProfilesDrilldown by default

* Show Analyze Flame Graph button only if there's context for the assistant
2025-08-19 09:54:00 +02:00
Matheus Macabu
ea833ddf1f Unified/APIStore: Fix flaky tests on secure value support inline (#109806) 2025-08-19 09:49:44 +02:00
Alexander Akhmetov
bdd5bf0397 Alerting: Configurable queue and batch size in external alert manager notifier (#109831) 2025-08-19 09:32:10 +02:00
Konrad Lalik
dff7050aaa Alerting: Add GMA export to the new list page (#109784)
* Add GMA export to the More menu action on the list page

* Add Grafana rules export option to the new list page

* Update translations
2025-08-19 09:08:15 +02:00
Alex Khomenko
2f4166e456 CommandPalette: Use fuzzySearch util from grafana/data (#108884)
* CommandPalette: Use fuzzySearch util from grafana/data

* Comment
2025-08-19 08:22:05 +03:00
Hugo Häggmark
a54453b940 BackendSrv: incorporates validatePath in existing RxJs pipe (#107672)
* backendSrv: incorporates validatePath in existing RxJs pipe

* chore: updates after PR feedback
2025-08-19 07:07:49 +02:00
grafana-pr-automation[bot]
32d9126ac6 I18n: Download translations from Crowdin (#109834)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-19 00:40:27 +00:00
Paul Marbach
523758c9b3 Table: Get rid of ContextMenu on right click (#109825)
* Table: Get rid of ContextMenu on right click

* fix a scroll thing for expanded table, git rid of some conditional accessors

* remove context menu test

* remove context menu test

* i18n

* fix lint issue
2025-08-18 17:03:11 -04:00
Matias Chomicki
9a6b012ea4 New Logs Panel: Performance and display updates and fixes (#109672)
* LogLine: don't run overflow check with unwrapped logs

* InfiniteScroll: don't listen to scroll events without scroll

* InfiniteScroll: minimize use of element.scrollHeight

* LogLineDetails: constrain to 95vw

* LogList: process logs while streaming

* Remove unused prop

* InfiniteScroll: update test

* Update test

* Inline Log Details: read max width from context

* Remove console
2025-08-18 19:06:31 +00:00
Yuri Tseretyan
bb55972cef Alerting: Fix fromPrometheusConfig (#109807) 2025-08-18 13:44:33 -04:00
Tom Ratcliffe
d542f6bcda Chore: Skip more GHA jobs if backend files are not changed (#109803) 2025-08-18 17:42:02 +01:00
Sergej-Vlasov
8283ba94fe AutoGridItemRenderer: Hide repeats when dragging to fix select bug (#109798)
hide repeated panels when dragging
2025-08-18 16:12:00 +01:00
Marc Sanmiquel
9b800d63b1 Datasource/grafana-pyroscope: Add rate aggregation for cumulative profiles (#108546) 2025-08-18 17:08:34 +02:00
Peter Štibraný
c508b01cc5 chore: Close bleve indexes created in temp dir. (#109799)
* Close indexes created in temp dir.
2025-08-18 16:27:57 +02:00
Collin Fingar
828c2b6612 QueryLibrary: Added new way to trigger events w/ context (#109637) 2025-08-18 10:13:04 -04:00
Andres Torres
87e8c92aa4 chore(rbac): Register settings resources (#109742) 2025-08-18 10:12:33 -04:00
Paul Marbach
66eee1cb08 Table: Tooltip from Field (#109428)
* Table: Tooltip by Field

* add colorization support

* more progress on customizing the tooltip based on cell customization

* configurable as an option

* tooltip triggered from a chip in the corner, pinning tooltip

* i18n

* use enum where appropriate

* correctly orient the tooltip to the cell - but at what cost

* clean up some console.logs

* e2e test for the tooltip

* fix global click stuff

* remove console.log

* refine the style of the caret

* caret placement on same-side as alignment to avoid collision with inspect hover

* some updates from self-review

* increase hit target of tooltip caret

* fix width and height auto-sizing especially for dynamic height

* reorganize to pre-calc the per-field stuff

* use linear gradient for triangle

* update e2e to reflect current behavior, that clicking caret multiple times doesn't toggle pinning

* clean up event handlers a bit

* restore test for toggle click

* alright, re-remove the toggle case

* cursor pointer

* remove optional root from Popover for now

* remove this ridiculous autogenerated file

* update some of the text

* kill the cellRefMatrix

* remove unused import

* extract a util for the predicateByName part

* skip the intermediary step for getCellColors
2025-08-18 10:11:43 -04:00
Dominik Prokop
4e5a51968f Dashboard Migrations v17: Convert minSpan to maxPerRow in panels (#109592)
* Migration to be verified: v17 Convert minSpan to maxPerRow in panels

* Address review comments: use Go idiom for variable naming and sort.Ints for sorting
2025-08-18 08:02:37 -06:00
Yunwen Zheng
29a652db21 NewProvisionedFolderForm: allow empty space, uppercase and dash in folder name (#109615)
* NewProvisionedFolderForm: allow empty space, uppercase and dash in folder name

* validate folder name using form validation
2025-08-18 09:51:00 -04:00
Tom Ratcliffe
8a9e3ffd31 Folders: Remove OldFolderPicker component (#109791) 2025-08-18 13:48:18 +00:00
Moustafa Baiou
effc887b08 Alerting: Use db pagination for prometheus api
This reintroduces database pagination for the Prometheus API for rules.

Follow up for #109558 to use the new pagination format.

Note: This changes the sort-order to use `NamespaceUID` instead of the fully qualified Folder path. This also changes the cursor format to use the `NamespaceUID` instead of the Folder path and to be in a reverisble format.
2025-08-18 06:18:12 -07:00
Gábor Farkas
ed2dfd9885 datasources: querier: better error handling (#109789) 2025-08-18 14:44:50 +02:00
Matheus Macabu
10508d0614 Secret/Keepers: Return already exists error from DB when creating keeper (#109782) 2025-08-18 14:42:55 +02:00
Matias Chomicki
3857faf7b3 Logs Panel: use provided height for the container (#109786)
LogsPanel: use provided height for the container
2025-08-18 14:26:59 +02:00
Hugo Häggmark
6fb6cf4f1d Chore: defaults localizationForPlugins behavior (#109778)
* Chore: defaults localizationForPlugins behavior

* chore: fixes backend tests

* chore: fix backend tests

* chore: fix some more backend tests
2025-08-18 13:57:28 +02:00
Torkel Ödegaard
3dccd29f89 Repeating: Minor refactoring and unification for DashboardGridItem and AutoGridItem (#109723)
* Repeating: Refactoring and unification

* Update

* update

* fix e2e

* fixes

* Update

* adjust e2e test

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-08-18 12:02:45 +02:00
Laura Fernández
b7ff1b3ac8 Chore: Remove deprecated HorizontalGroup in plugins/panel (#109618) 2025-08-18 11:55:53 +02:00
Alexander Akhmetov
1a82bb4767 Alerting: Fix duplication of imported Prometheus alert rules (#109770) 2025-08-18 11:42:28 +02:00
Anna Urbiztondo
44be5d91c2 17884: Support feedback - CLI (#109776)
* Support feedback

* Prettier
2025-08-18 10:49:37 +02:00
Matias Chomicki
2695ed91d1 Logs: fix running condition causing LogList to not be rendered (#109768) 2025-08-16 14:47:37 +00:00
grafana-pr-automation[bot]
afa09154f7 I18n: Download translations from Crowdin (#109765)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-16 00:40:01 +00:00
Yuri Tseretyan
9ba1987478 Alerting: Update alertRuleVersions.EqualSpec to ignore RuleGroupIndex (#109740) 2025-08-16 00:19:27 +00:00
Drew Slobodnjak
0d3eec0e3b Geomap: Fix layer drag drop list (#109704) 2025-08-15 14:37:51 -07:00
Paul Marbach
6d97f05349 Modal: Use default Portal root element to render Modals (#109271)
* Table: Fix z-index conflict between DataLinksActionTooltip and ActionConfirmModal

* add an action to the kitchen sink Info column

* don't need the class for z-index

* fix this issue across a variety of viz types

* kill tooltip container in TableNG

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-15 16:38:57 -04:00
Isabel Matwawana
0eb79b3f53 Docs: Fix broken links (#109703) 2025-08-15 12:27:35 -04:00
Isabel Matwawana
23c8ee8fc1 Docs: Add config options alias (#109712) 2025-08-15 12:26:59 -04:00
Gábor Farkas
e1843bf1ae datasources: allow special http header to opt-in to new-mode query handling (#109349)
datasources: allow opt-in to new features using a http header

Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
2025-08-15 12:05:12 -04:00
maicon
5270d8e53f fix(unified-storage): remove permissions after executing on both stores (#109722)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: Jean-Philippe Quéméner <jeanphilippe.quemener@grafana.com>
2025-08-15 15:57:42 +00:00
Brendan O'Handley
79f4510260 Prometheus: Export interpolateQueryExpr for metrics drilldown links (#109713)
export interpolateQueryExpr for metrics drilldown links
2025-08-15 09:47:19 -05:00
Oscar Kilhed
44b7d941b4 Dynamic dashboards: Show disabled conditional rendering when not supported (#109663)
* Show disabled conditional rendering when not supported

* don't create unessecary sceneObjects

* fix i18n identifier strings

* Update i18n
2025-08-15 14:37:54 +00:00
Oscar Kilhed
8dd598942f Dashboards: Fix reporting of save dashboard interaction (#109701)
Fix reporting of save dashboard interaction
2025-08-15 14:24:30 +00:00
Luminessa Starlight
42e0afa5c1 Chore: Removed unused style definition (#109714)
removed unused style from #109602
2025-08-15 14:11:04 +01:00
Tom Ratcliffe
de04be4cfe Chore: Skip database integration tests when files are not changed (#103923) 2025-08-15 13:27:37 +01:00
Torkel Ödegaard
68208577d3 Dashboard: Inspect drawer can no longer be opened with url or linked to (#109617)
* Inspect: Remove url state support

* Fixes

* fix e2e

* fix lint

* fix lint

* fix test

* Update
2025-08-15 13:32:19 +02:00
Josh Hunt
8046a78f9f FS: Add tempo tracing to dev stack (#109682)
* add tempo

* trying to debug trace propagation

* add extra header

* change header to inject

* very debug logging

* set GF_TRACING_OPENTELEMETRY_OTLP_PROPAGATION

* clean up config

* undo temp debug logging
2025-08-15 10:59:43 +00:00
grafana-pr-automation[bot]
2f96801218 I18n: Download translations from Crowdin (#109715)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-15 10:54:06 +00:00
Sofia Papagiannaki
d4395aeec3 Chore: Use cli.Context instead of background context in RunServer function (#109553)
Use cli.Context instead of background context in RunServer function
2025-08-15 08:48:06 +00:00
Ryan McKinley
5007f362f3 Chore: fix flakey secure value test (#109724) 2025-08-15 07:58:50 +00:00
Roberto Jiménez Sánchez
1ff39510d3 Provisioning: Check For Resource Ownership Before Operations (#109582) 2025-08-15 10:05:53 +03:00
Paul Marbach
9a47dd2a7e Sparkline: Properly handle flat data (min === max) (#109702) 2025-08-14 21:38:54 +00:00
Jesse David Peterson
cc651e2e6e PieChart: Add panel options for ascending/descending sort, and no sorting (#109564)
* Add PieSortOption.

* Add sorting options to pie chart panel options.

* Fix that sorting is not part of the panel options.

* Implement custom sorting in piechart and piechart legend.

* Update piechart documentation

* Fix default and clockwise/counterclockwise confusion.

* refactor(piechart): use asc/desc terminology instead of clockwise

* fix(piechart): simplify comparator sort, avoid a/b swap mutation

* fix(pichart): remove redundant sorting from Pie component invocation

* refactor(piechart): hoist comparator for sorting display values

* docs(piechart): include recommendations from @imatwawanaimatwawana

* test(piechart): add test coverage for new sorting comparator

* chore(piechart): regenerate Cue schema files

* docs(piechart): apply suggestions from @imatwawana code review

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* fix(piechart): fix typo, match punctuation in option description

* chore(piechart): update schema to use existing `common.SortOrder` instead of custom

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>

---------

Co-authored-by: Lukas Wieg <lukaswieg@googlemail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-08-14 16:46:53 -04:00
Alexander Akhmetov
17444fdc0d Alerting: Add keepFiringFor and missing_series_evals_to_resolve to file provisioning (#109699) 2025-08-14 22:19:43 +02:00
Juan Cabanas
03811b26a0 QueryLibrary: Change context params (#109294) 2025-08-14 17:06:24 -03:00
Yunwen Zheng
a50e44c27a RepositoryResources: hide history button when repo type is pure git (#109628)
* RepositoryResources: hide history button when repo type is pure git

* hide history button from file page

* hide history button from file page and file history detail page
2025-08-14 19:32:57 +00:00
Yunwen Zheng
6305d6daed Provision Bulk Action: Add pull request button (#109622)
* Provision Bulk Action: pull request link
* Add view branch and compare branch button
2025-08-14 20:27:06 +02:00
Jev Forsberg
4954438cb5 Chore: Fix reusable workflow reference in release-comms (#109698)
Fix reusable workflow reference in release-comms

Use full repository path for create-security-branch workflow
to resolve linter errors about unable to find reusable workflow.
2025-08-14 12:18:56 -06:00
Luminessa Starlight
4d067059c9 Accessibility: Ensure dashboard edit panel inputs have accessible labels (#109546)
* update instantiations of OptionsPaneItemDescriptor to pass IDs - obvious changes

* update instantiations of OptionsPaneItemDescriptor to pass IDs - iffy changes

* update editors to pass ID through or note a missing label

* update playwright tests

* fix unit tests

* grafana ui components updated to pass ID through

* update components to pass ID through

* add missing input IDs

* better default ID handling

* remove TS note

* revert accidental non-html id change

* kick CI

* fix old-arch e2e tests

* change to plain useId calls

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-14 14:01:25 -04:00
Ashley Harrison
37b0a49027 Chore: Refactor avoid calling config.bootData.settings (#109683)
replace config.bootData.settings with just config.
2025-08-14 17:03:55 +01:00
Jacob Valdez
57761c7dc4 adding content from PR #109492 (#109684) 2025-08-14 10:59:55 -05:00
Moustafa Baiou
a4edc27044 Alerting: Add store level pagination of rules
This reintroduces store level pagination, without using it in the prometheus API yet.

Related to #108633

Co-authored-by: William Wernert <william.wernert@grafana.com>
2025-08-14 07:46:53 -07:00
Oscar Kilhed
26fbb553f3 Dynamic dashboards: Fix height of disabled margin option pane categories (#109664)
Fix height of disabled margin option pane categories
2025-08-14 14:33:11 +00:00
Bogdan Matei
e285cc2ddc Dashboard: Resume tracking changes after save from JSON model page (#109607) 2025-08-14 14:25:50 +00:00
Lauren
af68304af0 Alerting: Improve Alert Rules Filter (#109176)
* big WIP

* more WIP

* leftover changes after merge

* bug fix: prevent modal close onclick inside modal

* add logic to filter by data sources

* use MultiComboBox component instead of MultipleDataSourcePicker

* add namespace and evaluation group filtering logic

* remove header section of PopupCard

* set max width on popup

* add contact point field

* add contact point logic and tooltip

* add tracking to filter- track open, apply, clear and values submitted

* add plugins show/hide field

* add plugins show/hide field

* add tests for new filter

* test tracking works as expected

* check v2 filter only shows if feature toggle is on

* tidying up

* fix lint errors

* fix close-on-type bug

* use ContactPointSelector component

* fix close-on-click-outside issue

* Add label dropdown logic

* Add query string to search field

* add test to check filtering by search field updates the filter popup values

* clear search input onClear of filters

* fix lint issues

* add tooltips to search input and datasource fields

* Sort typing in ContactPointSelector

* update translation file

* Add logic to group and list view buttons & refactoring

* update failing test

* update test mocks

* fix failing tests

* fix typecheck errors

* resolve PR comments part 1

* update label dropdown to include info text

* Translation extraction

* resolving PR comments

* move autocomplete logic to reusable hook

* resolve PR comments

* fix typecheck

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Lauren Armstrong <laurenarmstrong@laurenskmacbook.home>
Co-authored-by: Lauren Armstrong <laurenarmstrong@mac.home>
Co-authored-by: Lauren Armstrong <laurenarmstrong@Laurens-Work-MacBook.local>
2025-08-14 15:21:03 +01:00
Will Assis
43cda1f1a4 unified-storage: disable watcher when search-after-write feature flag is enabled (#109634)
* disable indexer watcher when search-after-write feature flag is enabled
2025-08-14 10:18:09 -04:00
Gábor Farkas
8672275824 datasources: querier: report metrics related to the whole request (#109384)
* refactor

* add metric
2025-08-14 16:14:21 +02:00
Irene Rodríguez
52e6997f9e fix broken anchor (#109658) 2025-08-14 16:11:52 +02:00
Ryan McKinley
8fd8c6f476 SecureValues: Add explicit JSON schema (#109648) 2025-08-14 16:01:29 +03:00
Ashley Harrison
9125b9c014 Chore: Unpick bootData (#109544)
* set the boot data config correctly

* tighten up grafana/data types

* kick CI

* restore dashboard scopes props

* revert back to class

* add some comments

* kick CI

* add comment
2025-08-14 13:57:58 +01:00
Ryan McKinley
d3df5b8ddd Secrets: Manage secure values inside any resource (#107803) 2025-08-14 12:31:24 +00:00
Andres Martinez Gotor
d08ea58243 Filter data sources by favorite setting (#109593) 2025-08-14 13:39:09 +02:00
Zoltán Bedi
9453cedb51 Update self instrumentation to use alloy and bump versions (#109266)
* Update self instrumentation to use alloy and bump versions

* Update devenv/docker/blocks/self-instrumentation/config.alloy

Co-authored-by: Sam DeHaan <dehaansa@gmail.com>

* Add remote write receiver feature to Prometheus configuration in docker-compose.yaml

* Add example for plugin profiling to the doc

---------

Co-authored-by: Sam DeHaan <dehaansa@gmail.com>
2025-08-14 12:34:41 +02:00
Sriram
9b38ac1c24 Prometheus: Fix prometheus data source hints alignment issue (#109656)
fix prometheues ds hints alignment issue
2025-08-14 12:29:17 +02:00
Roberto Jiménez Sánchez
ffc7508a46 Provisioning: Enforce instance repository isolation (#109512)
* Fix validation on repository creation

* Fix linting

* Do not count the provided one

* Fix test

* Fix tests
2025-08-14 10:19:40 +00:00
Matheus Macabu
dfae5e5b4d Secrets: Add namespace matches checks to authorizer and secure value client (#109651)
* Decrypt: Add namespace matches to authorizer

* SecureValueClient: Add namespace matches when auth checking
2025-08-14 11:50:56 +02:00
Josh Hunt
a38a5e0301 Chore: Bump tmp with forced resolution (#109654) 2025-08-14 09:39:21 +00:00
Josh Hunt
751f25914f FS: Fix theme- class name not being set on body (#109631) 2025-08-14 10:32:01 +01:00
Gareth
7bebd62446 Tempo: small refactor to tempo backend (#109581)
* update datasource info struct name

* remove unnecessary abstraction

* update error messages
2025-08-14 10:23:44 +01:00
Gareth
f81c5dec42 Tempo: update codeowners (#109478)
* update tempo codeowners

* keep traces and profiling as owners

* update codeowners
2025-08-14 10:13:17 +01:00
Gareth
96c2f48ad5 Prometheus: Fix docs link in config page (#109385)
fix docs link
2025-08-14 10:10:02 +01:00
Anna Urbiztondo
7e925a718c [Plugins]: Revamping OSS doc (#108974)
* Draft

* Fix?

* Prettier

* Fix?

* Update docs/sources/administration/plugin-management/_index.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Update docs/sources/administration/plugin-management/_index.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Feedback, new docs

* Prettier

* More feedback

* Prettier

* Minor edits

* Edits

* Prettier

* Edits

* Prettier

* Solving conflicts

* Prettier

* Update docs/sources/administration/plugin-management/_index.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Update docs/sources/administration/plugin-management/_index.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Update docs/sources/administration/plugin-management/_index.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Fix?

* Fix?

* fix links?

* Update plugin-integrate.md

* fix link

* fix link?

* Update plugin-install.md

* Update plugin-install.md

* fix link

* fix link

* fix links

* Update plugin-types.md

* Fix?

* Fixing

* More links

* Final touches

* Update docs/sources/administration/plugin-management/plugin-integrate.md

Co-authored-by: David Harris <david.harris@grafana.com>

* Prettier

---------

Co-authored-by: David Harris <david.harris@grafana.com>
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-08-14 09:01:43 +00:00
Josh Hunt
d9335b725e FS: Fix missing SSL certs in docker image (#109632) 2025-08-14 08:45:14 +00:00
grafana-pr-automation[bot]
c4b018352f I18n: Download translations from Crowdin (#109642)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-14 08:43:46 +00:00
Dominik Prokop
0705a44b0f DashboardScenePageStateManager: Pass query params to loadDashboard when reloadDashboardsOnParamsChange enabled (#109543)
* DashboardScenePageStateManager: Pass query params to loadDashboard when reloadDashboardsOnParamsChange enabled

- Extract query param processing into helper function
- Pass processed params to loadDashboard when toggle is on
- Add test coverage for query parameter handling

* review
2025-08-14 10:33:28 +02:00
Alexander Akhmetov
e165a490b4 Alerting: Return merged extra configurations in the API (#109636) 2025-08-14 07:46:12 +02:00
Paul Marbach
7d7721e30a Docs: Sort docs update (#109640)
* Docs: Update documentation on multi-sort for TableNG

* update image for filter docs

* Update docs/sources/panels-visualizations/visualizations/table/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Update docs/sources/panels-visualizations/visualizations/table/index.md

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-08-13 23:04:34 +01:00
Isabel Matwawana
c5d30f2892 Docs: Add wrap header text & freeze columns (#109623) 2025-08-13 17:45:12 -04:00
Isabel Matwawana
f3394c3f33 Docs: Add text wrap for data links and pill cells (#109621) 2025-08-13 21:07:33 +00:00
Haris Rozajac
4a3b8a567f Dashboard Migrations: v18 - gauge options (#109496)
* migrate to v19

* migrate to v18

* Update v19.go
2025-08-13 15:01:50 -06:00
Kristina
df70198038 Transformations: Group by should not perform calculation if operation is not set to calculate (#109430)
Do not perform calculation if operation is not Calculate
2025-08-13 15:07:53 -05:00
Josh Hunt
c7e1a3d0fd Drawer: Truncate Drawer title to just one line (#109540)
* Drawer: Truncate Drawer title to just one line

* restore prev subtitle
2025-08-13 20:51:50 +01:00
Haris Rozajac
d84408e52d Dashboard Migrations: v19 - panel links (#109495)
* migrate to v19

* clean up

* apply feedback
2025-08-13 13:51:19 -06:00
Éamon Ryan
f1dd6db456 Service Accounts: Fix typo on page indicating none are present (#109560)
* Fix typo for empty state service accounts

* update i18n file

---------

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
2025-08-13 20:53:19 +02:00
Alex Spencer
73a1320334 SQL Expressions: Add editor toolbox (#109298)
* init: feature work

* chore: i18n

* feat: add run query + keyboard shortcuts

* chore: i18n

* chore: initial query formatted

* chore: resolve some issues

* chore: a bit of refactor to clean it up

---------

Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
2025-08-13 11:43:01 -07:00
github-actions[bot]
ee9c73f866 Release: update changelog for main (#109556)
* Update changelog

* Update changelog

* Update changelog

* Update CHANGELOG.md

Manually update changelog with 11.6.5 changes

* Update CHANGELOG.md

Update with 12.0.4 changelog content

* Update CHANGELOG.md

update changelog with 12.1.1 content

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
2025-08-13 18:09:42 +00:00
Andreas Christou
b34642b188 Azure: Fix logs editor rendering (#109491)
* Fix logs editor rendering

- Add test

* Type fixes

* Fix schema conditions and add test

* Fix lint

* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/TimeManagement.tsx

Co-authored-by: Adam Yeats <16296989+adamyeats@users.noreply.github.com>

* Lint

---------

Co-authored-by: Adam Yeats <16296989+adamyeats@users.noreply.github.com>
2025-08-13 17:22:06 +00:00
Tom Ratcliffe
5564f699ca Folders: Add team folders feature toggle (#109389)
Add team folders feature toggle
2025-08-13 16:41:00 +00:00
Alex Spencer
31fc7d5d7a SQL Expressions: LLM plugin integration - SQL suggestions and SQL explanations (#107545)
* init: first pass at AI generated SQL expressions

* chore: fixes to tests

* i18n

* chore: small GenAIButton style update

* lazy load the genAI button - circular dependency issue in our test mocks...?

* chore: polish

* fix: i18n

* feat: make it a whole lot more capable

* chore: extract prompt logic to common file

* chore: consolidate state management to custom hooks

* chore: clean up, update GenAIButton API, etc.

* chore: major sql prompt improvement + plan for future + genAIButton api update

* chore: polish for now

* chore: clean up folder structure

* chore: conditionally use hooks + improve prompt

* chore: betterer....

* chore: polish

* feat: testing 🚀

* chore: polish polish polish

* chore: remove startWithPrompt

* chore: timeout 30

* chore: add experimental badge

* i18n + 60 sec timeout

* chore: MOAR POLISH

* chore: clean up explanation drawer

* chore: update tests

* chore: update FF checks

* chore: get the rendering w/FF correct

* chore: fix tests

* chore: re-work ai tooltips

* chore: cleanup

* chore: handle sql button styling differently

* chore: fix styling last time
2025-08-13 09:24:04 -07:00
Isabel Matwawana
50a3aa3137 Docs: Add table cell types pills and markdown (#109411)
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-08-13 11:56:57 -04:00
Roberto Jiménez Sánchez
6527790b64 Provisioning: Fix flaky tests with better debugging and consistent test patterns (#109601)
* Add log after jobs

* Use the same helper to create repository in export job

* Improve the logging

* Fix eventually conditions in helpers

* Fix export job tests

* Format code

* Fix linting

* Fix the format

* Fix linting issue

* Fix innefectual assignment
2025-08-13 17:35:06 +02:00
Alexander Akhmetov
587f52cf5b Alerting: API to show converted alertmanager configurations in the UI (#109353)
What is this feature?

This PR add the backend functionality to support viewing extra Alertmanager configurations (imported with the Prometheus conversion API) in the UI under the feature flag alertingImportAlertmanagerUI. The same flag will be used to enable this in the UI.

This is just the backend part, the full PoC PR is here: #109027

It uses a special datasource UID prefix __grafana-converted-extra-config-{identifier} to identify imported configurations. When the Alertmanager proxy handler detects this prefix:

    GET requests are proxied to either the Grafana Alertmanager service (for alerts, silences, etc.) or the Prometheus conversion API to get the config
    Write operations are not supported
2025-08-13 17:28:43 +02:00
Kyle Brandt
466aa70179 Sql Expressions: (Chore) Dedicated logger for expr.sql, and pass context (#109549) 2025-08-13 11:20:14 -04:00
Tom Ratcliffe
789a61230d Alerting: Fix newly created alert rules not immediately showing up in folder view (#109584)
Fix incorrect tag provided for namespace endpoint
2025-08-13 14:56:16 +00:00
Konrad Lalik
e21eda9413 Alerting: Auto refresh contact points in the rule form (#109539) 2025-08-13 16:54:40 +02:00
owensmallwood
384ec28dfd Unified storage bugfix legacy folders getting first page (#109554)
* When creating a new continue token, it defaults to page 1. Also use constants for default limit and page number.

* Update tests for continue token.

* When listing legacy folders, the continue token will have all paging info in it. Simplifies paging logic and fixes bug when limit not specified.

* Adds regression test to ensure default page limit is enforced.

* remove test comment
2025-08-13 08:50:28 -06:00
Alexa Vargas
8134919536 Query Library: Fix Change DS during replace query loses query library context (#109511)
* Query Library: Fix Change DS during replace query loses query library target
* add unit tests
2025-08-13 16:42:03 +02:00
Will Assis
b9b34223a7 Unified-storage: search after write feature flag (#109597)
create feature flag for experimental search-after-write changes
2025-08-13 10:05:15 -04:00
Matheus Macabu
fc6690bf6b IntegrationTests: Increase timeout to 8m (#109598)
Some tests are now taking longer than the 5min timeout
2025-08-13 16:03:29 +02:00
Laura Fernández
e358ca1f55 Chore: Remove deprecated HorizontalGroup in geo and transformers editors (#109602) 2025-08-13 15:57:38 +02:00
Yuri Tseretyan
726c76d998 Improve workflow "Update Alerting Module" (#109565)
* fix url to pull requests
* add default labels
* send message to slack
2025-08-13 09:53:13 -04:00
grafana-pr-automation[bot]
b4d1c136ce I18n: Download translations from Crowdin (#109575)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-13 13:46:14 +00:00
Andres Martinez Gotor
2e4b10e81c DatasourcePicker: Favorite datasources (#109404) 2025-08-13 15:34:19 +02:00
Konrad Lalik
842fd44e83 Alerting: Disable group consistency check for GMA rules (#109599)
Disable consistency check for GMA rules
2025-08-13 15:30:46 +02:00
Laura Fernández
09ee1ecaad Chore: Remove deprecated VerticalGroup (#109559) 2025-08-13 15:10:50 +02:00
lean.dev
3106abf1a6 SecretsManager: clear unused metrics and standarize labels(#109515) 2025-08-13 14:01:50 +01:00
Alexa Vargas
48edf1808e Query Library: Edit Query Library in explore using queryLibraryRef (#108863)
* add suport for queryLibraryRef in explore

* add feature flag check on badge

* add test for migrator

* Add QueryEditor.test and useStateSync test

* implement onCancelEditingQuery library

* run i18n extract

* push mod changes

* Revert "push mod changes"

This reverts commit 29c410f126.

* remove queryRef from the URL

* remove queryRef from url in explore page, keep redux logic

* restore tests and remove old queryRef from URL behaviour

* clean up test

* remove unnecessary useCallback from onCancelQueryLibraryEdit

* apply PR suggestions about naming of functions

* rename queryRef to queryLibraryRef

* update missing files with the new queryLibraryRef

* fix i18n check

* Disabled add query buttons when queryLibraryRef is present

* Add unit test to components

* add missing queryLibraryRef after merge

* add placeholder for highlighted code

* clear up queryLibraryRef after sucess update

* add monitoring

* remove unnecessary change

* remove placeholder and integrate highlightQuery

* change "Editing From Query Library" to "Update query from library"

* update tootlip text

* fix interaction importing issue

* updating i18n for query library editing badge

* update copy on saving actions

* keep copy short

---------

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2025-08-13 14:46:45 +02:00
Matheus Macabu
94f7602786 App Installer: Revert #109267 and skip ShortURL integration tests (#109591)
* Revert "App Installer: Merge builder and installer admission (#109267)"

This reverts commit c662b880fd.

* ShortURL: Skip integration tests temporarily
2025-08-13 11:27:37 +00:00
alerting-team[bot]
2887099c74 Alerting: Update alerting module to a38b2187d4e1bec5f7c3a8fc885a3117b64b4bd0 (#109580)
[create-pull-request] automated change

Co-authored-by: alexander-akhmetov <1875873+alexander-akhmetov@users.noreply.github.com>
2025-08-13 10:32:15 +00:00
Dominik Prokop
28030ce000 Dashboard: Add experimental reloadOnParamsChange annotation support in v1beta1 API client (#109461)
Warning: This is heavily experimental feature and WILL BE REMOVED in a few months.
2025-08-13 11:43:22 +02:00
Yulia Shanyrova
47aa892d24 Plugins: Add test-ids for plugin details, remove lastCommitDate (#109173)
add test-ids for plugin details, remove lastCommitDate
2025-08-13 10:18:49 +02:00
Yunwen Zheng
2ecc076bbf Provisioned Resource Read Only: When repo is read only, disable action buttons and display badge (#109494)
* When repo is read only, disable action buttons and display badge

* browse dashboards page, disable checkbox if repo is read only

* clean up

* clean up

* i18n

* added read only status to repository page

* i18n

* fix

* readonly tooltip added local provisioning message

* i18n
2025-08-13 09:08:53 +02:00
Stephanie Hingtgen
85166512cb Provisioning: Update for standalone (#109524) 2025-08-12 17:37:16 -05:00
Alyssa Joyner
1ce333a572 [InfluxDB] Config design improvements (#108562) 2025-08-12 14:23:51 -06:00
Alex Spencer
08501677e3 SQL Expressions: Add SQL banner (#106865)
* prototype: sql expressions discovery work

* chore: remove compact view work

* chore: cleanup

* chore: moar clean

* chore: use grid instead

* chore: remove no margin + i18n fix

* chore: betterer

* cleanupz

* chore: oh it needs noMargin

* feat: convert to alert

* chore: i18n extract

* i18n

* chore: polish

* fix: change localstorage provider import

* chore: update local storage key name

---------

Co-authored-by: Develer <yeryomin.igor@gmail.com>
2025-08-12 12:34:13 -07:00
Ezequiel Victorero
56c91c2222 ShortURL: App platform migration support for dual write (#109221) 2025-08-12 16:01:41 -03:00
Ryan McKinley
edcb6e6895 Provisioning: Fix OpenAPI generation (#109513)
* post-process spec

* update client

* fix the openapi

* revert playlist change

* Fix unmanaged resource counts

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-08-12 17:25:19 +00:00
Josh Hunt
2345da5100 MultiCombobox: Fix async options to being able to be removed (#109473) 2025-08-12 17:40:08 +01:00
Mustafa Sencer Özcan
7b4fcd486a Revert "fix: unified resource server list queries order column" (#109529) 2025-08-12 17:29:50 +02:00
Todd Treece
c662b880fd App Installer: Merge builder and installer admission (#109267) 2025-08-12 15:28:17 +00:00
Ihor Yeromin
dd85bc0b17 Doc: Canvas zoom to content (#109522)
doc(canvas): zoom to content
2025-08-12 16:59:53 +02:00
Roberto Jiménez Sánchez
5c5729a25d Provisioning: Fix migration behavior for folder-type repositories (#109518)
Fix migration issues for folder sync
2025-08-12 16:48:13 +02:00
Victor Cinaglia
5f6abae81b Auth: Add subtitle for cloud access policy page (#109498)
chore(iam): add subtitle for cloud access policy page
2025-08-12 11:26:50 -03:00
Yunwen Zheng
57865b6a90 Browse Dashboards: Prevent cross repo resource selection (#109500)
* BrowseActions: when selecting item from a provisioned folder, disable all items from other provisioned folder. Display a  tooltip when checkbox is disabled.
2025-08-12 13:45:08 +00:00
Matheus Macabu
904bf6b807 Investigations: Move Grafana core packages to pkg/registry/apps (#109477) 2025-08-12 15:33:23 +02:00
Bogdan Matei
80e8a6e211 Dashboard: Improvements to conditional rendering (#108108) 2025-08-12 16:23:19 +03:00
Zoltán Bedi
db0a1bc30f Remove sqlDatasourceDatabaseSelection feature toggle (#109391)
* Remove `sqlDatasourceDatabaseSelection` feature toggle

* Update e2e tests
2025-08-12 15:22:30 +02:00
Andreas Christou
6c106a85ac UI: Add aria-labelledby and data-testid to MultiCombobox (#109521)
Add aria-labelledby and data-testid props
2025-08-12 14:06:04 +01:00
Yunwen Zheng
ce64b66798 BulkDeleteProvisionedResource: Use resource names to perform bulk deletion job (#109281)
* BulkMoveProvisionedResource and BulkDeleteProvisionedResource: use resource name for BE job
2025-08-12 08:57:42 -04:00
Roberto Jiménez Sánchez
9b3b6fcdb2 Security: Fix actor spoofing vulnerability in Dependabot workflow (#109519)
Replace github.actor with github.event.pull_request.user.login to prevent
actor context spoofing in pull requests from forks. This ensures only
genuine Dependabot PRs can trigger the workspace update workflow.

Fixes zizmor security finding with Medium confidence level.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-12 12:40:03 +00:00
Roberto Jiménez Sánchez
f2303a8ad9 Provisioning: Include Ref URLs in Job Status (#109464)
* Add URLs to Job spec

* Rename them as RefURLs

* Implement RefURLs for Github

* Add Ref URLs to Jobs

* Worker Test

* Create the branch in the staged writer

* Regenerate Git mock

* Format code

* Consolidate ResourceURLs and RefURLs into one

* Fix broken tests
2025-08-12 11:57:37 +02:00
Josh Hunt
90dfc26b43 Chore: Update nx to 21.3.11 (#109508)
* Reapply "Update dependency nx to v21 (#109232)" (#109476)

This reverts commit 6fe0893630.

* Update nx to 21.3.11
2025-08-12 10:56:12 +01:00
grafana-pr-automation[bot]
20d253fc39 I18n: Download translations from Crowdin (#109502)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-12 08:42:56 +00:00
Roberto Jiménez Sánchez
8a690e977e Provisioning: Return unmanaged count in stats (#109462)
* Unmanaged counts

* Add integration test

* Generate open api spec
2025-08-12 09:17:25 +02:00
Matheus Macabu
0d8518dc2f Build: Add -buildvcs=false flag to go build (#109472) 2025-08-12 08:57:32 +02:00
Sofia Papagiannaki
402572c580 Add ConfigProvider and modify quota.Service to use it (#109395)
* Add config provider and integrate with wire setup

* Refactor quota service to use config provider for configuration management

* Enhance OSSConfigProvider to include logging and update ProvideService to return an error. Refactor server initialization to handle potential errors from config provider. Remove unnecessary wire binding for OSSConfigProvider.

* Update CODEOWNERS to include the configprovider package under the grafana-backend-services-squad.

* Refactor quota service initialization to include context in multiple service providers. Update tests and service implementations to ensure proper context handling during service creation.
2025-08-12 09:42:10 +03:00
Ryan McKinley
101aea9647 K8s/Meta: Support setting secure values on a struct type (#109381) 2025-08-12 00:53:56 -05:00
Adela Almasan
238961d3ea VizTooltip: Replace ExemplarHoverView with VizTooltip components (#109369)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-11 20:35:36 +00:00
Collin Fingar
cff39476f3 QueryLibrary: Updated Entrypoint Discoverability (#108413)
* Updated query library discoverability

* Reverted to plus

* Fixed coloring issue
2025-08-11 15:58:00 -04:00
Jacob Valdez
790b9fc1cf Docs: adjusting the audit log label info (#109088) 2025-08-11 13:25:33 -05:00
Alex Spencer
5363615d97 Trendline: Add higher polynomial degrees (#109001)
* enhancement: add higher polynomial degrees + warning

* chore: i18n

* chore: refactor

* chore: renaming for clarity!
2025-08-11 10:00:33 -07:00
geekeryy
43ac5b52f9 InfluxDB: Fix Unable to use self-signed CA for adding influxdb data source (#105586)
* Fix Unable to use self-signed CA for verification when adding influxdb data source (#105585)

* Update pkg/tsdb/influxdb/fsql/fsql.go

---------

Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
2025-08-11 11:45:19 -05:00
Ashley Harrison
fbef31b2e0 Chore: Unskip some more storybook a11y checks (#109452)
* Unskip some more a11y checks

* set aria-label correctly in story
2025-08-11 16:22:48 +00:00
Peter Štibraný
298b492f1a search queue index mutex (#109474)
Use custom mutex for index, and don't hold it during BulkIndex.
2025-08-11 16:20:47 +00:00
Ashley Harrison
6fe0893630 Revert "Update dependency nx to v21 (#109232)" (#109476)
This reverts commit 1625bc1e4e.
2025-08-11 15:29:44 +00:00
Jacob Valdez
fccb51660c docs: fix refs to fix links in http api docs (#109429) 2025-08-11 09:55:52 -05:00
Syerikjan Kh
fef5d7a67f Docs: Helm chart plugin installation (#109467)
* docs: helm chart plugin installation

* Update docs/sources/administration/plugin-management/_index.md

Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>

---------

Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
2025-08-11 14:54:37 +00:00
renovate[bot]
b8f74bc9cc Update locker to v0.14.0 (#107968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 15:38:55 +01:00
Isabel Matwawana
19d2bfba7f Dos: Remove OSS and enterprise product labels (#109270) 2025-08-11 09:59:25 -04:00
Isabel Matwawana
b8b7fee877 Docs: Add dashboards previews alias (#109358)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-08-11 09:30:54 -04:00
Ida Štambuk
c39c6a2a87 CloudWatch: Append query type to the request id (#109068) 2025-08-11 15:20:48 +02:00
Alexander Akhmetov
0e59bcdbb8 Alerting: Apply backend label filtering to chart visualization in state history UI (#109459) 2025-08-11 15:20:35 +02:00
Stephanie Hingtgen
ce1afa626d Dashboard versions: Cleanup logic (#109432)
* Dashboard versions: Cleanup logic

* more cleanup
2025-08-11 07:12:46 -06:00
Stephanie Hingtgen
cc1f00cbfb Dashboard versions: Fix list for large dashboards (#109433) 2025-08-11 07:12:16 -06:00
Yulia Shanyrova
63237f0be8 Plugins: All plugins are up to date message if now new updates available (#109175)
* add message for no updates abailable

* add tests to PluginList
2025-08-11 14:45:21 +02:00
Serge Zaitsev
7cde0dfaf5 Chore: Disable cgo for postgres/mysql tests (#109444)
* disable cgo for postgres/mysql tests

* add missing error constants
2025-08-11 14:40:44 +02:00
Ryan McKinley
e0404f924c K8s/SecureValues: Wire InlineSecureValueSupport to apistore (#109449)
* inline wire

* extra fields

* add variable

* wire
2025-08-11 15:22:56 +03:00
Dominik Prokop
4682a288a3 Dashboard: Add processingTime metric for easier querying and bump scenes to 6.29.7 (#109442)
* Dashboard: Add processingTime calculation to profiler and upgrade scenes

- Add processingTime calculation (duration - networkDuration) to dashboard profiler
- Upgrade to @grafana/scenes 6.29.6 with profiler improvements
- Update documentation

* Bump scenes to stable

* Cancel ongoing profile on dashboard scene page page unmount

* Update docs

* Bump latest scenes
2025-08-11 13:38:50 +02:00
Ivan Ortega Alba
f3182a3838 Dashboard Migrations: Add observability logging to dashboard conversion process (#109368) 2025-08-11 13:27:54 +02:00
Alexander Akhmetov
6ca3d8a27a Alerting: Enable alertingSaveStateCompressed by default (#109390) 2025-08-11 12:57:20 +02:00
Ryan McKinley
439d4d383c Provisioning: Hide HistoricJobs from OpenAPI spec (#109454)
histtoric jobs
2025-08-11 10:47:33 +00:00
Roberto Jiménez Sánchez
f80627f228 Provisioning: Store Recent Jobs Temporarilly in Unified Storage (#109392)
* Add HistoryJob back to Spec

* Generate client

* Put back History Jobs

* Add a controller to remove historic jobs after some minutes

* Start only if Loki is not used

* Format code

* Update OpenAPI spec

* Change log level

* Fix condition

* Fix staticcheck

* Use provisioning identity

* Fix registration APIs

* Fix readonly issue

* Update OpenAPI
2025-08-11 13:10:15 +03:00
Konrad Lalik
a0cf529465 Alerting: Fix subpath handling in the alerting package (#109448)
Take subpath into account when building contact points APIs URL
2025-08-11 12:06:58 +02:00
renovate[bot]
1625bc1e4e Update dependency nx to v21 (#109232)
* Update dependency nx to v21

* auto exit terminal ui

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-11 10:56:05 +01:00
Ivan Ortega Alba
63bab8076d Dashboards Migrations: V24 set defaults when no thresholds are defined (#109402) 2025-08-11 11:55:19 +02:00
Ieva
58c4305d64 Access: Feature toggle for resource permissions (#109418)
feature toggle for resource permissions
2025-08-11 08:54:36 +00:00
grafana-pr-automation[bot]
7ee2b3c124 I18n: Download translations from Crowdin (#109431)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-11 08:26:30 +00:00
Mariell Hoversholm
744f6e50f7 Actions: Don't specify ref on clone (#109440) 2025-08-11 10:24:03 +02:00
Isabel Matwawana
49e5729fb1 Docs: Clarify geomap tooltip behavior (#107930) 2025-08-09 07:38:11 +00:00
Paul Marbach
a819e977a1 Table: Fix some styling issues with frozen columns (#109425) 2025-08-08 17:27:44 -05:00
Isabel Matwawana
d921872b97 Docs: Add variable indexing section (#108725) 2025-08-08 21:20:33 +00:00
William Wernert
6851d8ae0c Storage: Skip slow test TestIntegrationBenchmarkResourceServer (#109424) 2025-08-08 20:51:12 +00:00
Drew Slobodnjak
c7bff24e35 Geomap: Update no repeat option docs (#109375) 2025-08-08 12:26:20 -07:00
owensmallwood
c07c0f27d2 Unified Storage: Makes writing and reading index thread-safe in the queue processor (#109420)
makes writing and reading index thread-safe
2025-08-08 12:53:01 -06:00
Moustafa Baiou
1bb68a1151 Revert "Alerting: Add store level pagination of rules" (#109422)
Revert "Alerting: Add store level pagination of rules (#108633)"

This reverts commit 2f0190d775.
2025-08-08 18:39:04 +00:00
alerting-team[bot]
898ef9cf58 Alerting: Update alerting module to dae4478cb0dc9326319d27e5f3feb301825f2922 (#109419)
* [create-pull-request] automated change
* omit email templates from the result

---------

Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com>
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-08-08 18:13:23 +00:00
Matias Chomicki
f77e8839d9 New Logs Panel: Display nanoseconds if present (#109210)
* processing: display nanoseconds if present

* Nanoseconds: add control in log line menu

* virtualization: adapt to timestamp format

* Translations

* LogLine: update test

* virtualization: update test

* LogLineMenu: update test

* LogListControls: add third state for new logs panel timestamps

* Logs Panel: expose as a new panel option

* Translations

* Logs Panel: set timestamp resolution from panel config

* Module: add default value

* LogLine: update test

* Spelling

* chore: rename setter

* LogListControls: use custom button for resolution

* Translations

* Translations

* Prettier

* Logs Panel: conditionally show timestamp and details options

* Add integration test
2025-08-08 17:13:01 +00:00
Artur Wierzbicki
5e4dd1c907 AutoTriager: add git sync (#107103)
add gitsync
2025-08-08 15:31:47 +00:00
Yunwen Zheng
155f1fc58c RepositoryOverview: Bugfix recent job not displaying in OSS (#109407)
fix condition
2025-08-08 17:18:02 +02:00
Isabel Matwawana
f019848209 Update CODEOWNERS for what's new and upgrade guide (#109406) 2025-08-08 15:00:38 +00:00
Matt Cowley
bd2f14e01b Plugins: Move AppChrome extension point to top of stack (#109015)
* Plugins: Move AppChrome extension point to top of stack

* Plugins: Switch AppChrome extension gating to chromeless flag
2025-08-08 16:58:48 +02:00
Paul Marbach
992d189c0f Table: Frozen columns (#109276)
* Table: Frozen columns

* i18n extract

* clamp the frozen columns by the total number of cols visible

* future-proof a bit: frozenColumns.left, add to kitchenSink
2025-08-08 14:55:53 +00:00
Alexander Akhmetov
4e94e463cf Alerting: Fix private labels filtering test (#109393) 2025-08-08 14:08:36 +00:00
Alexander Akhmetov
73f24d3116 Alerting: Pass exact matchers to the backend in the state history UI (#109292) 2025-08-08 16:03:27 +02:00
Josh Hunt
f836ea2ada CI: Switch jest unit tests to self-hosted runners (#109304)
* trigger a workflow run for baseline

* attempt to improve caching with upfront action

* CYPRESS_INSTALL_BINARY: 0

* PUPPETEER_SKIP_DOWNLOAD: true

* use ubuntu-x64-large runners

* increase to 16 shards 🚀

* fix incorrect shard total

* ubuntu-x64 runners

* Revert "ubuntu-x64 runners"

This reverts commit 3411c7c5e1039263b17a3065cd7d45fa4c3c8f69.

* try caching node_modules

* fix flakey scopes test

* try just ubuntu-x64-large for yarn-install job

* run again, last one had a dodgy trace

* try different runners for yarn instlal

* Move node_modules cache steps to composite action, use ubuntu-x64 runners for everything

* fix duplicate runs-on

* specify shell for composite action

* fix some flaky tests

* update codeowners

* dedupe yarn.lock

* align yarn action, switch tests back to ubuntu-x64-large

* align yarn action cache keys

* fix required-frontend-unit-tests not checking repo out

* try without the node_modules magic

* actually skip the node_modules caching magic

* skip hardened mode

* skip downloading cypress

* comment
2025-08-08 14:31:14 +01:00
Andres Martinez Gotor
463e544db9 Add boilerplate code for favoriteDatasource feature flag (#109383) 2025-08-08 13:28:17 +00:00
Peter Štibraný
9b0dc4614c Cleanup old indexes in the same goroutine as build of the index. (#109382)
* Cleanup old indexes in the same goroutine as build of the index.

* Add test.
2025-08-08 14:59:59 +02:00
Sergej-Vlasov
67140e9850 AutoGridItemRenderer: Fix repeated panel lazy loading and drag and drop (#109334)
* wip: wrap individual grid items with lazy loader

* fix repeated panel lazy loading and drag and drop in auto grid item
2025-08-08 13:43:13 +01:00
Sergej-Vlasov
e1e9a570af TabsLayout: Rethinking tab repeats (#108134)
* wip: rework tab repeat behaviour

* wip: tab repeats rendering

* wip: tab repeats rework

* rework tab drag and drop to account for repeats

* add TabItemRepeater tests

* clean up

* prevent canvas actions in cloned tabs and rows

* add repeat name into tab title

* prettier ffix

* fix cloneLayout bug

* remove experimental title adjustment on repeat
2025-08-08 13:42:51 +01:00
Serge Zaitsev
f3ca49f2b3 Chore: Use proper database in integration tests (#109119)
* Chore: Apply proper database settings to integration tests

* add logging

* join host and port in database config to override default ports

* apply test fixes from the original pr

* host might contain port already

* increase timeout

* increase timeout even more

* even larger timeouts

* Use eventually for stats

* Use eventually also for listing settings as index takes some time

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-08-08 14:24:17 +02:00
Josh Hunt
3a4dc10d3f Chore: skip failing DashboardMigratorToBackend test (#109387) 2025-08-08 12:12:33 +00:00
Andreas Christou
67c75de942 InfluxDB: Ad hoc filters support for expressions (#109344)
* Support adhoc filters

* Tests
2025-08-08 12:32:04 +01:00
Matheus Macabu
01c1a6ce5b SecureValues: Run mutate and validation hooks in service layer (#109379)
* SecureValues: Run mutate and validation hooks in service layer

* add some unit tests
2025-08-08 13:15:23 +02:00
Matheus Macabu
71b6149492 GitIgnore: Add some build files to ignore list (#109380) 2025-08-08 12:33:01 +02:00
Roberto Jiménez Sánchez
285a4c36e5 Provisioning: More Miscellanous Fixes For Integration Tests (#109340)
* More clean up around waiting for jobs

* Add comment to trigger enterprise integration tests

* Trigger integration tests

* Collect error

* Move tests in wrong spot

* Clean up test

* Remove Eventually

* Remove duplicate not nil check

* Delete comment in infra tests

* Helper to create repository

* Use helper for move
2025-08-08 10:04:55 +00:00
Dominik Prokop
09d6d97535 Dashboard Migrations: V20 variable syntax migration for data links and field options (#109203)
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-08-08 09:46:34 +00:00
Haris Rozajac
8f2d27044d Dashboard Migrations: V21 data links (#108950)
---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-08 08:55:32 +00:00
Matias Chomicki
99c7cd60e6 LogLineMenu: improve options and dividers (#109191) 2025-08-08 10:45:05 +02:00
Ryan McKinley
3c00cf11cc Secrets: Allow any valid identity to manage inline secrets (#109377) 2025-08-08 08:18:43 +00:00
Haris Rozajac
abdf1943b9 Dashboard Migrations: V22 table panel styles - set property to 'auto' (#108949)
* Dashboard Migrations: V31 LabelsToFields-Merge Migration

* Dashboard Migrations: V32 No-op migration

* simplify

* Refactor to reduce nesting

* Dashboard Migrations: V30 value mappings and tooltip options

* Do not automigrate since graph is migrated in v27

* Refactor to reduce nesting

* Add test case for invalid mapping

* migrate to v29

* wip

* Fix tests

* fix output

* wip

* fix min version issue

* fix wire

* ignore gauge logic as it never get's executed

* add panel migration to test

* improvements

* update

* cleanup

* address mappings inconsistencies

* cleanup

* fix lint issues

* add cfg when initializing

* v27 migration

* migrate to v26

* preallocate array

* remove logic for grafana-singlestat because it's shared with stat logic; improve error handling and testing

* fix go lint

* don't preallocate; cleanup comments

* cleanup

* wip

* run internal provider function when getting a single panel

* clean up; add tests

* add tests for panel plugin service

* remove obsolete mock for getting panel plugin

* add tests for the whole pipeline

* fix test and lint

* migrate to v23

* migrate to v22

* refactor

* fix test

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-08 08:03:02 +00:00
grafana-pr-automation[bot]
d666e2bdce I18n: Download translations from Crowdin (#109372)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-08 00:43:09 +00:00
Paul Marbach
cc64b17483 Table: Move cell-specific styles out to their own methods (#108941)
* TableNG: Markdown cell, plus custom row height

* tab indentation in cue file

* fix i18n

* trying an auto height with the updated RDG

* get auto cellHeight working

* i18n updates

* hoor disable_sanitize_html flag in MarkdownCell

* update react-data-grid version to attempt to support page up and down

* removing custom height

* use the latest experimental RDG with paging up and down

* TableNG: Wrap text for DataLinks and Pills; groundwork for max wrap length

* disable editing max wrapped lines for now

* disable wrap text line limit e2e

* new i18n extract after commenting out input

* wip

* kill max wrapped lines for now

* more cleanup

* remove targeting classes added for max wrapped lines

* fix Pill test

* couple more style cleanups

* Table: Move cell-specific styles out to their own methods

* move styles into their own file

* combine renderer and style declarations to make auto cells work better, complete cleanup of internal cell elements

* fix e2es given these updates

* add a couple tests

* wip: tests

* add tests

* bump up capital letters in lorem ipsum

* fix copy-pasta mistake

* whoops, mis-merged the selector

* use a local count instead of getCellLinks

* use react-data-grid on react-18 branch

* fix linting on test

* gdev dashboard and smoketest for Markdown table

* remove cellHeightCustom

* restore bugfix from adversarial AI-generated JSON

* reorganize in light of recent and upcoming changes

* cleanup

* override the whitespace for markdown

* what are these auto imports about...

* fix cell height selector from merge

* also remove cellHeightCustom

* i18n

* avoid the important override in markdown cell styles

* revert some betterer config autoformatting

* slight code cleanup

* s/cat/grot, add color link panel to kitchen sink, fix color link/image link style issues

* update panelid for empty table panel test

* link styles outside of cell style setup

* flesh out kitchen sink examples, update ImageCell and applyToRow

* clean up some inconsistent states

* fix lint issue

* gdev update

* format JSON to satisfy linter

* shortening the text in the long text field

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-07 19:53:52 -04:00
Haris Rozajac
4b78e54304 Dashboard Migrations: V23 handle variable multi and current properties (#108937)
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-07 22:41:42 +00:00
maicon
a5abc6727f Unistore/dualwriter: delegate SetDefaultPermissions to Unified on Mode3 (#109308)
* Unistore/dualwriter: delegate SetDefaultPermissions to Unified on Mode3

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-08-07 18:41:41 -03:00
Larissa Wandzura
e6c24e0709 DOCS: Updates to help with UI improvement work (#109359)
* updates to help with UI improvements

* ran prettier
2025-08-07 15:38:00 -05:00
Josh Hunt
0069d112fc Config: Fix date_formats options being moved to a different section (#109339)
* Config: Fix date_formats options being moved to a different section

* fix builder cache key
2025-08-07 20:30:47 +00:00
Haris Rozajac
6ca8c6c6da Dashboard Migrations: v25 & v24; migrate angular table (#108826)
* Dashboard Migrations: V31 LabelsToFields-Merge Migration

* Dashboard Migrations: V32 No-op migration

* simplify

* Refactor to reduce nesting

* Dashboard Migrations: V30 value mappings and tooltip options

* Do not automigrate since graph is migrated in v27

* Refactor to reduce nesting

* Add test case for invalid mapping

* migrate to v29

* wip

* Fix tests

* fix output

* wip

* fix min version issue

* fix wire

* ignore gauge logic as it never get's executed

* add panel migration to test

* improvements

* update

* cleanup

* address mappings inconsistencies

* cleanup

* fix lint issues

* add cfg when initializing

* v27 migration

* migrate to v26

* preallocate array

* remove logic for grafana-singlestat because it's shared with stat logic; improve error handling and testing

* fix go lint

* don't preallocate; cleanup comments

* cleanup

* wip

* run internal provider function when getting a single panel

* clean up; add tests

* add tests for panel plugin service

* remove obsolete mock for getting panel plugin

* add tests for the whole pipeline

* fix test and lint

* fix test

* Fix missing scenarios

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-07 14:14:39 -06:00
Jean-Philippe Quéméner
3920b25aee feat(scheduler): add metric for time spend in queue (#109346) 2025-08-07 19:56:17 +00:00
owensmallwood
e667dfed29 Unified Storage: Update index when indexqueueprocessor exists (#109351)
* Update readme

* When queue processor already exists, update the index on it in case it has been closed.

* Adds regression test.
2025-08-07 11:38:24 -06:00
Kevin Minehart
f888f61097 CI: remove unnecessary files from tarball (#109350)
* remove npm artifacts and storybook from targz

* fix small issue with docker verification
2025-08-07 17:31:28 +00:00
Alexander Akhmetov
89d6756c67 Alerting: Filter out private labels before writing recording rules (#109295) 2025-08-07 17:25:12 +02:00
Miguel Palau
696b1bcc69 Plugin Extensions: DataSource Configuration Components (#108350)
* add the plan

* feat: Add plugin extension points for DataSource configuration components

- Add DataSourceConfigActions and DataSourceConfigStatus extension points
- Add PluginExtensionDataSourceConfigActionsContext and PluginExtensionDataSourceConfigStatusContext types
- Update EditDataSourceActions.tsx with plugin extension support and allowlist filtering
- Update DataSourceTestingStatus.tsx with dual extension point support (new + backward compatible)
- Create getDataSourceExtensionConfigs.tsx with example core extensions
- Update getCoreExtensionConfigurations.ts to include datasource extensions
- Implement grafana-owned plugin allowlist for security and quality control
- Support context-aware extensions based on datasource type and testing status
- Maintain backward compatibility with existing DataSourceConfigErrorStatus extension point
- Add proper TypeScript types and export them in index.ts

This enables grafana-owned plugins to provide contextual actions and status-specific integrations
within the datasource configuration workflow while maintaining security through plugin filtering.

* docs: Update specs.md with implementation status and lessons learned

- Add comprehensive implementation status section with completed features
- Document critical lessons learned during implementation:
  * Translation limitations in extension configurations
  * Plugin security through allowlist filtering
  * Extension registration timing constraints
  * TypeScript context type patterns
- Update implementation checklist with actual completion status
- Add detailed next steps and recommendations
- Include plugin development guidelines (do's and don'ts)
- Document architectural insights and patterns discovered
- Transform specs from theoretical design to practical implementation guide

This update serves as both historical record and developer guide for future
plugin extension work in Grafana.

* Add comprehensive tests for DataSource plugin extensions

- Add EditDataSourceActions.test.tsx with 12 tests covering:
  * Core Grafana actions functionality and permissions
  * Plugin extension rendering and interaction
  * Plugin allowlist filtering and security
  * Context passing and URL generation

- Add getDataSourceExtensionConfigs.test.tsx with 14 tests covering:
  * Core extension configurations for both extension points
  * Context filtering logic (datasource type, severity)
  * Error handling and graceful failures
  * Extension structure validation and type safety

Total: 26 tests passing, providing comprehensive coverage of the
DataSourceConfigActions and DataSourceConfigStatus extension points
implemented in previous commits.

* Update specs.md to reflect completed test implementation

- Mark unit testing phase as complete (26 tests added)
- Add comprehensive Test Implementation section documenting:
  * Test file details and coverage areas
  * Testing challenges and solutions discovered
  * Performance metrics and execution strategy
  * Command examples for running tests
- Update Success Metrics with concrete testing validation
- Update Next Steps to reflect testing completion
- Document new test files in Files Modified section

The plugin extensions implementation now has complete unit test
coverage for both DataSourceConfigActions and DataSourceConfigStatus
extension points with 26 passing tests.

* rm specs file

* lint

* refactor: replace 'any' types with proper TypeScript types in datasource extension tests

* tsc

* prettier: fix

* Fix datasource extension path format to resolve CI test failure

The troubleshooting link extension was using an invalid path format
'/docs/troubleshooting/datasources' which caused console.error during
test execution. Updated to proper Grafana core extension path format
'/a/grafana/docs/troubleshooting/datasources' to comply with plugin
extension validation rules.

* fix: DataSourceTestingStatus test failures

- Fix incorrect data-testid expectations to use proper e2e selectors
- Add contextSrv mock for hasAccessToExplore() dependency
- Create proper plugin links mock handling different extension points
- Update plugin link tests to use allowed plugin IDs
- Fix test logic to match actual component behavior for status/error links
- Add test coverage for non-allowed plugin filtering

All 10 tests now pass successfully.

* lint fix

* refactor: replace any types with proper TypeScript types in DataSourceTestingStatus test

- Replace any[] with PluginExtensionLink[] for statusLinks and errorLinks parameters
- Replace any with UsePluginLinksOptions for setPluginLinksHook callback parameter
- Add proper imports for PluginExtensionLink and UsePluginLinksOptions
- Improve type safety and IntelliSense support in tests

* rm brittle tests

* DataSource: Replace individual buttons with dropdown menu in EditDataSourceActions

- Convert LinkButton components to dropdown with Menu.Item components
- Add conditional rendering: show simple button when only one action, dropdown when multiple
- Use LinkButton for navigation and Button with dropdown icon for menu trigger
- Replace Trans components with t() function calls for Menu.Item labels
- Prevent PageHeader crowding when multiple plugin extensions are registered
- Maintain all existing functionality and tracking calls

* refactor: use configure() for dynamic datasource extension URLs

- Replace onClick handler with configure() function for dynamic path generation
- Use context to build monitoring tool URL with datasource UID
- Follows extension system design patterns for declarative configuration
- Removes manual window.open() in favor of automatic path handling

* refactor: use DataSourceConfigErrorStatus extension point for troubleshooting guide

Use the specific DataSourceConfigErrorStatus extension point instead of
DataSourceConfigStatus with conditional logic in configure function.
This simplifies the code by leveraging the right abstraction level.

* extract i18n

* lint:fix

* Revert "lint:fix"

This reverts commit 23cdb39672.

* lint:fix

* fix: mock plugin extensions registry in variables utils test

Fixes console.error calls during test execution caused by plugin extension
registration failures. The test was failing on CI because the extensions
registry was trying to register link extensions with invalid configurations
during module import.

Solution: Mock the entire plugin extensions registry setup to prevent
side effects from interfering with the test execution.

* fix: mock plugin extensions registry in explore query test

Fixes console.error calls during test execution caused by plugin extension
registration failures. The test was failing on CI because the extensions
registry was trying to register link extensions with invalid configurations
during module import.

This applies the same fix as the variables utils test - mocking the entire
plugin extensions registry setup to prevent side effects from interfering
with the test execution.

* better fix

* Fix EditDataSourceActions test by mocking utils and handling dropdown UI

- Add missing mock for constructDataSourceExploreUrl from ../utils
- Update tests to interact with dropdown menu structure instead of expecting direct text
- Fix test logic to match component behavior: Actions dropdown when user has explore rights

* lint:fix

* refactor: extract duplicated allowedPluginIds to single source of truth

- Add ALLOWED_DATASOURCE_EXTENSION_PLUGINS constant to constants.ts
- Remove duplicate allowedPluginIds arrays from DataSourceTestingStatus and EditDataSourceActions
- Update both components to import and use the shared constant
- Improves maintainability and ensures consistency across datasource config components

* refactor: update datasource extension link configurations

- Change title and description for the metrics drilldown link to improve clarity
- Update the path for the metrics drilldown link to reflect the new routing structure
- Remove the troubleshooting guide link configuration to streamline the extension options

* removing unused config

* better dropdown

* fix: update EditDataSourceActions tests to match component implementation

- Fixed tests to expect core actions as separate buttons instead of dropdown
- Updated plugin extension tests to use 'Extensions' dropdown instead of 'Actions'
- Added test for Extensions dropdown visibility logic
- All 12 tests now passing

* lint:fix

* remove extra check

* Update ALLOWED_DATASOURCE_EXTENSION_PLUGINS documentation to clarify plugin contributions to datasource configuration pages

* feat: Convert Explore data button to dropdown when extensions are available

- When hasActions is empty: shows normal Explore data and Build dashboard buttons
- When hasActions is not empty: converts Explore data to dropdown with angle-down icon
- First dropdown item: 'Open in Explore View'
- Following items: extension links
- Build dashboard button remains unchanged
- Maintains existing tracking functionality and internationalization

* test: Update EditDataSourceActions tests for new dropdown implementation

- Update tests to work with new Explore data dropdown that includes extensions
- Replace references to 'Extensions' button with 'Explore data' dropdown
- Add test for 'Open in Explore View' menu item in dropdown
- Verify correct behavior when extensions are present vs absent
- All 13 tests now passing

* test: Add comprehensive test coverage for dropdown explore functionality

- Add test to verify explore action href when extensions are present
- Ensure both dropdown and direct link behaviors are tested
- Complete test coverage for new dropdown implementation

* translation

* compass icon for the explore item

* feat: refactor AlertSuccessMessage to accept extension links as props

- Move extension links from inline definition to props for better reusability
- Add proper TypeScript support for PluginExtensionLink types
- Improve component architecture by separating concerns
- Add extensionLinks styling to getStyles function for consistency
- Support both real extension links and custom link rendering in success messages

This improves the component's flexibility while maintaining type safety.

* lint:fix
2025-08-07 15:19:10 +00:00
Andres Martinez Gotor
054e0fb208 DatasourcePicker: Include the number of datasources in reported event (#109185) 2025-08-07 15:34:54 +02:00
Yunwen Zheng
b5fca60bdb Provisioning Folder: Bugfix cancel action drawer should not reset selection state; Read only alert reoganize (#109087)
* Read only message on drawer, fix cancel drawer reset selection state.

* Bugfix when select provisioned sub items from root, we are missing repo info
2025-08-07 09:19:04 -04:00
Alexander Akhmetov
8add059800 Alerting: Do not apply extra labels in the Prometheus conversion API to recording rules (#109312) 2025-08-07 15:16:04 +02:00
Kyle Brandt
561d5e4403 SQL Expressions: (chore) Set error on SQL Execute span (#109268) 2025-08-07 08:43:39 -04:00
Roberto Jiménez Sánchez
2a0944a92a Provisioning: Miscellanous Fixes For Flaky Integration Tests (#109330)
* Enhance error messages individual files errors

* Split integration tests into multiple files

* Fix missing import

* Rename file to repository test

q

* Wrap worker errors with more context

* Fixed tests

* Add nolint

* Wait for specific job in multiple spots
2025-08-07 14:26:22 +02:00
Dominik Prokop
2ac68e5385 Bump @grafana/scenes to 6.29.5 for network profiling fix (#109319)
* Bump @grafana/scenes to 6.29.5 for network profiling fix

* Bump to stable
2025-08-07 13:33:27 +02:00
Roberto Jiménez Sánchez
2b15fa0492 Provisioning: Fix missing ref in staging options (#109311)
Fix missing ref in staging options
2025-08-07 12:00:31 +02:00
Ryan McKinley
ace670c6d0 Secrets: Support variadic args in decrypt service (#109280) 2025-08-07 09:54:24 +00:00
Roberto Jiménez Sánchez
c82d2af867 Provisioning: introduce jobs controller (#109252)
* Add basic job controller
* Replace the existing in-memory channel
2025-08-07 12:51:29 +03:00
Gábor Farkas
81531dcd7b datasources: strict local-time-range parsing (#109180)
* datasources: strict local-time-range parsing

* fixed unit test
2025-08-07 11:46:43 +02:00
linoman
da93f58921 SAML: graph api documentation (#109272)
* minor fixes

* Add Graph API troubleshooting guide

* Improve writing

* address PR comments
2025-08-07 11:46:12 +02:00
Dana Axinte
ee99433c65 CloudMigrations: Report on prem event with grafana version (#104515)
* grafana version in on prem event report

* store grafana version in cloud migration service
2025-08-07 10:41:19 +01:00
Matias Chomicki
9b0480460b Log Line Details header: add more space between icons (#109283)
LogLineDetailsHeader: add more space between icons
2025-08-07 11:39:01 +02:00
Eric Leijonmarck
9579bf33fb LBAC for datasources: Remove ft teamHttpHeadersMimir (#109240)
chore: remove ft for mimir
2025-08-07 10:04:46 +01:00
Mariell Hoversholm
28024c74f8 Go: Update to 1.24.6 (#109313)
Co-authored-by: joshhunt <josh.hunt@grafana.com>
2025-08-07 10:27:01 +02:00
Moustafa Baiou
16f8359d35 Alerting: Update Alert Rule to use int64 for MissingSeriesEvalsToResolve (#109306) 2025-08-06 21:45:48 -04:00
grafana-pr-automation[bot]
e36402a121 I18n: Download translations from Crowdin (#109307)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-07 00:43:13 +00:00
Alyssa Joyner
4263b3a982 [InfluxDB]: Fix max series bug (#109291) 2025-08-06 22:13:01 +00:00
Jeff Levin
d2f151b896 update tracing guidelines for tracing (#109299)
Update contributor guidelines for tracing
2025-08-06 21:35:56 +00:00
Adela Almasan
62a1f6c0b8 PanelModel: Use shouldMigrate when migrating (#108998) 2025-08-06 21:21:36 +00:00
Nathan Marrs
c066254e67 Invite User: Clean up previous experiment (#109214)
* remove invite user button from quick add menu as redundant with top nav invite user button

* clean up final invite user experiment

* remove invite user button from megamenu, clean up and consolidate usage of util functions across top nav and command palette

* add some basic tests to util functions

* fix tests / jest mock conflicts

* address PR feedback
2025-08-06 21:15:55 +00:00
Fayzal Ghantiwala
d3af4b582f Alerting: Fix flaky tests (#109205)
* Make sure random orgID isn't 0

* Retrigger CI
2025-08-06 22:05:22 +01:00
Stephanie Hingtgen
d8a43225e3 Folders: Fix frontend permission check (#109290) 2025-08-06 20:31:00 +00:00
Ezequiel Victorero
a630a7a653 Chore: Bump Grafana app SDK to v0.40.3 (#109289) 2025-08-06 17:27:17 -03:00
Ivan Ortega Alba
d1cff535d2 Schema V2: Snapshot testing for migrations should fail when output doesn't match (#109278)
* Schema v2: Snapshot testing for migration fails when doesn't match

* Update snapshot
2025-08-06 19:50:21 +00:00
Isabella Siu
2bf9aea8ef CloudWatch: Fix handling region for legacy alerts (#109217) 2025-08-06 15:40:20 -04:00
Ryan McKinley
295ace108d K8s/Meta: Support extracting InlineSecureValues from an explicit struct (#109279) 2025-08-06 21:17:50 +03:00
Todd Treece
b94d1b616b Plugins App: Update go.mod with new dependency (#109284) 2025-08-06 18:15:44 +00:00
Roberto Jiménez Sánchez
0b5fc9a736 Provisioning: Use loki for recent jobs (#109249) 2025-08-06 18:09:28 +00:00
Roberto Jiménez Sánchez
fec9cd550a Provisioning: Reclaim executing jobs (#109228)
* Reclaim Executing Jobs

* Remove FIXME

* Format code

* Fetch job before update

* Add claims for all namespaces

* Remove unused import

* Update pkg/registry/apis/provisioning/jobs/concurrent_driver.go

* Update pkg/registry/apis/provisioning/jobs/concurrent_driver.go

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-08-06 17:35:31 +00:00
Andreas Christou
bda809f062 Azure: Switch to AdvancedHttpSettings component (#109194)
* Type updates

* Switch to AdvancedHttpSettings component

* Fix locale

* Betterer

* i18n-extract
2025-08-06 18:19:07 +01:00
Todd Treece
ce2697bb07 Plugins: Add app (#108422) 2025-08-06 13:09:10 -04:00
Yunwen Zheng
1f76765ed7 TokenPermissionsInfo: Add token information for GitLab and Bitbucket (#109158)
* TokenPermissionsInfo: add token information for gitlab and bitbucket
2025-08-06 13:04:24 -04:00
Haris Rozajac
1b244cd036 Dashboard Migrations: v26 text2 to text (#108646)
---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-06 17:00:48 +00:00
Ryan McKinley
d24e4f984e Chore: replace go.mod apps references with relative paths (#109264) 2025-08-06 16:57:47 +00:00
Yunwen Zheng
2db987e59a RepositoryOverview: hide job status from cloud version (#109208) 2025-08-06 12:45:57 -04:00
Haris Rozajac
fdfe123305 Dashboard Migrations: v27 repeated panels and constant variable (#108644) 2025-08-06 16:22:11 +00:00
renovate[bot]
d0d8b8f82d Update dependency zod to v4 (#109236)
* Update dependency zod to v4

* don't need to specify zod/v4 anymore

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-06 16:16:15 +00:00
Brendan O'Handley
f49f7d9327 Alerting: Add extension point link from alert rule to grafana-metricsdrilldown-app (#108566)
* add alerting rule query editor extension point

* add extension for queryless apps, allow for multiple extensions

* add button to querywrapper

* remove debugger

* add hook to get tests to pass

* fix spelling of component

* fix tests
2025-08-06 11:01:58 -05:00
Haris Rozajac
5ad751ea28 Dashboard Migrations: V28 singlestat panel and deprecated variable properties (#108416)
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-06 17:51:55 +02:00
Ivana Huckova
3dcda77462 Update @grafana/assistant and add img to LogListContext (#109274)
Update @grafana/assistant and add img to LogListContext
2025-08-06 17:41:55 +02:00
Santiago
1914fb95ee Remote Alertmanager: Wire up remoteSecondaryAlertmanagerWithRemoteState and fix path (#109253) 2025-08-06 17:33:31 +02:00
Ashley Harrison
c634fa5fdf Modal: Center modals at smaller screen heights (#109256)
* centre and fill modals at smaller heights

* fix datasourcemodal styling

* ensure modal height remains similar to before
2025-08-06 16:20:33 +01:00
Ashley Harrison
797886e253 Accessibility: Add lint rule to prevent text anchor usage (#109207)
* attempt at a lint rule

* add comment

* fix the specific alerting links

* fix lint rule violations

* update translations

* fix unit tests

* kick CI

* add missing external
2025-08-06 16:04:03 +01:00
Tom Ratcliffe
c91ad446ac Swagger: Display operation IDs on API docs (#109255) 2025-08-06 15:47:10 +01:00
Josh Hunt
72a56ad503 Chore: Remove @grafana/tsconfig (#109186)
* Chore: Remove @grafana/tsconfig

* update codeowners

* revert changes to grafana-plugin-configs
2025-08-06 15:34:34 +01:00
renovate[bot]
99ce8eb1c0 Update dependency pa11y-ci to v4 (#109233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 15:22:46 +01:00
renovate[bot]
6ee15da39c Update dependency eslint-webpack-plugin to v5 (#109230)
* Update dependency eslint-webpack-plugin to v5

* set failOnError: false to match previous behaviour

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-06 15:18:22 +01:00
Théo Brigitte
5c50fc6385 Auth: Add setting to disable username based brute force login protection (#109152)
* Add setting to disable username based brute force login protection

* Use new DisableUsernameLoginProtection setting in tests where appropriate

* Update documentation for other brute force directives

* Avoid unecessary database calls

* Add test cases for username and IP protection settings
2025-08-06 14:08:49 +00:00
Yulia Shanyrova
f82ea23061 Plugins: Remove duplication of links from plugin details header (#108899)
remove duplication of links from plugin details header
2025-08-06 15:56:12 +02:00
Kristina
7e603d855d Transformations: Transformation refID filters should include non-existant refIDs if no recovery was made (#109008)
* Show refIds if nothing is recovered

* Add test

* Preserve function returning undefined if there are no recovered or selected refIDs

* cuter

* add context and remove testing by sibling

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-06 08:52:34 -05:00
renovate[bot]
c4c3bfc871 Update dependency yargs to v18 (#109235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 14:51:53 +01:00
Johnny Kartheiser
fe6985f2ac docs: alerting list view UI changes (#108876) 2025-08-06 15:42:33 +02:00
Paul Marbach
724c75cc90 Table: add a ResizeObserver to useScrollbarWidth (#109145)
* Table: add a MutationObserver to useScrollbarWidth

* makes more sense to use a resize observer
2025-08-06 13:26:19 +00:00
Michael Wettick
2a9fafbe52 Gops: Change IRM configuration tracker URL and label (#109146) 2025-08-06 15:13:20 +02:00
Syerikjan Kh
abdb1c70ec Fix: Install plugins when they have no plugin archive info(catalog en… (#109200)
* fix: install plugins when they have URL is set

* test:INSTALL_PLUGINS private plugin with version
2025-08-06 09:02:59 -04:00
Matheus Macabu
4e1333236c InlineSecureValues: Only add decrypter if owner is different than svc identity (#109251) 2025-08-06 14:02:23 +02:00
Matheus Macabu
b0b1340c19 Secrets: Remove Close from decrypt client interface (#109250) 2025-08-06 14:02:13 +02:00
Sofia Papagiannaki
0b666ecf7d Chore: Update preferences module version in go.mod (#109246)
Update preferences module version in go.mod, go.sum, and go.work.sum to v0.0.0-20250805123034-066163d71001
2025-08-06 11:57:52 +00:00
Andrej Ocenas
85e9bcaa2e Folders: Migrate getFolder API to app platform (#107617)
* Add /children endpoint

* Update folder client

* Add comment

* Add feature toggle

* Add new version of useFoldersQuery

* Error handling

* Format

* Rename feature toggle

* Remove options and move root folder constant

* Fix feature toggle merge

* Add feature toggle again

* Rename useFoldersQuery files

* Update API spec

* Fix test

* Add test

* Migrate delete folder button

* useGetFolderQueryFacade

* Use getFolder facade hook

* Recreate legacy getFolder from the APIs

* Fix imports

* Add comment

* Rename function

* Simulate virtual folders in the API client

* Translations

* Update test

* Move the hook out of the index file

* Fix undefined in test

* Better status combining

* Use real access api for virtual folders

* Add basic test for the hook

* Remove commented import

* Remove the access control api and use legacy api for it

* Update tests

* Moved delete folder into facade hook

* Remove namespace attribute from virtual folders

* go lint

---------

Co-authored-by: Clarity-89 <homes89@ukr.net>
2025-08-06 13:39:35 +02:00
Roberto Jiménez Sánchez
102d230321 Provisioning: generate client for jobs (#109242)
* Generate client for jobs

* Revert changes in client and openapi
2025-08-06 10:32:11 +00:00
Matheus Macabu
7e09f75100 InlineSecureValue: Add owner API group to decrypters list (#109241) 2025-08-06 12:00:00 +02:00
Matheus Macabu
c9daccfd28 Secrets: Update inline delete when owned to take multiple names (#109227)
* Secrets: Update proto inline secure values to take variadic names on delete

* Secrets: Update inline delete when owned to take multiple names

* trigger CI
2025-08-06 11:45:03 +02:00
Josh Hunt
d8360c4e12 FS: Add Loki and Alloy for local observability (#109209) 2025-08-06 09:40:48 +01:00
Jo
f3896624f5 Access: Remove plugin app access in plugin basic role seeder (#108526)
* draft: remove plugin app access in plugin basic role seeder

* fix log

* remove mods to gosum

* fix missing plugin check

* debug log, not warn

* Secrets: Better error message for not matching resource owner (#109113)

---------

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-08-06 09:25:06 +01:00
Stephanie Hingtgen
68059344f8 Unified storage: Remove unifiedStorageSearchPermissionFiltering feature flag (#109216)
* Unified storage: Remove unifiedStorageSearchPermissionFiltering ff

* unit test
2025-08-06 02:04:32 -06:00
Stephanie Hingtgen
6b86277ecf Nested folders: Remove feature flag (#109212) 2025-08-06 10:07:23 +03:00
Matheus Macabu
fc13a1ae0c Provisioning: Change decrypter service identity to api group name (#109190) 2025-08-06 09:05:03 +02:00
Matheus Macabu
fc117afebc Secrets: Provide grpc and local inline secure value client (#109179)
* TestUtils: Add helper to create certs

* InlineSecureValue: Move to its own package rather than service

* Settings: Rename decrypt server configs to grpc prefixed as it is more generic

* InlineSecureValue: Add gRPC client

* InlineSecureValue: Add service provider grpc/local depending on setting.Cfg

* Wire: Add ProvideInlineSecureValueService to basic wireset

* InlineSecureValue: Re-export in root secret pkg and generate mocks for interface

* Settings: Unify decrypt+inline setting into generic grpc client
2025-08-06 09:04:55 +02:00
Bruno Abrantes
f3b8a891af chore: use native histogram for search shadow traffic match percentage (#109189)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-08-06 08:56:59 +02:00
grafana-pr-automation[bot]
2543d500b8 I18n: Download translations from Crowdin (#109219)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-06 00:43:37 +00:00
Roberto Jiménez Sánchez
377cf1fef9 Provisioning: concurrent job queue processing (#109181)
* Add concurrent job processing

* Use 5 drivers instead

* Revert "Use 5 drivers instead"

This reverts commit 9c1fc3c70b.

* Format file
2025-08-05 13:38:37 -05:00
Haris Rozajac
ef6164ef41 Kubernetes Dashboards: Allow access when user has access to dashboard but not to parent folder (#109160)
* allow access when user has access to dashboard but not folder

* disable folder picker when user doesn't have access to folder
2025-08-05 10:46:53 -06:00
renovate[bot]
0403a95a10 Update scenes to v6.29.3 (#109195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 18:11:10 +03:00
Bogdan Matei
8015c32663 Dashboard: Fix dashboard slug for api V1 and V2 (#108475) 2025-08-05 16:04:48 +02:00
Alyssa Joyner
23b8014708 Add Clickhouse Config Redesign Feature Toggle (#109091) 2025-08-05 07:37:28 -06:00
Jacob Valdez
5bd6d24ff2 docs: Adding clarification to branding docs (#108879) 2025-08-05 08:33:41 -05:00
Matias Chomicki
94874823ce New Log Context: Scroll and resize improvements (#109143)
* LogList: keep scroll position after scrolling top

* Infinite Scroll: add unit tests

* Remove log

* Remove log

* LogList: unify height calculation

* LogList: manage list height with resize observer

* LogLineDetails: report app with details displayed
2025-08-05 15:03:03 +02:00
Yunwen Zheng
e7d633b002 RepositoryCard: use RepoIcon to display repository icon (#109144)
* RepositoryCard: use RepoIcon to display repository icon
2025-08-05 09:02:32 -04:00
Yunwen Zheng
d0617d5c87 FolderRepo: change badge from text to exchange-alt icon, matches dash… (#109154)
FolderRepo: change badge from text to exchange-alt icon, matches dashboard
2025-08-05 09:01:45 -04:00
Jacob Valdez
1541a560bc Update cloud-migration-assistant.md (#109157) 2025-08-05 08:01:29 -05:00
Hugo Kiyodi Oshiro
0584f91a64 Plugins: Add Connections homepage (#108316) 2025-08-05 09:42:05 -03:00
Ryan McKinley
066163d710 Preferences: Move codegen to apps (#109178) 2025-08-05 15:30:34 +03:00
Dominik Prokop
0c7291c8dd Dashboard: Cancel performance profile when tab becomes inactive. (#109184)
* Bump scenes

* Update docs

* Bump scenes

* Bump scenes to stable
2025-08-05 14:21:25 +02:00
Collin Fingar
eb84224266 Snapshots: Update load method to maintain correct reference to manager (#109156)
Update loadsnapshot method to use .call
2025-08-05 08:19:21 -04:00
Tobias Skarhed
3048fc6205 Scopes: Save parent node with recent scope (#108795)
* Read and write recent scopes

* Store entire ScopeNode, load from localSotrage

* Load nodes form localStorage on init

* Add runtime type validation

* Add tests

* Remove unused import

* Add parentNode name to selector integration test

* Deep clone

* Schema validation with zod

* Add comment

* Use zod for schema validation of scope object

* Update type validation of recent scope nodes

* Add comment

* Add expect ts error

* Fix nit
2025-08-05 12:09:58 +00:00
Roberto Jiménez Sánchez
d874bc08b7 Provisioning: Skip incremental rync ref didn't change (#109174)
Skip incremental sync if ref didn't change

Avoids unnecessary load on the job queue by not queuing if the ref
didn't change from the last sync.
2025-08-05 13:26:47 +02:00
Ashley Harrison
1021f05e32 Accessibility: Make either tooltip or aria-label required when no button children present (#109131)
* ensure button must have tooltip/aria-label when no children

* fix violations

* restore some unnecessarily removed labels

* use types instead of interfaces as before

* further fixes

* fix unit test

* commit translations and fix unit test

* upgrade plugin-ui to 0.10.8

* set aria-label + unit tests
2025-08-05 12:04:35 +01:00
Bruno Abrantes
c7f3c92b21 feat: add database config setting to drop automatically generated primary keys (#108918)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-08-05 11:51:11 +02:00
Sam Jewell
ff10f6da67 [--Dashboard-- data source] Implement getFiltersApplicability() (#108517)
**What is this feature?**

Implement `getFiltersApplicability()` on the `--Dashboard--` data source

Also refactor some existing code to use this new approach to naming

This follows some previous work to implement AdHoc filtering on the `--Dashboard--` data source in PR #108011 

**Why do we need this feature?**

See https://github.com/grafana/grafana/pull/107775 and https://github.com/grafana/grafana/pull/106756

> We want to see, when carrying filters from one dashboard to another, which of them are still applicable and which are not

Additionally I think @mdvictor is hoping to see more consistency in our approach across the codebase. But maybe he can confirm this.

**Who is this feature for?**

Everyone
2025-08-05 10:27:09 +01:00
Josh Hunt
e4be1042d0 DataSourceSrv: isDataSourceRef should match type-only ds ref (#109159)
* isDataSourceRef should match type-only ds ref

* update codeowners
2025-08-05 10:24:30 +01:00
Bruno Abrantes
cb921dc47a feat: compare legacy and unified search results via histogram (#109022)
* feat: compare legacy and unified search results via histogram

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: handle cases where request type is not set

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: use struct instead of bool because it's more memory efficient

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: calculate recall percentage rather than union between legacy and unified

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

---------

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-08-05 11:17:32 +02:00
Ashley Harrison
6408e3acaa E2E: Remove cypress dashboards-suite (#109038)
* add equivalent dashboard-time-zone test

* remove cypress dashboards-suite

* modify tests to work with schema-v2 + update workflow to run playwright instead

* fix package.json

* update CODEOWNERS

* fix start-server to include ARCH
2025-08-05 10:09:49 +01:00
Ashley Harrison
db2ba4f7e2 Chore: Remove frontend-platform as owners of public/app/core (#108934)
* remove frontend-platform as owners of public/app/core

* assign some things...

* more delegating

* assign more CODEOWNERS

* assign more CODEOWNERS

* assign more CODEOWNERS

* assign some more CODEOWNERS

* delete some unused files

* remove LocalStorageValueProvider and assign more CODEOWNERS

* remove WithFeatureToggle and assign more CODEOWNERS

* remove ticks as it's not used, assign more CODEOWNERS

* restore ticks, more CODEOWNERS

* finish assigning CODEOWNERS

* fix squad name
2025-08-05 10:09:21 +01:00
Josh Hunt
608b94ac10 Dev: Provision devenv dev-dashboards in frontend-service stack (#109142)
* Dev: Provision devenv dev-dashboards in frontend-service stack

* revert changing the home dashboard
2025-08-05 09:56:30 +01:00
grafana-pr-automation[bot]
57adbe618f I18n: Download translations from Crowdin (#109162)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-05 08:21:02 +00:00
Sam Jewell
d562d70ab2 [Dev Ex] Update cleanup-husky.sh script for MacOS (#107770) 2025-08-05 09:14:32 +01:00
Gábor Farkas
47463481b7 datasources: querier: adjusted names (#109110) 2025-08-05 09:34:48 +02:00
Martin Costello
a1883e194a Explore: Fix units overflow for trace durations (#108515)
* fix: Avoid redundant formatting

Avoid formatting `secondaryUnitString` if it's not going to be used.

Signed-off-by: martincostello <martin@martincostello.com>

* fix: Fix date formatting when rounded

Fix issue where rounded secondary units would not be carried over to the primary unit when they are a whole multiple of that unit (e.g. `"4m 60s"` instead of `"5m"`).

Signed-off-by: martincostello <martin@martincostello.com>

---------

Signed-off-by: martincostello <martin@martincostello.com>
2025-08-05 09:07:54 +02:00
Matheus Macabu
94295bda23 Secrets: Move token exchange interceptor into Decrypt method (#109117) 2025-08-05 08:50:53 +02:00
Gábor Farkas
0ccfdbdfae datasources: querier: better handling of timestamps (#108973)
* query: support query-local timestamps

* make it configurable

* lint fix

* corrected unit test

* fixed unit test
2025-08-05 08:35:57 +02:00
ismail simsek
a7ba662b02 Prometheus: Fix eager auto completion (#109128)
* fix auto completion

* introduce tests

* cleaning

* remove unnecessary test
2025-08-05 06:28:50 +02:00
Alexander Akhmetov
f65e501e1b Alerting: Support extra labels in the Prometheus conversion API (#109136) 2025-08-05 00:03:21 +02:00
Paul Marbach
96c1cd225c Transforms: GroupToMatrix transform should retain keyRowField config (#109066) 2025-08-04 15:51:30 -04:00
Ida Štambuk
279adadb15 CloudWatch: Update grafana/aws-sdk-go with STS endpoint bugfix (#109120)
* Update grafana/aws-sdk-go with bugfix

* run make update-workspace
2025-08-04 21:05:00 +02:00
Ryan McKinley
4c169a65f0 ShortURL: Add app reference to go.mod (#109133) 2025-08-04 16:14:34 +00:00
renovate[bot]
9330cacf4d Update dependency @grafana/assistant to v0.0.13 (#109135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 17:00:14 +01:00
Roberto Jiménez Sánchez
63787c276b Provisioning: Fix flaky move files test (#109116)
* Fix flaky move files test
* Use assert within Eventually
2025-08-04 15:47:12 +00:00
Andre Pereira
990f1c69ec Tempo: Fix instant query streaming (#108924)
* Don't use streaming for instant queries

* wip

* Only return latest instant query result

* Always disable streaming for alerting queries

* lint
2025-08-04 16:09:13 +01:00
renovate[bot]
b56f6f2a37 Update dependency eslint-plugin-jsdoc to v52 (#109129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 16:04:32 +01:00
Josh Hunt
0f9ec532ab Fix backend dashboard kind snapshots (#109130)
* Fix backend dashboard kind snapshots

* update go workspace
2025-08-04 16:01:22 +01:00
Isabella Siu
5f4097a159 CloudWatch: Use default region when query region is unset (#109089)
CloudWatch: use default region when region is unset
2025-08-04 10:32:33 -04:00
renovate[bot]
a33cc8d636 Update dependency eslint-plugin-jest to v29 (#109125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 14:53:26 +01:00
Matias Chomicki
bc2a1cdf02 LogLineDetailsHeader: report scroll to log line interaction (#109077)
* LogLineDetailsHeader: report scroll to log line interaction

Part of https://github.com/grafana/grafana/pull/106394

* Deps
2025-08-04 13:49:29 +00:00
Gilles De Mey
1cda9cdc25 Alerting: Clarify grafana managed rules (#109123) 2025-08-04 15:32:12 +02:00
Juan Cabanas
bbb4d31388 TagFilter: Disable TagFilter by prop (#109085) 2025-08-04 10:28:04 -03:00
renovate[bot]
f80a6e40dd Update scenes to v6.29.1 (#109031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 13:25:47 +00:00
Oscar Kilhed
e0d9b17ff7 Chore: Bump faro to 1.19 (#109028)
Chore: bump faro
2025-08-04 15:07:58 +02:00
Kristina
0dfcaf56d3 Transformations: Add empty values options to Transpose (#108421)
* Extract functions to util and utilize in both transforms

* Fix mistaken label and add better null logic to transpose

* Add a new row and add a blurb to docs about the new setting

* Update public/app/features/transformers/docs/content.ts

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

* Update docs content, simplify null logic

* Add test, clarify empty logic

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-08-04 07:53:26 -05:00
renovate[bot]
50ead8d463 Update testing-library monorepo (#109121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 12:45:52 +00:00
Juan Cabanas
3b96a88aa2 SortPicker: Disable SortPicker by prop (#109083) 2025-08-04 09:17:33 -03:00
Ezequiel Victorero
e88b54e9d3 ShortURL: Create k8s API (#108821) 2025-08-04 09:12:12 -03:00
renovate[bot]
3a84f6ad42 Update dependency react-hook-form to v7.62.0 (#109114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 13:05:31 +01:00
Andres Martinez Gotor
ff9ab17636 Fix useRecentlyUsedDataSources (#108971) 2025-08-04 13:27:35 +02:00
Matheus Macabu
a4ed9c4bb6 Secrets: Better error message for not matching resource owner (#109113) 2025-08-04 13:01:08 +02:00
Josh Hunt
3a1c1b6232 Devenv: Replace testdata UIDs with gdev-testdata (#108997)
* Prettier format the devenv folder

* Consistently use type-only dsref for testdata in devenv dashboards
2025-08-04 11:20:12 +01:00
renovate[bot]
0a108e9c68 Update dependency eslint-config-prettier to v10 (#109064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 11:05:14 +01:00
Matheus Macabu
f5e1e8e8e2 Secrets: Bump dependency with inline proto (#109106) 2025-08-04 11:20:48 +02:00
Gábor Farkas
b839bb7a81 datasources: querier: removed unused method (#109109) 2025-08-04 11:00:59 +02:00
Matheus Macabu
3e66819bac Air: Keep binary after exiting (#109103) 2025-08-04 09:58:54 +02:00
Gábor Farkas
6dc0dedc97 datasources: querier: refactor (#108776)
datasources: querier: refactor types
2025-08-04 09:57:41 +02:00
Matheus Macabu
81f544e186 Secrets: Add service name as explicit parameter for Decrypt (#109054)
* Secrets: Add service name as explicit parameter for Decrypt

* Apply suggestions from code review

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

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-08-04 08:51:15 +02:00
Matheus Macabu
343fe4dadf Secrets: Introduce inline secure value service proto (#109029)
* Secrets: Introduce inline secure value service proto

* Fix secure value description

* Add orgid to obo auth context for testing
2025-08-04 08:26:07 +02:00
Edvard Falkskär
8ac74e24df TraceView: Add span attributes to attributes extension point (#107756) 2025-08-02 16:13:02 +02:00
grafana-pr-automation[bot]
9cc5171e50 I18n: Download translations from Crowdin (#109092)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-02 00:41:54 +00:00
Paul Marbach
a5ceac4474 TableNG: Markdown cell, plus auto row height (#107549)
* TableNG: Markdown cell, plus custom row height

* tab indentation in cue file

* fix i18n

* trying an auto height with the updated RDG

* get auto cellHeight working

* i18n updates

* hoor disable_sanitize_html flag in MarkdownCell

* update react-data-grid version to attempt to support page up and down

* removing custom height

* use the latest experimental RDG with paging up and down

* TableNG: Wrap text for DataLinks and Pills; groundwork for max wrap length

* disable editing max wrapped lines for now

* disable wrap text line limit e2e

* new i18n extract after commenting out input

* wip

* kill max wrapped lines for now

* more cleanup

* remove targeting classes added for max wrapped lines

* fix Pill test

* couple more style cleanups

* fix e2es given these updates

* add a couple tests

* wip: tests

* add tests

* bump up capital letters in lorem ipsum

* fix copy-pasta mistake

* whoops, mis-merged the selector

* use a local count instead of getCellLinks

* use react-data-grid on react-18 branch

* fix linting on test

* gdev dashboard and smoketest for Markdown table

* remove cellHeightCustom

* reorganize in light of recent and upcoming changes

* remove one more reference to cellHeightCustom

* put getDefaultRowHeight back into a util

* clean up test

* swap cell height back to a radio

* revert ImageCell change, we'll do it in the getStyles PR

* don't memo defaultRowHeight

* final couple of style cleanups

* different approach to managing the auto height part of this

* kill console.log

* update i18n

* reorganized once more

* i18n

* guard against rowHeight being auto for virtualization

* may as well memoize the defaultRowHeight

* get rid of the enableVirtualization initializer thing

* fixes from CI

* fix test

* fix test

* just omit third arg for that test

* remove nonsensical test case

* this file didn't get re-gen'd

* fixes from review

* row expander doesn't need height

* remove console.log

* fix e2e after we fixed pagination toggle bug
2025-08-01 19:56:12 -04:00
Yuri Tseretyan
cbf256120e Revert "Alerting: Remote Alertmanager to calculate hash of the request payload instead of just the configuration" (#109086)
Revert "Alerting: Remote Alertmanager to calculate hash of the request payloa…"

This reverts commit 32434810e1.
2025-08-01 21:34:31 +00:00
Stephanie Hingtgen
bd5c83bc11 Revert "Chore: Use proper database type from env in testinfra integration tests" (#109081)
Revert "Chore: Use proper database type from env in testinfra integration tes…"

This reverts commit 772f647210.
2025-08-01 20:49:54 +00:00
Alexander Akhmetov
8b5b9b68c2 Alerting: Document Accept header in Prometheus conversion API (#109080) 2025-08-01 22:39:54 +02:00
Stephanie Hingtgen
9f4773c9a5 Provisioning: Extract to apps submodule (#109074) 2025-08-01 14:35:18 -05:00
Stephanie Hingtgen
172a69da75 Feature toggle: Cleanup old ones (#109072) 2025-08-01 19:29:42 +00:00
Alexander Akhmetov
b36a8e84cc Alerting: Document "Get rule group" Prometheus conversion API endpoint (#109075) 2025-08-01 21:15:33 +02:00
Alexander Akhmetov
eb3a457c6d Alerting: Support JSON responses in the Prometheus conversion API (#109070) 2025-08-01 21:15:21 +02:00
William Wernert
2f0190d775 Alerting: Add store level pagination of rules (#108633) 2025-08-01 12:54:13 -04:00
Paul Marbach
7e47968939 TableNG: Wrap text for DataLinks and Pills (#108645)
* TableNG: Wrap text for DataLinks and Pills; groundwork for max wrap length

* disable editing max wrapped lines for now

* disable wrap text line limit e2e

* new i18n extract after commenting out input

* wip

* kill max wrapped lines for now

* more cleanup

* remove targeting classes added for max wrapped lines

* fix Pill test

* couple more style cleanups

* fix e2es given these updates

* add a couple tests

* wip: tests

* add tests

* bump up capital letters in lorem ipsum

* fix copy-pasta mistake

* use a local count instead of getCellLinks

* fix linting on test
2025-08-01 12:27:53 -04:00
Eve Meelan
147df3de08 Pricing update: no more Cloud Advanced (#109056)
* scrub Cloud Advanced

* prettier edit
2025-08-01 16:23:58 +00:00
Andrew Hackmann
4a26cb92c6 ElasticSearch: Fix inline casting bug when validating the index (#108951)
split out inline casts
2025-08-01 11:01:25 -05:00
Jack Baldry
0faa03edbe Add snippets for 'Create log alert rules with Grafana Alerting' learning journey (#109059) 2025-08-01 15:57:18 +00:00
Timur Olzhabayev
4287734114 Fix: Adding sparse checkout to issue triage workflow (#109060)
* adding sparse checkout

* adding checkout step if we want to run triage
2025-08-01 15:46:29 +00:00
renovate[bot]
b333b67aea Update dependency copy-webpack-plugin to v13 (#109053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 15:29:06 +00:00
Konrad Lalik
953afbd784 Alerting: List V2 - Fix free form filter (#109050)
Use whole free form words for fuzzy search in rule names
2025-08-01 16:29:08 +02:00
renovate[bot]
cc63af204c Update dependency babel-loader to v10 (#109047)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 15:10:30 +01:00
Todd Treece
1831953f7f K8s: Add API Enablement for apps (#109019) 2025-08-01 10:02:01 -04:00
Serge Zaitsev
772f647210 Chore: Use proper database type from env in testinfra integration tests (#108845)
use database type from env in testinfra
2025-08-01 14:01:13 +00:00
Konrad Lalik
b1cdd45ca4 Alerting: List V2 - datasource icons for rules (#109033)
Add datasource icons to the rule list item components
2025-08-01 15:36:46 +02:00
Gareth
7b5288c28a Fix: Preserve Jaeger base path when constructing search request (#109045)
* fix url construction

* consistency

* update error response

* error source

* add test case
2025-08-01 13:56:31 +01:00
Matheus Macabu
491c74b688 Secrets: Add inline secure value delete when owned method (#108993) 2025-08-01 14:45:44 +02:00
Tom Ratcliffe
4f30a3b62b Folders: Use app platform search endpoint and update tests (#108814)
* Update test utils package with mock folder + search endpoints

* Add dashboards v0alpha1 api client

* Update hook to use app platform search API

* Update tests and fixtures
2025-08-01 13:34:33 +01:00
renovate[bot]
1130f69ef7 Update dependency @types/glob to v9 (#109043)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 12:00:34 +00:00
Matheus Macabu
988439e0b8 Secrets: Simplify CanReference interface to only pass secure value names (#109030) 2025-08-01 14:00:01 +02:00
Matheus Macabu
7374df7945 Secrets: Add inline secure value create method (#108987) 2025-08-01 13:57:51 +02:00
Levente Balogh
d96cd46272 Plugin Extensions: Support core plugins (#108685)
* feat(extensions): allow core plugins to use core grafana extension points

* fix: don't validate the plugin.json for core plugins
2025-08-01 13:42:07 +02:00
renovate[bot]
63093dfb26 Update dependency @types/eslint-scope to v8 (#109034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 12:34:32 +01:00
Matias Chomicki
3f90c85c4e New Logs Context: Logs context using the new Logs Panel (#108852)
* LogLineContext: initial support

* LogLineContext: infinite scroll bottom

* LogLineContext: clean up styles and support both scrolls

* InfiniteScroll: support top scrolling

* LogLineContext: support center matched line

* LogLineContext: read options from storage

* LogLineContext: move padding container

* LogLineContext: reset on ui change

* LogLineContext: improve sort order and fix open in split

* LogLineContext: show log line

* Translations

* LogsPanel: integrate new context component

* LogLineContext: add unit test

* Prettier

* Remove unused import

* InfiniteScroll: add "scroll to load more" top

* LogLineContext: rename collapsible

* Update tests

* LogLineContext: refactor center button

* LogLineContext: handle overflow in small viewports

* LogLineContext: format referenced log line

* Memoize

* LogLineContext: make modal bigger

* LogList: improve a11y

* LogLineContext: flexbox magic

* LogLineContext: revert center button change

* LogsPanel: hide overflow

* LogLineContext: responsive min-height

* LogLineContext: fix wrap log message

* InfiniteScroll: improve direction handling

* Add feature flag

* Implement feature flag

* InfiniteScroll: report direction
2025-08-01 11:30:17 +00:00
Roberto Jiménez Sánchez
9ca0750134 Provisioning: skip export of already managed resources and parent folder export (#108893)
* Skip export on already managed resources

* Add integration test

* Add integration test

* Handle nothing to commit error

* Fix leaky abstraction issue

* Handle the no commit error on commit and not on push

* Fix linting

* Some fixes for integration test

* Improve tree to work with a root

* Some fixes with hacks

* Add additional checks

* Fix comment

* Fix path problems in test

* Fix more stuff

* Revert to use empty tree

* Remove changes in tree

* Finally fix the tests work

* Remove stale comment

* Fix linting

* Revert changes in test

* Fix error message for folder not found in resource tree

Co-authored-by: roberto.jimenez <roberto.jimenez@grafana.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-08-01 11:17:15 +00:00
Bogdan Matei
88a52bb6f4 Dashboards: Improve lazy loading (#108854) 2025-08-01 10:46:41 +00:00
Bogdan Matei
f3cd54769c Dashboard: Fix for change detector in dashboards with live refresh (#108903) 2025-08-01 13:38:11 +03:00
renovate[bot]
bfa6bb0264 Update dependency typescript to v5.9.2 (#109025)
* Update dependency typescript to v5.9.2

* remove unused ts-expect-error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-01 11:24:38 +01:00
renovate[bot]
ce2fd8a46f Update dependency @rsdoctor/webpack-plugin to v1 (#108996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 09:48:39 +01:00
Sven Grossmann
cc34f6033d Assistant: Add "Assistant" menu item (#108926)
* Assistant: Add "Assistant" menu item

* update-workspace
2025-08-01 10:32:12 +02:00
ismail simsek
63cc91face Prometheus: Don't use incremental querying if one of the queries has $__range variable (#108823)
don't use incremental querying if one of the queries has $__range variable
2025-08-01 10:13:49 +02:00
Sam Jewell
8e1b3338c6 TableNG: Improve AdHoc filter icons (#108968)
We removed the "Filter for/out value" tooltips when we reimplemented the Table panel. We don't want to reimplement these, so we're improving the icons instead, to look more like "Filter" and less like "Zoom in/out"
2025-08-01 08:55:57 +01:00
grafana-pr-automation[bot]
ae2614f1a8 I18n: Download translations from Crowdin (#109016)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-01 00:44:23 +00:00
Stephanie Hingtgen
ef0d6381b0 Dashboards: Remove incorrect information in docs (#109014) 2025-07-31 22:12:17 +00:00
ismail simsek
025d8527dd Prometheus: Refactor metrics modal to handle high cardinality metrics (#108437)
* remove redux from PromQueryBuilderContainer

* remove export

* housekeeping

* introduce MetricsModalContext to replace redux

* handle result pagination

* add search related values in context

* handle filtering

* handle search

* handle search and highlighting

* cleaning up

* better helpers

* remove unused types

* reorganize the code

* update settings

* improve search and fetch

* remove unused styles

* linting

* fix tests

* update

* lint

* i18n

* import order

* try to fix the test

* remove start call from variable editor

* fix highlighter

* fix pagination alignment

* make the entire row clickable and remove select button

* review updates

* remove settings

* use ufuzzy search

* fix tests

* use case-insensitive search

* review fixes

* fix pagination

* improve readability
2025-07-31 23:32:43 +02:00
Kevin Minehart
925e19acf2 CI: set source-event in release-build dispatch (#109009)
* set source-event in release-build dispatch

* missing inputs key
2025-07-31 15:33:27 -05:00
Kevin Minehart
598cc585bd CI: Push dev images from PRs and remove Drone from PRs (#109004)
* Push docker images in PRs and remove Drone

* fix actionlint errors

* grep for docker doesn't need another grep
2025-07-31 14:25:59 -05:00
alerting-team[bot]
0553c2494f Alerting: Update alerting module to b4b881b7b2631baa3a1ae2911f723c5c1d6e53f6 (#108872)
[create-pull-request] automated change

Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com>
2025-07-31 14:37:36 -04:00
Adam Simpson
2d1271e981 query service: improve error handling and logging (#108948)
Co-authored-by: Sarah Zinger sarah.zinger@grafana.com
Co-authored-by: Gábor Farkas gabor.farkas@gmail.com
2025-07-31 14:10:21 -04:00
Dave Henderson
e0dd56e4c7 fix(swagger): Fix swagger/OpenAPI defs for /api/anonymous/* endpoints (#108999)
Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2025-07-31 14:08:42 -04:00
dependabot[bot]
3587439fb8 Bump cypress-io/github-action from 6.7.16 to 6.10.2 (#108649)
Bumps [cypress-io/github-action](https://github.com/cypress-io/github-action) from 6.7.16 to 6.10.2.
- [Release notes](https://github.com/cypress-io/github-action/releases)
- [Changelog](https://github.com/cypress-io/github-action/blob/master/CHANGELOG.md)
- [Commits](108b8684ae...b8ba51a856)

---
updated-dependencies:
- dependency-name: cypress-io/github-action
  dependency-version: 6.10.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-31 13:58:23 -04:00
Ihor Yeromin
66b01e49a1 Canvas: Pan and zoom improvement (#86879)
* fix(canvas): style linter issue

* feat(canvas): update infinite viewer root element

* fix(canvas): resize element on moving

* fix(canvas): global element position

* fix(canvas): connection anchor position

* fix(canvas): connection position

* fix(canvas): connection coordinates calculation

* cleaning

* fix(canvas): calculation connection coordinates

* fix(canvas): initial connections svg position

* fix(canvas): align connection with new coordinates system

* fix(canvas): temporary element position fix

* comment

* Canvas: Fix canvas selecto (#104621)

* fix(canvas): get context back

* fix(canvas): selecto containers

* clean up

* Canvas: Fix jumpy elements behaviour on select and drag (#104641)

fix(canvas): jumpy elements behaviour on select and drag

* fix(canvas): connection regression (#104682)

* Canvas pan + zoom:  Updated mouse interactions (#104648)

* feat: canvas panel pan + zoom key binds

* feat: panning when right click + ctrl

* chore: some cleanup

* chore: adjust mouse move delta by canvas scale

* Canvas: Zoom to content (#104950)

feat(canvas): zoom to content

* Canvas pan + zoom: Unique key for canvas panel elements (#104947)

fix: unique keys

* Canvas: Placement adjustment (#105117)

* feat(canvas): top/left placement migration

* feat(canvas): adjust constraint system for pan and zoom usage

* feat(canvas): support other constraints

* Canvas: Align connection anchors and element rotation (#106002)

* feat(canvas): align connection anchors and element rotation

* clean up

* clean-up math

* Canvas: Disable pan when pan+zoom toggle is false (#106224)

chore: no pan when pan+zoom toggle is disabled

* Canvas: Fix desync between scene and InfiniteViewer zoom/position on element addition (#106655)

feat(canvas): keep pan and zoom state to re-apply

* Canvas: Clicking on metricValue dropdown does not work; right-click triggers context menu instead (#106701)

fix(canvas): metricValue left click dropdown

* Canvas: Double-click on canvas should reset scale and position (#106709)

fix(canvas): dblclick to reset zoom

* Canvas: Put new canvas pan and zoom under feature toggle (#107001)

* feat(canvas): put pan and zoom under FF

* clean-up

* clean-up

* fix(canvas): clear selection on scene manipulation

* fix(canvas): any types

* Canvas: Fix canvas apply styles (#107404)

* fix(canvas): apply styles

* remove deps

* Canvas: E2E test coverage (#107474)

* betterer

* feat(canvas): sceneAbleManagement tests

* feat(canvas): playwright tests

* chore(canvas): add draft e2e tests

* chore(canvas): clean draft e2e tests

* chore(canvas): fix draft e2e tests

* chore(canvas): todo comments

* chore(canvas): update e2e tests

* chore(canvas): delete scene unit tests

* chore(canvas): delete sceneAbleManagement unit tests

* chore(canvas): delete sceneAbleManagement unit tests

* chore(canvas): linter

* chore(canvas): locales

* chore(canvas): remove flag checking

* Fix canvas connection point z-indexing bug (#107223)

fix(canvas): hoist connect points one level higher in DOM to fix z-index

* Revert "Fix canvas connection point z-indexing bug" (#108146)

Revert "Fix canvas connection point z-indexing bug (#107223)"

This reverts commit e419cb164a.

* Canvas: Set canvas zoom range (#108318)

* chore(canvas): set zoom range

* chore(canvas): naming

* Canvas: Fix infinite-viewer connections viewport values (#108315)

chore(canvas): infinite-viewer connections viewport values

* Canvas: Fix z-indices order and explicit pointer events (#108284)

* fix(canvas-connection-points): z-indices order, explicit pointer events

* chore(canvas): remove user select

* chore(canvas): naming

* chore(canvas): create ConnectionAnchor2 component

---------

Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com>

* Canvas: Hide anchors on panel resize (#108588)

chore(canvas): hide anchors on panel resize

* Canvas: Center & scale select, resize, zoom bugs (#108749)

* Canvas: Fix center and scale constraint with zoom

* Remove unused resize flag

* Consolidate and clean up

* fix(canvas): re-size scale and center elements

---------

Co-authored-by: Ihor Yeromin <yeryomin.igor@gmail.com>

* Canvas: Fix on constraint change during zoom (#108947)

* Canvas: Ensure correct panel size during edit (#108953)

* chore(canvas): re-gen cue

---------

Co-authored-by: drew08t <drew08@gmail.com>
Co-authored-by: Sven Grossmann <svennergr@gmail.com>
Co-authored-by: Alex Spencer <52186778+alexjonspencer1@users.noreply.github.com>
Co-authored-by: Jesse David Peterson <jesdavpet@users.noreply.github.com>
Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
2025-07-31 19:34:48 +02:00
Josh Hunt
400aeccb35 FS: Speed up backend build-reload cycle (#108889)
* wip so far. need to prove rebuilds work

* build common runner image

* glibc support

* ubuntu

* add conditional

* add support for cross-os builds

* format

* don't use zig by default on macos

* use postgres

* tidy up

* more tidy

* update readme

* remove errant changes
2025-07-31 17:22:29 +01:00
Ashley Harrison
68d7c970b5 e2e: Ensure we build the grafana binary when starting up the playwright server (#108992)
* ensure we build the grafana binary as part of the playwright server startup

* only build if binary isn't there

* add comments

* handle building the binary in the start-server script
2025-07-31 17:18:58 +01:00
renovate[bot]
b990c7e7af Update dependency @stylistic/eslint-plugin-ts to v4 (#108995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 17:18:32 +01:00
Matheus Macabu
4b27b0108e Secrets: Update package in go.mod with consolidate proto+grpc (#108994) 2025-07-31 18:14:40 +02:00
renovate[bot]
291ec08150 Update dependency @npmcli/package-json to v6 (#108991)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 15:47:59 +00:00
Paul Marbach
2e6534f489 Table: Reorder cell types selector (#108629)
* Table: Reorder cell types selector, add Alpha denotation in TableNG for Pills

* fix i18n

* remove alpha badge

* reorder in docs and TableRT

* fix i18n
2025-07-31 11:45:43 -04:00
renovate[bot]
0aac22a9e2 Update dependency @manypkg/get-packages to v3 (#108986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 15:19:29 +00:00
Oscar Kilhed
ef0cc4fd75 Dashboards: Fix issue where the time range picker would seemingly be hidden behind the side menu if it was set to always open. (#108607)
Unset overflow hidden to make sure the time range picker is fully visible
2025-07-31 17:13:23 +02:00
kay delaney
aa0f9bb1a0 UI/ClickOutsideWrapper: Convert to functional component and add test (#108765) 2025-07-31 16:09:30 +01:00
Dana Axinte
2d81d03ba5 SecretsManager: Consolidation proto/gRPC (#108857)
* list all encrypted values and count

* separate interfaces

* add time filter to global queries

* initial secrets consolidation

* Revert defaults

* consolidate grpc proto

* More verbose description of the operation

* Add consolidation tests and tracing

* Fix lint

* Revert debug log

* Move buf to top level, regenerate

* Update Makefile buf generate
2025-07-31 16:05:24 +01:00
Tom Ratcliffe
4a0758bae5 Teams: Tidy up CreateTeam tests and add fixtures/handlers (#108978)
* Add fixtures and mock handlers for legacy teams API

* Fix teams betterer issues and error handling

* Refactor CreateTeams tests

* Update .betterer.results
2025-07-31 16:01:43 +01:00
Paul Marbach
0ca2843fa3 E2E: Disable flaky Table e2e tests for DataLinks for now (#108980) 2025-07-31 10:56:06 -04:00
Yunwen Zheng
beab4cb33c useProvisionedRequestHandler: Refactor to support more resource type (#108945)
* useProvisionedRequestHandler: refactor to support more resource type
2025-07-31 10:48:08 -04:00
Larissa Wandzura
0cc636665a Docs: MSSQL data source overhaul (#107478)
* created config doc

* updated the config doc

* updates to the configure doc

* updates to configure doc

* updated the templates doc

* more query editor edits

* final edit on templates doc

* final query editor edits and new screenshots

* added tables to configure

* final edits

* final edits

* final edits

* added admonition and updates based on feedback

* ran prettier
2025-07-31 14:44:24 +00:00
Matheus Macabu
c3f6265698 Makefile: Fix typo on run-bra command (#108979)
It was actually run-air but should be run-bra !
2025-07-31 14:43:29 +00:00
Matheus Macabu
cfb5f5601f Secrets: Add inline secure value can reference method (#108965) 2025-07-31 16:42:40 +02:00
renovate[bot]
d2c008c96e Update typescript-eslint monorepo to v8.38.0 (#108985)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 14:35:01 +00:00
Tobias Skarhed
972e2f31e5 ScopesInput: Display parent and use + as separator (#107698)
* Display group and use + as separator

* Set/get parent node from URL

* Add hook useScopeNode

* Add loading state and Skeleton

* Add preload and actually commit hook

* Add preload

* Add feature flag

* Update test

* Fix test

* Fix tree test
2025-07-31 16:32:41 +02:00
Yuri Tseretyan
32434810e1 Alerting: Remote Alertmanager to calculate hash of the request payload instead of just the configuration (#108632)
* update CreateGrafanaAlertmanagerConfig to accept UserGrafanaConfig move construction logic to alertmanager
* consolidate building UserGrafanaConfig into buildConfig
* use config to determine whether it needs to be send calculate hash of the entire request struct rather than configuration
2025-07-31 10:25:43 -04:00
Piotr Jamróz
7d8c2fbb82 TraceView: Refine UI visual hierarchy inside details section (#108929)
* TraceView: Span details content redesign

* Unify displaying various sections in span details

* Revert i18n key change

* Update tests
2025-07-31 16:18:53 +02:00
renovate[bot]
f3cb8aa903 Update swc monorepo (#108981)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 15:07:55 +01:00
Dana Axinte
a3cdfce25a SecretsManager: Consolidation service and ability to run via cli (#108774)
* list all encrypted values and count

* separate interfaces

* add time filter to global queries

* initial secrets consolidation

* Revert defaults

* More verbose description of the operation

* Add consolidation tests and tracing

* Fix lint

* Revert debug log
2025-07-31 14:45:59 +01:00
Konrad Lalik
9907191a7b Alerting: List V2 - Add a group link to the rule list item (#108960)
* Add group link to the aler rule breadcrumbs in the new list view

* Remove redundant comments
2025-07-31 15:32:33 +02:00
renovate[bot]
37ccbd77a9 Update react-spectrum monorepo (#108977)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 14:30:17 +01:00
Gábor Farkas
5a67e9d640 query: add unit test (#108958) 2025-07-31 15:26:43 +02:00
renovate[bot]
9e0f09e6c3 Update dependency yaml to v2.8.0 (#108975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 13:03:27 +00:00
Ryan McKinley
d469a32491 K8s/DataQuery: Register explicit equality function (#108907) 2025-07-31 14:55:02 +02:00
Alexa Vargas
9d2cb8ddf1 Query Library: Add highlightQuery to QueryLibraryContext (#108617)
* add hightlightedQuery to QueryLibraryContext

* revert go changes
2025-07-31 14:52:12 +02:00
renovate[bot]
454fae1786 Update dependency webpack to v5.101.0 (#108972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 12:37:33 +00:00
dependabot[bot]
41df2e9d26 Bump actions/setup-go from 4.2.1 to 5.5.0 (#108286)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-31 13:27:36 +01:00
renovate[bot]
3e752c2e35 Update dependency typescript to v5.8.3 (#108966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 13:11:46 +01:00
lean.dev
e022b6593b SecretsManager: fix log (#108970) 2025-07-31 11:51:04 +00:00
Peter Štibraný
372f115db9 Finish building index even if original context is canceled. (#108969) 2025-07-31 13:45:55 +02:00
Bogdan Matei
6cd85eb1b3 Dashboard: Fix for viewing a repeated panel that is out of view (#108912) 2025-07-31 13:33:03 +03:00
Gareth
04a563cb09 Jaeger: remove unused code (#108612)
* remove isSearchFormValid

* remove getTimeRange

* remove convertTagsLogfmt

* remove createTableFrame

* remove transformToLogfmt

* remove types

* remove mapJaegerDependenciesResponse

* trigger workflow
2025-07-31 11:30:15 +01:00
renovate[bot]
a3e1920983 Update dependency ts-jest to v29.4.0 (#108964)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 11:14:02 +01:00
Alexander Akhmetov
1ad042b4e0 Alerting: Mark Prometheus to Grafana conversion API as stable (#103499)
Alerting: Make Prometheus conversion API stable
2025-07-31 11:56:15 +02:00
Oscar Kilhed
e7cfe0c023 Dashboards: Add feature toggle to use dashboard level time macros in scenes (#108670)
* Add feature toggle to use dashboard level time macros in scenes

* Add test

* remove unregister time macro as it was removed from scenes
2025-07-31 11:49:07 +02:00
renovate[bot]
d71924ea7b Update dependency stylelint to v16.23.0 (#108963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 10:39:29 +01:00
Serge Zaitsev
6b1143565a Chore: Make cgo optional (for sqlite) (#108756)
* make cgo optional for sqlite

* update go.mod; check error code differently

* reduce api surface even more

* move test errors into sqlite package

* add a comment
2025-07-31 09:25:19 +00:00
Roberto Jimenez Sanchez
f39b878b0a Add Git Sync team as owner of the Git Sync dependencies 2025-07-31 11:14:27 +02:00
Roberto Jimenez Sanchez
c9cf44c4d7 Add Git Sync team as owner of the integration tests 2025-07-31 11:14:27 +02:00
renovate[bot]
8b600f40c1 Update dependency eslint-plugin-no-barrel-files to v1.2.2 (#108961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 08:50:01 +00:00
Matheus Macabu
80d7892d6a Secrets: Save owner reference fields in secure value db table (#108905)
* Secrets: Save owner reference fields in secure value db table

* Save api group and version separately
2025-07-31 10:42:19 +02:00
Tobias Skarhed
66bebe94e0 Scopes: Add autofocus, aria-label and search area to selector (#108906)
* Add autofocus, aria-label and search area

* Clean up search area

* Clean up search area

* Add test

* Remove superflous memo

* Undo values change
2025-07-31 10:28:24 +02:00
Ivana Huckova
b11509fea2 Loki: Decouple unit tests from core (#108917)
* Loki: Decouple tests

* Fix flaky tests

* Add maxParallel 2 for plugin tests
2025-07-31 10:20:28 +02:00
renovate[bot]
6809df5427 Update dependency jsdom-testing-mocks to v1.15.2 (#108940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 09:18:32 +01:00
Alexander Akhmetov
6db07b901c Alerting: Enable HA clustering in remote primary mode (#108930) 2025-07-31 09:55:08 +02:00
Bruno Abrantes
91e5e8019d chore: add documentation on unified search (#108847)
* chore: add documentation on unified search

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: add additional needed feature flags for unified search

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: add docs about index_min_count and index_max_count

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: add documentation about sortable fields and the discrepancy with search/sortable

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: kubernetesClientDashboardsFolders feature flag is no more, remove it from the docs

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: simplify request flow diagrams

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

---------

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-31 07:18:29 +00:00
Konrad Lalik
ef80129bd9 Alerting: Fix contact points scoped permission check (#108851)
* Fix scoped contact point permission check

* Use annotations permissions for k8s API and globals permissions for external AMs

* Fix scoped permission check for GrafanaReceiverForm
2025-07-31 09:17:42 +02:00
grafana-pr-automation[bot]
f1821988d9 I18n: Download translations from Crowdin (#108954)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-31 00:40:54 +00:00
Todd Treece
8729ea2dba Apps: Fix status key functions (#108915) 2025-07-30 17:11:39 -04:00
Adela Almasan
0f53290ca7 Chore: Decouple hideFrom.viz and hideFrom.tooltip (#106857) 2025-07-30 15:32:43 -05:00
Adela Almasan
9022357fb7 Canvas: Add option to disable the tooltip (#108196) 2025-07-30 20:26:36 +00:00
Adela Almasan
5b0a118f32 Canvas: Add support for actions variables when one-click is enabled (#108724) 2025-07-30 14:28:58 -05:00
Ezequiel Victorero
eecd813c59 Chore: Update test case (#108943) 2025-07-30 16:02:36 -03:00
lean.dev
6bf542889a SecretsManager: Refactor and clean metrics (#108908) 2025-07-30 20:00:30 +01:00
Adam Yeats
8fb1483a9f Elasticsearch: Remove link to Elasticsearch Templated Dashboard from docs (#108555)
Remove link to Elasticsearch Templated Dashboard from docs
2025-07-30 18:12:59 +00:00
Juan Cabanas
68ed7c129d QueryLibrary: Add CoreApp for QueryEditor rendering (#108867) 2025-07-30 15:12:35 -03:00
Sarah Zinger
60ce4ad1fa Ds-querier: add slug to logs (#108822) 2025-07-30 17:46:38 +00:00
Stephanie Hingtgen
34019e5ec0 Library Panels: Remove k8s connections feature flag (#108881) 2025-07-30 16:46:19 +00:00
Alexander Akhmetov
c8c017a6f5 Chore: make update-workspace (#108942) 2025-07-30 18:37:33 +02:00
Nathan Marrs
af6ac6f1d6 Sharing: Export dashboard as image match user's window width (#108827) 2025-07-30 08:59:39 -07:00
renovate[bot]
ae15ba562e Update dependency @types/node to v22.17.0 (#108936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 16:47:15 +01:00
renovate[bot]
9ff44d17f2 Update dependency @floating-ui/react to v0.27.15 (#108922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 15:52:56 +01:00
Ashley Harrison
4fae330f9b Chore: update nginx config to match hosted-grafana (#108898)
update nginx config to match hosted-grafana
2025-07-30 15:36:57 +01:00
Peter Štibraný
c28b2215e0 Improve indexing observability (#108901)
* Add details to tracing spans when creating index.

* Log reason for building index.

* Log reason for building index.

* Remove initialization of labels to avoid unnecessary metrics.

* Track succcessful, failed and skiped index builds. Track index build time for individual index, not all indexes.

* Revert removal of labels initialization.
2025-07-30 16:34:15 +02:00
Mustafa Sencer Özcan
98e37f2ca9 fix: special handling of unmarshalling for invalid json dashboards (#108519)
* implement special dashboard fallback logic when dashboard data has invalid json behind feature flag

---------

Co-authored-by: Will Assis <william@williamassis.com>
2025-07-30 10:18:38 -04:00
Adam Yeats
4a34a2313c InfluxDB: Fix backend queries sharing time ranges (#108873)
Fix backend queries sharing time ranges
2025-07-30 09:14:44 -05:00
Usman Ahmad
f7f8a52bda MySQL documentation major improvements (#107690)
* added keywords and fixed description

* Update (dateColumn) description

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Mount docs from the current repository

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>

* Clean up variables

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>

* Improve timeFilter and timeGroup macro description

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Fix timefilter macro example formatting

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Fix time macro example formatting

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Remove extra spaces from timefilter macro example

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Introduce new table and Add examples for time, timeFilter and timeGroup Macros

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Improve existing examples of timeGroupAlias Macro

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Remove data frame description

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* fixed the homepage with valid links

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* Add Table Panel results for Macros

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* fixed and define the configuration part for grafana mysql user

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* fixed port typo

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* remove the sqlDatasourceDatabaseSelection based https://github.com/grafana/grafana/issues/105232

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* added annotation single tag example

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* Change format type

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* fix minor typos and run prettier

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* Address Macros specific changes

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* Revert column name and replace URL with version substitution

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>

* re-added the text for the feature flag

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* revert back the changes for the grafana mysql usage

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* fixed links as per writers toolkit guide

* run prettier

Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>

* Update docs/sources/datasources/mysql/query-editor/_index.md

thanks

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

---------

Signed-off-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Usman Ahmad <usman.ahmad@grafana.com>
Co-authored-by: Sheikh-Abubaker <sheikhabubaker761@gmail.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2025-07-30 09:03:44 -05:00
renovate[bot]
04c53678fa Update React Aria (#108895)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 15:03:10 +01:00
Ashley Harrison
87f587507a Frontend service: Ensure we're always loading either the light or dark assets for any theme (#108902)
ensure we're always loading either the light or dark assets for other themes
2025-07-30 15:01:35 +01:00
Kevin Minehart
788e91c57b CI: remove nightly builds in drone (#108913)
remove nightly builds in drone
2025-07-30 13:43:47 +00:00
Dominik Prokop
d790fdf081 Schema V2: Fix apiVersion for conversion to v2beta1 (#108916)
SchemaV2: Fix apiVersion for conversion to v2beta1

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-07-30 13:38:43 +00:00
Ezequiel Victorero
006ea8e1b9 ShortURL: Fix tests and small refactor (#108871) 2025-07-30 10:31:11 -03:00
Dominik Prokop
bb45dc88ac Dashboard: Tweak interaction performance tracking (#108658)
* Dashboard: Tweak interaction tracking

* Bump scenes to canary (https://github.com/grafana/scenes/pull/1195)

* Update naming

* Use latest canary

* Update cenes, introduce singleton dashboard profiler, instrument v2 schema dashboard

* Fix an oooooqpsiiii

* Bmp scenes to 6.28.5

* Add documentation

* Add event start/end time stamps, update documentation. Bump scenes

* Docs

* Move file

* Typos
2025-07-30 15:23:48 +02:00
Dominik Prokop
20b08ccaab Add v2beta1 api version: Consolidate schema breaking changes (#108172)
* Revert "Revert: Future-proofing query and data source model in Dashboard Sche… (#107985)"

This reverts commit 13a89d4ae3.

* Revert "Revert "Schema V2: Simplify annotations v1<->v2 conversions" (#107984)"

This reverts commit 2b8c5bea1a.

* make gen apps

* e2e update

* Use v2alpha2 by default (#108177)

* Use v2alpha2 by default

* Apply only DS changes to alpha2

* Use v2alpha2 by default except to query

* Create a v2 index in @grafana/schema

* Update path and apply lint

* Update tests

* Update imports to v2 status

* Fix failing openapi test

* Schemav2 breaking changes: conversion implementation (#108224)

* provision v2alpha1 dashboard

* Run conversions for DS refactor

* Run snapshot testing on conversions

* Normalize output name

* Update snapshots to include all panel and variable cases

* fix lint

* fix lint

* fix test and go lint

* more go lint

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>

* Schema v2: Introduce group/datasource convention to GroupBy and AdHoc variable (#108237)

* Schema v2: Introduce group/datasource convention to GroupBy and AdHoc variables

* add conversion

* App Installer: Authorizer support (#108419)

* Chore: use `satisfies` and remove a load of `any`s (#108397)

use satisfies and remove a load of anys

* improve logging and fail unified-storage migration with more than 0 errors (#108471)

improve logging and fail unified-storage migration with more than 0 errors

* fix conversion test

* Secrets: Create more granular fixed roles for SecureValues (#108382)

* Provisioning: Fix bug in job progress recording (#108440)

Fix bug in job progress recording

* Provisioning: Fix ImportAllPanelsFromLocalRepository test (#108441)

* Provisioning: Skip flaky test

* Fix flaky provisioning test

* Fix lint

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>

* BulkDeleteProvisionedResource: Move progress bar into a second step (#108417)

* Move progress bar into a second step

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* [Dashboard Schema Codegen] Move dashboard CUE codegen block back up into kind body (#108476)

[Dashboard Schema Codegen] Move dashboard CUE codegen block back up into kind body to make sure new versions have the same settings.

---------

Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Will Assis <35489495+gassiss@users.noreply.github.com>
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
Co-authored-by: Roberto Jiménez Sánchez <jszroberto@gmail.com>
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
Co-authored-by: Yunwen Zheng <yunwen.zheng@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Austin Pond <IfSentient@users.noreply.github.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>

* Dashboard Schema V2: Refactor VizConfigKind to follow DataQueryKind convention (#108148)

* Dashboards API: Register v2alpha2 API

* Prepare conversion functions

* Fix test

* Refactor VizConfigKind to follow DataQueryKind convention

* fix tests

* use new dataquerykind convention alpha 2

* add conversion

* fix tests

* fix tests

* fix another test

* Fix merge

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* fix k8s codegen

* Update e2e-playwright/dashboards/TestV2Dashboard.json

* Update e2e/dashboards/TestV2Dashboard.json

* revert app generation for non-related apps

* try again

* another try

* also revert folder and secret app generation

* v2alpha1 provisioned dashboard

* Fix kind

* Fix conversion snapshots

* Update API discovery registry

* Rename to v2beta1

* Rename migrations

* Update apps/dashboard/pkg/apis/dashboard/v2beta1/doc.go

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

* Ensure conditional rendering and other non changed properties

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Will Assis <35489495+gassiss@users.noreply.github.com>
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
Co-authored-by: Roberto Jiménez Sánchez <jszroberto@gmail.com>
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
Co-authored-by: Yunwen Zheng <yunwen.zheng@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Austin Pond <IfSentient@users.noreply.github.com>
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-07-30 15:01:27 +02:00
Ashley Harrison
f92752c2f0 Chore: Harden panel-layouts test by wrapping synchronous checks in .toPass() (#108849)
harden panel layouts test by wrapping synchronous checks in .toPass()
2025-07-30 13:59:32 +01:00
Jason Marshall
599fe5a400 Remove deprecated links tags in favor of depends_on (#106680)
These prevent grafana from working with podman.
2025-07-30 14:49:17 +02:00
Zoltán Bedi
3ff4c6a2d2 Postgres: Switch the datasource plugin from lib/pq to pgx (#108443)
* Postgres: Switch the datasource plugin from lib/pq to pgx

* Fix lint
2025-07-30 14:47:25 +02:00
Jack Westbrook
b707cd28f1 Frontend: Move toEmit jest matchers to shared workspace (#108610)
* feat(test-utils): move the toEmitValue/s jest matchers to test-utils and add test script

* chore(jest): update configs to use matchers from test-utils package

* ci(frontend-tests): hook up packages tests

* fix(test-utils): re-export matchers from index.ts so packages that include setupTests don't error

* ci(pr-frontend-unit-tests): add frontend-packages-unit-tests to list of required unit tests

* Update packages/grafana-test-utils/README.md

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

---------

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2025-07-30 14:39:44 +02:00
Alexa Vargas
afdb3d7c95 Chore: Change Public Dashboards and Image Renderer AutoTriage to operator experience squad (#108910)
Chore: Change Public Dashboards AutoTriage to operator experience squad
2025-07-30 12:27:22 +00:00
Tom Glenn
e87fba7dc1 Tom/foundation sdk docs (#106283)
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2025-07-30 11:50:00 +00:00
Gilles De Mey
07a561d24e Alerting: Remove incorrect usage of "title" for alerting page wrapper (#108180) 2025-07-30 10:10:10 +00:00
Yulia Shanyrova
d14e794aa4 Plugins: Cards view for plugin versions in case of narrow screen (#108843)
add card view for narrow screen for versions table
2025-07-30 11:44:43 +02:00
Gilles De Mey
5ef3201939 Alerting: Paginate data source managed rules within groups (#108803) 2025-07-30 11:44:03 +02:00
Andre Pereira
d5bcc606b0 Trace View: Header redesign (#108473)
* Improve trace view header design

* Added plugin extension for more actions

* Translations

* Tweaks based on feedback

* lint

* Limit to 2 links per plugin

* Add datasource to context so LLM has less to figure out

* Fix conflict :)

* Remove unused file

* i18n extract

* Updated tests

* lint

* Re-add the feedback link

* i18n-extract

* fix tests

---------

Co-authored-by: Joey <joey.tawadrous@grafana.com>
2025-07-30 09:20:39 +00:00
Andreas Christou
e10063b0c7 Azure: Bump Azure SDK (#108859)
* Bump Azure SDK

* Workspace sync
2025-07-30 10:16:33 +01:00
Tobias Skarhed
6c3233e775 Scopes: Proper usage of checkbox label (#108892)
* Proper use of label for checkbox

* Cleanup
2025-07-30 11:01:27 +02:00
renovate[bot]
b6819a2212 Update dependency react-i18next to v15.6.1 (#108890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 08:58:57 +00:00
Bruno Abrantes
a81c28b153 chore: include stackId when marking a dashboard as rejected during migration (#108887)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-30 08:37:10 +00:00
Roberto Jiménez Sánchez
f4e45bf3bc Provisioning: bulk move by name (#108869)
* Add ResourceRef to move job spec
* Implement move by name
* Use map to struct
2025-07-30 11:30:24 +03:00
renovate[bot]
f4335fc5ce Update dependency kbar to v0.1.0-beta.48 (#108844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 09:26:36 +01:00
grafana-pr-automation[bot]
79a9981a0b I18n: Download translations from Crowdin (#108882)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-30 08:21:53 +00:00
Josh Kirkwood
8bfaac5ec5 Docs: Updated 'Run Grafana Docker image' with minor cosmetic changes. (#108831)
* Update index.md

Adjusted codeblock formatting from yaml syntax rather than bash.

* Ran 'yarn prettier write' in index.md to ensure formatting was correct after completing prior changes.
2025-07-30 08:15:34 +00:00
Ashley Harrison
664188b7e0 Chore: Remove panels-suite from cypress tests (#108709)
remove panels-suite from cypress tests
2025-07-30 09:15:01 +01:00
Jennifer Villa
af066d2312 Explore: Compact mode (#107351)
* feat(explore): implement compact mode feature

This commit implements compact mode for Grafana Explore to address issue #102867.

Features implemented:
- URL parameter support: ?compact=true or ?compact=1 activates compact mode
- Query rows auto-collapse: Query editors start collapsed showing summary line
- Content outline auto-collapse: Sections start collapsed to save space
- Single DrilldownAlertBox: Shows single banner in split view (no duplicates)

Changes:
- Added compactMode to ExploreState interface and selectors
- Added URL parameter parsing in useStateSync hook
- Modified QueryRows and QueryEditorRow components to support compact mode
- Updated DrilldownAlertBox logic to prevent duplicates in split view
- Fixed test files to use proper mock state objects

Fixes #102867

* Move compact mode to pane state and sync with URL

* Clean up

* Show Drilldown alert box only when not splitted

* Rename and clean up

* Clean up

* Add missing props

* Add missing props

* Add missing translations

---------

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2025-07-30 09:20:01 +02:00
Stephanie Hingtgen
1f025fe1a3 K8s: Remove kubernetesClientDashboardsFolders feature flag (#108626) 2025-07-29 16:52:57 -05:00
Kevin Minehart
e3cb84bef8 CI: specify what matrix jobs set the --verified flag (#108880)
specify what matrix jobs set the --verified flag
2025-07-29 15:40:30 -05:00
Alexander Akhmetov
c827ddf790 Alerting: Add meta-monitoring documentation for GRAFANA_ALERTS (#108785) 2025-07-29 21:54:44 +02:00
Alexander Akhmetov
412704c9de Alerting: Document Mimir compatibility for Prometheus conversion API endpoints (#108741)
Document Mimir compatibility for Prometheus conversion API endpoints
2025-07-29 21:53:24 +02:00
Gabriel MABILLE
69dc5a0b88 grafana-iam: Add resolver for permissions:type:delegate (#108789)
* `grafana-iam`: Add resolver for `permissions:type:delegate`

* roles create -> write
2025-07-29 21:11:06 +02:00
Yunwen Zheng
2b9a646599 Git Sync: Bulk move resource (#108818)
* Bulk move for provisioning resources
2025-07-29 14:29:22 -04:00
Sam Jewell
2174a84b36 BarChart: Add ad-hoc filter button to tooltip (#107874)
**What is this feature?**
Allow AdHoc filters to be set from Tooltips when clicking on bars in the BarChart panel.

**Why do we need this feature?**
We're trying to implement a "Panel to Panel" filtering behaviour, similar to what is possible in Tableau and Looker. We're using AdHoc filters, as these scale well across panels and across dimensions in the data.
We expect this PR will work well in tandem with #108011 to allow panel-to-panel filtering of data coming from BigQuery.

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-07-29 18:53:43 +01:00
Thomas Bishop
89cd2284cb Update some labels to now triage to SNO instead of FEP or Dashboard Squads (#108717) 2025-07-29 12:18:40 -05:00
Kevin Minehart
35f0dd8ec3 CI: remove ppcle64 and 390x from viceroy dpkg (#108866)
* remove ppcle64 and 390x from viceroy dpkg

* fix apt-get update

* remove armel
2025-07-29 16:53:13 +00:00
Gilles De Mey
29b30a38f0 Alerting: Adds "testing" target to package (#107728) 2025-07-29 16:46:16 +00:00
Matias Chomicki
dd6a3ecd62 New Logs Panel: highlighting improvements (#108858)
* LogLine: emphasize values over keys

* LogLine: extend clickable area

* Revert "LogLine: extend clickable area"

This reverts commit 7e6906312c.
2025-07-29 17:53:30 +02:00
Peter Štibraný
41319f90bb search: Handle index build errors gracefully (#108862)
* Close new index if we fail to build it.

* Respect context cancellation in getOrCreateIndex.
2025-07-29 17:40:16 +02:00
Roberto Jiménez Sánchez
1a246739ed Provisioning: Add bulk move job (#108762)
* Add move job to spec

* Add move worker

* Single commit mode

* Add initial integration tests

* Format code

* Improve test setup

* Add fixes for integration tests

* Implement move operation

* Format file

* Fix API documentation
2025-07-29 17:24:17 +02:00
Ivana Huckova
66be589d86 Loki: Fix tests for test decoupling (#108678)
* Loki: Fix tests for test decoupling

* Update

* Add test and fix implementarion

* Remove empty line

* prettier
2025-07-29 16:32:09 +02:00
Kevin Minehart
5ce827ce4c CI: Use playwright in daggerbuild (#108860)
* Use playwright in daggerbuild

* use e2e-playwright image
2025-07-29 14:25:21 +00:00
Konrad Lalik
10e2c32b58 Alerting: List V2 - add fuzzy search (#108656)
* Extract fuzzySearch to separate files and add fuzzy search to the listV2 filter

* Use the new fuzzy helpers in the old list view

* Extract more code to common fuzzy functions

* Update tests

* Add comments explaining outOfOrder parameter, improve tests

* Migrate the alerting fuzzySearch to @grafana/data fuzzySearch
2025-07-29 16:23:36 +02:00
Alex Khomenko
2bd023edc0 Provisioning: Enable navigating to previous step (#108834)
* Provisioning: Enable navigation to previous step in Wizard

* Show confirmation modal

* Show success message

* Extract
2025-07-29 16:49:51 +03:00
Tania
2c7349f863 OpenFeature: Use types from Go Feature Flag pkg (#108802)
* Use go feature flag types

* Add go-feature-flag module

* Update go.mod

* Update test

* Fix
2025-07-29 15:05:59 +02:00
Stephanie Hingtgen
ef9f9c2d8e Secrets service: Allow decrypt through gRPC connection (#108365) 2025-07-29 07:51:37 -05:00
kay delaney
73d64d3e46 Undo/Redo: Add undo/redo support for duplication in custom grid layout (#108850)
* Undo/Redo: Add undo/redo support for duplication in custom grid layout

* Fix i18n
2025-07-29 12:34:38 +00:00
Roberto Jiménez Sánchez
c7c0268594 Provisioning: bulk delete resources by name (#108833)
* Add resource reference to spec

* Add FindResourcePath

* Fix formatting

* Use ForKind client

* Add unit test for new method

* Format code

* Add integration tests

* Fix unit tests

* Fix formatting

* Find out preferred version based on group and kind

* Handle trailing slash for folders

* Format code

* Fix linting

* Add integration test for folder bulk deletion

* Format code

* Format discovery file

* Deduplicate paths for deletion
2025-07-29 14:29:35 +02:00
Ashley Harrison
720e724234 Playwright: Rename panel test so it has .spec.ts suffix (#108855)
rename test so it runs in interactive mode
2025-07-29 13:25:56 +01:00
Stephanie Hingtgen
1716173f71 Alerting: Move some tests to full integration tests (#108747)
* Alerting: Move some tests to full integration tests

* add back two error handling tests

* imports

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-07-29 12:15:26 +00:00
Artur Wierzbicki
0c10600f95 Live: mention the lack of tls support for ha (#108837)
* clarify live docs

* pretty prettier
2025-07-29 16:06:07 +04:00
Peter Štibraný
d9daf2e424 search: Track number of open indexes per storage type. (#108842)
* Track number of open indexes per storage type.

* Fix tests after changing description.
2025-07-29 12:46:34 +02:00
kay delaney
df46b45a29 AutoGridLayoutManager: Add undo/redo functionality for pasting a panel (#108797) 2025-07-29 11:20:39 +01:00
Andreas Christou
c32aaf63e8 Graphite: Fix overflow of functions editor (#108524)
* Expose setting labelStyles for the Segment components

* Ensure container fills height of text

* Update label styles

* Use classNames instead

* Review

* Lint
2025-07-29 11:16:32 +01:00
Santiago
3c4c3b3f5c Remote Alertmanager: Remove unneeded SmtpFrom and StaticHeaders fields (#108781)
* Remote Alertmanager: Remove unneeded SmtpFrom and StaticHeaders fields

* remove smtpFrom (am struct)

* move smtp field (am struct)

* fix test
2025-07-29 12:14:42 +02:00
kay delaney
51a5b0ab65 Dashboards: Add undo/redo actions for several template variable options (#106818)
* Dashboards: Add undo/redo actions for several template variable options

Also refactors some existing undo/redo code

* Run `make i18n-extract`

* formatting
2025-07-29 10:05:32 +00:00
Stephanie Hingtgen
39b9700048 Folders: Move to integration tests (#108733) 2025-07-29 09:57:44 +00:00
grafana-pr-automation[bot]
af72ef31d1 I18n: Download translations from Crowdin (#108828)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-29 10:31:23 +01:00
renovate[bot]
69eda7bcd4 Update dependency @grafana/assistant to v0.0.12 (#108839)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 10:21:44 +01:00
Matheus Macabu
724c775bab Secret: Fix create/delete basic role configuration for secure values (#108840)
They should be for Admins not Editors
2025-07-29 11:19:39 +02:00
Joey
862c92d2be Tempo: Fix missing time range (#108838)
Fix missing time range
2025-07-29 09:55:29 +01:00
Aaron Sanders
a84c56e1ef Live: Raise Grafana Live message_size_limit (#108414) 2025-07-29 08:45:21 +00:00
renovate[bot]
168abf8488 Update dependency sass to v1.89.2 (#108811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 09:44:46 +01:00
Stephanie Hingtgen
38cdcb5efd Unistore: Fix federated stats (#108738) 2025-07-29 10:42:20 +02:00
Roberto Jiménez Sánchez
6af1bfe21b Provisioning: Use commit only once mode in bulk delete (#108759)
Use commit only once mode in bulk delete
2025-07-29 10:37:27 +02:00
Ashley Harrison
a2698dc3b5 Chore: Unskip some a11y story checks and fix any associated issues (#108613)
* fix some a11y issues with the stories

* fix lockfile

* fix tests

* put aria-label on <Icon>

* add aria-describedby

* undo changes to VizLegendTable

* use useID for image id
2025-07-29 09:30:18 +01:00
Stephanie Hingtgen
fe906dfc1e Dashboards: Move to integration tests (#108734) 2025-07-29 09:52:27 +02:00
Russ
4392cea75a chore: add an option to hide the metrics browser in a PromQueryField (#108718) 2025-07-28 14:23:41 -08:00
Drew Slobodnjak
bee169d7a6 Geomap: Add option to toggle no-repeating (#108201)
* Geomap: Add option to toggle no-repeating

* Add option and apply to all basemaps

* Clean up some comments

* Update docs

* Add tests

* Fix option change handling issues

* Update translations

* Fix e2e test
2025-07-28 14:06:33 -07:00
Paul Marbach
4b9e03e7c0 TableNG: Simplify row height calculation and make more extensible (#108624)
* TableNG: Simplify row height calculation and make more extensible

* add a cache for the results of rowHeight when it's a function

* JSDoc comment for util

* from the other branch, copy the related code and tests

* rework the line counters a bit, limit line counting to string fields

* add test for string case for buildRowLineCounters

* add the concept of estimates vs. counts

* add a comment

* ceil, not floor

* try to be as terse as possible

* test for estimates

* comment the type

* more comment in test

* swap

* fix #108804

* convert em letter spacing to px for avgCharWidth calculation

* tweak whee em-to-px math happens, and force count to occur on every row when wrap is on to avoid short row issues

* update test

* update to clamp single-line estimation using a hardcoded value (0.85)

* add assertion for not calling counter in that case

* uwrap 0.1.2

* fix betterer issues

* fix typography ctx extra import

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-07-28 21:03:55 +00:00
Gábor Farkas
8b940f210f datasources: querier: temporary concurrency fix (#108503) 2025-07-28 13:58:11 -04:00
Stephanie Hingtgen
caa75b1d94 Public dashboards: move to integration tests (#108735) 2025-07-28 17:14:09 +00:00
Stephanie Hingtgen
5ef744aa20 Library panels: Move to integration tests (#108737) 2025-07-28 11:38:10 -05:00
Stephanie Hingtgen
f41570a6f7 Annotations: Move to integration tests (#108736) 2025-07-28 11:37:17 -05:00
Will Assis
aa7ae5fc65 unified-storage: add tracing to distributor methods (#108791)
* add tracing to distributor methods
2025-07-28 12:35:20 -04:00
Josh Hunt
a009da2087 Playwright: Acceptance tests (#108770)
* create a set of acceptance tests to run with bench

* move tests back, fix login tests to work with supplied credentials:

* rename files again

* rename skip message
2025-07-28 17:32:18 +01:00
Ashley Harrison
672e6d08bf Chore: Remove old storybook-verification cypress test (#108696)
* add check for frontend code changing

* remove cache

* add to pr-e2e-tests instead

* fix CODEOWNERS

* remove cypress test
2025-07-28 17:25:02 +01:00
Ashley Harrison
b32a6b0088 Chore: Remove smoke-tests-suite from cypress (#108700)
* remove smoke-tests-suite from cypress

* restore shared/smokeTestScenario for enterprise
2025-07-28 17:21:10 +01:00
Alex Spencer
2dd655a50d Correlations: Fix flaky test (#108618)
* chore: fix flaky test

* chore: remove assert in equal, use require instead

* chore: skip flaky test
2025-07-28 09:14:30 -07:00
renovate[bot]
2ee0f93e8c Update scenes to v6.28.2 (#108809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 16:09:18 +00:00
renovate[bot]
d5fb158ebd Update dependency rollup to v4.46.1 (#108792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 16:43:04 +01:00
Angel Kozlev
2d3fde4607 Pyroscope: Remove LegacyForms from ConfigEditor (#104973)
* Pyroscope: Remove LegacyForms from ConfigEditor

* Pyroscope: Align fields in form

* Pyroscope: Add id to input and label for a11y

* Update public/app/plugins/datasource/grafana-pyroscope-datasource/ConfigEditor.tsx

---------

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Joey <joey.tawadrous@grafana.com>
2025-07-28 16:21:36 +01:00
Isabella Siu
e261d5f14a CloudWatch: Clear log groups when region is changed (#108727) 2025-07-28 10:58:21 -04:00
Alex Khomenko
4c6888654c Provisioning: Re-fetch folders after creating or deleting a repository (#108778)
* refetch folder

* Simplify refetches

* Cleanup

* Tests

* More test mocks

* Function selectors

* Comment

* Remove unused selector
2025-07-28 17:55:28 +03:00
Adam Simpson
6b4d93b8ec querier: check for headers to force expr parsing (#108701)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2025-07-28 10:42:32 -04:00
Ashley Harrison
fb53a6f077 Chore: Remove cypress dashboard-new-layouts tests (#108699)
remove cypress dashboard-new-layouts tests
2025-07-28 15:30:50 +01:00
Jacob Valdez
6aa3492f4e docs: add video shortcode to what's new (#108793) 2025-07-28 14:08:17 +00:00
Tania
27c395694d OpenFeature: Initialize early (#108594)
* Move OpenFeatureInit

* Remove unused import

* Remove todo
2025-07-28 16:05:57 +02:00
Jacob Valdez
2e07475605 docs: clarifying alert rule limits in Grafana cloud for migration assistant (#108722) 2025-07-28 08:58:13 -05:00
Bruno Abrantes
3a54c3abae chore: adds documentation around the dual writer (#108687)
* chore: adds documentation around the dual writer

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: innacuracies in error returned, disambiguate (validation) and move table upwards for more clarity

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

---------

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-28 15:50:26 +02:00
Luminessa Starlight
f7523f03bc TimeRangePicker: new date range format respecting timezone (#108616)
* replace new mapper additional code with new rangeUtil.describeTimeRange

* add some function descriptions

* add regression tests for timezone-respecting range mapping

* remove unused import
2025-07-28 09:08:35 -04:00
renovate[bot]
a3c96b6eed Update dependency @grafana/assistant to v0.0.11 (#108788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 12:54:17 +00:00
Todd Treece
0c1cd7fa58 Apps: Update grafana-app-sdk to v0.40.1 (#108786) 2025-07-28 12:34:09 +00:00
renovate[bot]
90de360424 Update dependency jsdom-testing-mocks to v1.14.0 (#108760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 13:29:00 +01:00
Matheus Macabu
227799a9f8 Secrets: Add missing indices for secure value (list) and data key (list+read) (#108763) 2025-07-28 14:25:06 +02:00
Serge Zaitsev
a95fb3a37c Chore: Omit integration tests if short test flag is passed (#108777)
* omit integration tests if short test flag is passed

* Update pkg/services/ngalert/models/receivers_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/tests/api/alerting/api_ruler_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/tests/api/alerting/api_ruler_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/tests/api/alerting/api_ruler_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/tests/api/alerting/api_ruler_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/tests/api/alerting/api_ruler_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/services/ngalert/models/receivers_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/cmd/grafana-cli/commands/datamigrations/to_unified_storage_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* Update pkg/services/ngalert/models/receivers_test.go

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* fix the rest

* false positive

---------

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-07-28 13:38:54 +02:00
Gabriel MABILLE
1a7a7f1d99 grafana-iam: Wire the roles api (#108577) 2025-07-28 13:36:27 +02:00
Timur Olzhabayev
1c15493635 Chore: Add PR author (#108513)
* add PR author

* show who's PR it is
2025-07-28 11:23:59 +00:00
ismail simsek
c88a6fc2e7 Prometheus: Performance improvements for high cardinality metrics in code editor (#108341)
* disable auto fetch

* add partially written metric name situation

* add new limit

* add new methods

* rename methods

* implement auto complete after typing at least three letters

* betterer

* cosmetic changes

* partial or full trigger

* cleaner approach

* lint

* fix

* review feedback
2025-07-28 13:02:16 +02:00
Timur Olzhabayev
ce64a78d99 Feat: Improve auto-triager logic to check for internal team members via api (#108578)
improve auto triager logic to check for internal team members via api
2025-07-28 12:51:28 +02:00
Kristina
ffb8f4ea0c Transformations: Rename Regression Analysis to Trendline (#108631)
* Rename regression analysis transformation

* fix a couple translations

* remove extra word

* Fix tests

* Change frame name to use regression
2025-07-28 10:50:47 +00:00
Gilles De Mey
814fccb970 Alerting: Use the official maildev image again (#108768) 2025-07-28 12:31:51 +02:00
Konrad Lalik
af376cd286 Alerting: Fix backtick handling when hashing queries (#108757)
Update the hashQuery algorithm to handle more formatting edge cases
2025-07-28 12:22:36 +02:00
ti361
4da2c50990 change method "GET" to "DELETE" with the "Delete a report" API (#108750) 2025-07-28 12:10:20 +02:00
Dana Axinte
2ea77a7c05 SecretsManager: Add ability to list all encrypted values (#108512)
* list all encrypted values and count

* separate interfaces

* add time filter to global queries

* fix lint
2025-07-28 10:50:24 +01:00
Alexander Akhmetov
f969eb0277 Alerting: Add rule group name validation to the Prometheus conversion API (#108740)
Alerting: Add rule group name validation to the conversion API
2025-07-28 11:44:17 +02:00
Nathan Vērzemnieks
252fc67fbd CloudWatch: Improve smithy error handling (#108523)
* CloudWatch: Improve smithy error handling

* gofmt
2025-07-28 09:43:37 +00:00
Gábor Farkas
8d48dbce66 datasources: querier: handle single-tenant instance config (#108469) 2025-07-28 11:40:26 +02:00
Chris Chang
15f291aa8e Plugins: Add grafana-iot-twinmaker-datasource to forward_settings_to_plugins (#108560)
* Add grafana-iot-twinmaker-datasource to forward settings list

* Remove -app
2025-07-28 11:15:50 +02:00
renovate[bot]
7596dc319c Update dependency @floating-ui/react to v0.27.14 (#108755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 09:53:57 +01:00
Joey
d529eee8cf Tempo: Add options to getTagKeys (#108691)
Add options to getTagKeys so time range and timeRangeForTags can be passed into the Tempo language provider
2025-07-28 09:36:07 +01:00
Mihai Doarna
cef7f2b337 SCIM: Update docs with the reject_non_provisioned_users flag (#108657)
* update docs with the reject_non_provisioned_users flag

* update docs with new flag and new create user behaviour

* address feedback

* run prettier
2025-07-28 11:32:14 +03:00
Mihai Doarna
f9b34baa35 SCIM: Add flag for rejecting non provisioned users from logging in (#108568)
add flag for rejecting non provisioned users from logging in
2025-07-28 11:31:33 +03:00
renovate[bot]
3a285d9b16 Update dependency eslint to v9.32.0 (#108711)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 09:18:20 +01:00
Alexander Akhmetov
4ad80cec1a Alerting: Validate extra configuration with PostableApiAlertingConfig (#108706) 2025-07-28 10:09:26 +02:00
antonio
f4b4d8ec95 add video to alerting tutorial pt3 (#108743) 2025-07-28 07:38:03 +00:00
Mariell Hoversholm
d0b791000d Docs: Update for certutil in container (#108751)
Co-authored-by: Roman Pertl <roman@pertl.org>
2025-07-28 09:12:30 +02:00
Scott Lepper
713c9921ac Dashboards: Edit pane variable unique key (#107212)
* Dashboards: Edit pane unique key

* lint

* Update public/app/features/dashboard/components/PanelEditor/OptionsPaneItemDescriptor.tsx

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>

* lint

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2025-07-28 07:49:38 +02:00
grafana-pr-automation[bot]
910454c84c I18n: Download translations from Crowdin (#108730)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-27 00:32:40 +00:00
Kevin Minehart
8fcfcc31da CI: run release-build on a schedule; also send source-event input to GE (#108726)
* run release-build on a schedule; also send source-event input to GE

* remove cron pipelines from drone
2025-07-25 21:52:09 -05:00
Galen Kistler
01f863c47f TableNG: Take nanos into account for column sorting (#108614)
* feat(ngTable): support nanos

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-07-25 21:43:36 +00:00
Jev Forsberg
bd3606d6b1 Chore: Update 11.6.x support date (#108715)
baldm0mma/ update 11.6.x support date
2025-07-25 13:27:01 -06:00
Isabel Matwawana
87464efb16 Docs: Refactor Variables page and improve content (#108346) 2025-07-25 14:48:10 -04:00
renovate[bot]
c94f930950 Update dependency prettier to v3.6.2 (#108689)
* Update dependency prettier to v3.6.2

* run prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-07-25 17:47:44 +01:00
Roberto Jiménez Sánchez
20cea80795 Provisioning: Add bulk delete job (#108580)
* Add delete job type

* Regenerate spec

* Add first implementation of worker

* Move interface and mock to repository package

* Add unit tests

* Add integration tests

* Fix linting and spec

* Regenerate client

* Format file

* go fmt

* fix

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-07-25 16:38:10 +00:00
Dave Henderson
a82a7f1340 deps(go): Tidying advisor and investigations go modules (#108703)
deps(go): Tidying apps/advisor go module

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2025-07-25 12:27:57 -04:00
Zoe C
c16117df4e Update Influx Config Options Section in Docs (#108264) 2025-07-25 10:25:55 -06:00
Josh Hunt
c1c5c2db8b FS: Handle unavailable backend (#108544)
* add dev mechanism for making backend unavailable

* handle unavailable backend in html

* fix ordering of /-/ routes

* Add new loader to index.html

* tweak light colours

* fix readme

* add error handling and error state

* use setTimeout for the retry loop

* easier on the comments:
2025-07-25 17:21:48 +01:00
Dana Axinte
b1b9cc43a8 SecretsManager: Adding ability to disable all DEKs (#108444)
* Adding dek deactivation and rename list dek

* disable data keys from manager

* separate interface and don't use in encryption manager
2025-07-25 17:11:17 +01:00
Michael Mandrus
f69f25be5d Chore: Don't show a "Not found" for public-dashboard fetches if the service is disabled via config (#108650)
don't show 404 toast if pubdash is completely disabled
2025-07-25 15:55:10 +00:00
Mihai Doarna
69d3b9023c SCIM Docs: Add mapping in AzureAD for the active attribute (#108669)
add mapping in AzureAD for the active attribute
2025-07-25 18:27:15 +03:00
Santiago
dcb965b7dc Remote Alertmanager: Optionally merge remote state before starting the internal Alertmanager (#107710)
* Remote Alertmanager: Use the same struct for Grafana stat and Mimir full state

* Alertmanager: Add methods to merge nflog and silences

* update grafana/alerting version

* make update-workspace

* update mocks

* remove unnecesary methods from the remote Alertmanager implementation, create separate StateMerger interface

* (WIP) Remote Alertmanager: Optionally merge remote state before starting the internal Alertmanager

* cleanup ngalert.go

* restore defaults.ini

* move state parsing logic to 'remote' package, clean up ngalert.go

* remove GetBase, implement MegeNflog and MergeSilences

* delete fmt.Println

* FetchRemoteState -> GetRemoteState

* UserGrafanaState -> UserState

* remove duplicate clusterpb import

* reorder MimirClient interface

* use general getState() method for Grafana state and Mimir full state

* remove unnecessary state merging methods from the Alertmanager interface

* remove pullState field

* reduce diff

* add info log after merging

* merge silences and nflog entries in the same method

* merge the remote state in the forked AM

* reduce diff

* update remote AM mock

* tests

* make error more specific

* typo
2025-07-25 15:06:59 +00:00
Victor Cinaglia
5f6fc38430 iam/authn: Introduce feature flag for authz resource mutations (#108698)
* iam/authz: introduce feature flag for authz resource mutations

* lint: fix typo
2025-07-25 12:05:32 -03:00
Bruno
b1592b5e36 Cloud migrations: store snapshots in the database (#108551)
* Cloud migrations: store snapshots in the database

* update github.com/grafana/grafana-cloud-migration-snapshot to v1.9.0

* make update-workspace

* use new field name in test

* return error after call to fmt.Errorf

* create methods for readability / fix session deletiong not deleting snapshots

* remove debugging changes

* update sample.ini

* update tests to include OrgID in ListSnapshotsQuery

* lint

* lint

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

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* remove TODO

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

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

* remove one of the debug logs

---------

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-07-25 11:41:21 -03:00
alerting-team[bot]
47cf7ea8b6 Alerting: Update alerting module to 615c8286e14b14347365db1b3db557d74d8952f1 (#108695)
[create-pull-request] automated change

Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com>
2025-07-25 14:22:57 +00:00
Alex Khomenko
b4e955ced7 Provisioning: Use move API on dashboards settings page (#108671)
* Provisioning: Use Move API to move dashboards in Dashboards Settings Page

* i18n
2025-07-25 14:09:08 +00:00
lean.dev
69743ed1a4 SecretsManager: remove unused metric (#108694) 2025-07-25 14:04:43 +00:00
Matheus Macabu
97aa3cee88 GHA: Run Go Workspace Checks conditionally on BE changes (#108655) 2025-07-25 15:10:54 +02:00
Sergej-Vlasov
6af2e81cda DashboardEdit: Undo/redo for conditional rendering (#107235)
* add undo/redo for group and base actions

* add undo/redo for rules

* adjust circular dependency issue

* add itemType translations

* adjust how we get rendering group
2025-07-25 13:59:53 +01:00
Konrad Lalik
fb08352300 Alerting: Rename draft new rule option (#108597)
* Rename draft new rule option

* Update tests

* Update translation key
2025-07-25 14:42:37 +02:00
renovate[bot]
9ad8881411 Update dependency fork-ts-checker-webpack-plugin to v9.1.0 (#108672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 13:38:05 +01:00
Will Assis
f67713726b add debug logs to search server distributor (#108679) 2025-07-25 12:36:35 +00:00
Will Browne
6747b60822 Plugins: Remove pluginsDetailsRightPanel feature toggle (#107321)
remove pluginsDetailsRightPanel feature toggle
2025-07-25 13:02:05 +01:00
Andres Martinez Gotor
d25d926462 Advisor: Fix paginated requests for checks (#108583) 2025-07-25 13:42:16 +02:00
renovate[bot]
7e8a471b08 Update dependency ol to v10.6.1 (#98200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 10:56:07 +00:00
Ashley Harrison
11b49cf7bd Playwright: Some tweaks to improve stability (#108667)
playwright stability tweaks
2025-07-25 10:54:07 +01:00
ismail simsek
fa8b631a87 Chore: Improve prometheus language provider documentation (#108661)
* improve documentation

* fix

* betterer
2025-07-25 09:45:09 +00:00
Matheus Macabu
c21617a446 Make: Use air as the default for make run (#108652) 2025-07-25 11:32:07 +02:00
Josh Hunt
6b3d8b0a30 Chore: Bump axios (#108663) 2025-07-25 09:10:28 +00:00
renovate[bot]
02f9ebc62e Update dependency @grafana/assistant to v0.0.10 (#108660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 09:58:39 +01:00
Josh Hunt
5febfc7d9b Playwright: Fix GHA summary step (#108587)
* Playwright: Fix GHA summary step

* add failure to test

* remove failing test
2025-07-25 09:37:15 +01:00
renovate[bot]
0405e5fe52 Update dependency eslint-plugin-import to v2.32.0 (#108622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 09:32:18 +01:00
Mustafa Sencer Özcan
761150fcb8 fix: enable dashboard api k8s list tests (#106508)
* fix: separate dashboard api tests

* fix: typo

* refactor: revert file rename

* fix: compilable

* fix: trial

* fix: remove unused func

* Pass the right value for kubernetesDashboardsEnabled flag

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Enable mode 3 for remaining tests

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Disable integration tests for MySQL and Postgres

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Run go work use

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Update go.mod

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Remove TODO comment

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Revert to go 1.24.5

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* go.mod

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Remove duplicated block

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Experiment without reusing client

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Reenable integration tests on Postgres and MySQL

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Revert "Experiment without reusing client"

This reverts commit 0126e321a0.

* Reapply "Experiment without reusing client"

This reverts commit 5368b4c531.

* Refactor how we get an adminClient

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Add TODO comments

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-25 09:46:02 +02:00
Roberto Jiménez Sánchez
16339b0788 Provisioning: Move repository file API (#108514)
* Bump nanogit version
* Embed git repository in the Github one
2025-07-24 23:28:59 -05:00
Kevin Minehart
22bcd4dab4 Chore: bump version to 12.2.0-pre (#108623)
* bump version to 12.2.0-pre

* make gen-cue
2025-07-24 21:25:26 -05:00
grafana-pr-automation[bot]
4626207155 I18n: Download translations from Crowdin (#108647)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-25 00:40:42 +00:00
Drew Slobodnjak
2196727226 TimeSeries: Add Time Comparison (#104672)
* TimeComparison: Add time comparison option

* Display control conditionally based on option

* Provide timeCompare option to panels that opt in

* Only render time compare if panel supports it

* Create a custom time range compare component

* Move custom component

* Remove button checked

* Move time compare options out of field config

* Fix types and remove from fieldConfigProperty enum

* Remove from field config registry

* Add headerActions to V2 schema

* Remove dependency on timeCompare support registry

* Add feature flag

* Subscribe to options change in wrapper

* Remove custom rendering to simplify wrapper

* Bump scenes version

* Hide checkbox

* Remove unneeded query refresh during disable

* Fix import order in timeseries module

* Add util tests

* Support time comparison toggle for new viz panels

* Revert grafana-app-sdk and manifest changes

* Revert yarn lock
2025-07-24 13:07:28 -07:00
Tania
d3b6d7c45e OpenFeature: Add config setting to disable API (#108620)
* Add config option to disable ofrep api

* Apply review feedback
2025-07-24 19:45:22 +00:00
Will Assis
183cd0843e keep instance in the ring on shutdown (#108609) 2025-07-24 15:39:12 -04:00
Isabel Matwawana
227a33fadd Docs: Document cell options by cell type (#106961) 2025-07-24 15:39:01 -04:00
Arati R.
16aee8047c Unified Search: Randomise instance selected by distributor (#108619)
* Randomise instance selected by distributor

* add namespace to distributor logging

---------

Co-authored-by: Will Assis <william@williamassis.com>
2025-07-24 19:38:35 +00:00
Galen Kistler
ab92e2cbb6 Transformations: Take nanos into account for Sort by (#108564)
* chore(sortDataFrame): sort by nanos
2025-07-24 18:51:21 +00:00
ismail simsek
0723a51e87 Prometheus: Fix adding labels to the query with empty values (#108611)
* values can be empty

* remove a test
2025-07-24 20:12:43 +02:00
Jacob Valdez
a5a45d4476 Docs: removing static options whats new post (#108628) 2025-07-24 18:05:22 +00:00
linoman
d578da7bc9 auth: Restore Authentication UI access (#108625)
Restore Authentication UI access
2025-07-24 17:37:02 +00:00
Roberto Jiménez Sánchez
e9b9618fb0 Provisioning: Fix stage options for export (#108585)
* Add ref option to stage options

* Fix the issue with ref in export worker

* Add unit tests for export stage options

* Do not fail if ref is equal to the stage branch

* Format code again

* fix test

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-07-24 16:53:33 +00:00
renovate[bot]
6eb400d1a7 Update dependency eslint-plugin-jest-dom to v5.5.0 (#108606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 17:53:07 +01:00
Stephanie Hingtgen
f515e5af7e CODEOWNERS: Update integration test owners (#108621) 2025-07-24 16:35:12 +00:00
Yunwen Zheng
6b259435ee PreviewBannerViewPR: Display different provider in preview banner (#108490)
* PreviewBannerViewPR: display different provider in preview banner, update copy
2025-07-24 12:31:55 -04:00
Josh Hunt
716ae2a266 re-yarn lock (#108615) 2025-07-24 16:08:42 +00:00
Yuri Tseretyan
e280b949e3 Alerting: Refactor remote Alertmanager and Mimir client (#107808)
* deduplicate config preparation logic squashes config preparation in 3 places into a single method buildConfiguration
* remove copying config from decrypt because we already use copy
* move logic from decryptConfiguration to buildConfiguration
* move logic from mergeExtraConfigs to buildConfiguration
* load default config with buildConfiguration method and skip if fails
---------

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2025-07-24 12:00:38 -04:00
Roberto Jiménez Sánchez
915f47befd Provisioning: commit only once staged changes (#108590) 2025-07-24 10:57:02 -05:00
Ivana Huckova
e74b4456e4 Update developer-guide.md for running decoupled plugins (#108604)
* Update developer-guide for running decoupled plugins

* Update contribute/developer-guide.md

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* Fix lint

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2025-07-24 17:51:44 +02:00
Ashley Harrison
2be4e44a02 Accessibility: Add storybook a11y tests that run in CI (#108543)
* add test runner and start experimenting with storybook a11y tests

* skip currently failing a11y tests

* first attempt at github action

* fix CODEOWNERS, fix copy assets

* no caching?

* make wait-on better

* increase timeout and add verbose logging

* kick CI

* remove verbose logging, try different runner

* remove commented out code in copyAssets

* try maxWorkers 2

* turn on verbose logging, run as part of same step

* test storybook verify

* try setting LANG

* tidy up

* add betterer test
2025-07-24 16:32:02 +01:00
Drew Slobodnjak
512a553723 Geomap: Add tooltip support for dynamic geojson (#108203)
* Geomap: Add tooltip support for dynamic geojson

* Add tests for tooltip function
2025-07-24 08:10:12 -07:00
Anna Urbiztondo
f0b0aa24a3 Advisor - mark as public preview (#108605)
As per https://github.com/grafana/grafana/issues/106893.
2025-07-24 17:01:58 +02:00
Alex Khomenko
4def378a61 Provisioning: Consolidate status display (#108589)
* Provisioning: Centralize wizard errors

* Move alert to shared

* Update pull status

* betterer

* Update warning

* Fix i18n

* Format

* Format[2]

* Extract MessageList

* Add fallback status
2025-07-24 14:59:48 +00:00
renovate[bot]
e321ac1075 Update dependency @babel/runtime to v7.28.2 (#108603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 14:39:39 +00:00
Gábor Farkas
36b0e59905 codeowners: core-services will own pkg/services/query (#108599) 2025-07-24 14:15:09 +00:00
renovate[bot]
97c37e6798 Update dependency react-hook-form to v7.61.1 (#108598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 14:14:26 +00:00
Anna Urbiztondo
c81de5ee67 Updating trace link (#108593)
As reported in https://github.com/grafana/grafana/issues/101443.
2025-07-24 16:00:09 +02:00
renovate[bot]
80bf664c48 Update dependency @grafana/assistant to v0.0.8 (#108592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 14:48:00 +01:00
Mariell Hoversholm
0732389a0a Docs(image-renderer): Update for v4.0.x (#108595) 2025-07-24 13:34:40 +00:00
Yuri Tseretyan
0895d63516 Alerting: Remote Alertmanager to compare current hash with hash from response (#108554) 2025-07-24 09:22:44 -04:00
Sonia Aguilar
b129b28d7e Alerting: Fix action buttons flickering in the old list view (#108321)
* fix action buttons flickering in the old list view

* prettier

* address review coments

* remove duplication

* add canCreateGrafanaRules check for ai button
2025-07-24 13:05:56 +00:00
renovate[bot]
1e8b065a0a Update scenes to v6.28.0 (#108548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-24 12:56:07 +00:00
Victor Cinaglia
4c17c1cbb6 IAM: Instantiate DualWriter only when in single-tenant mode (#108558)
* Instantiate dual writer only in ST case

* minor cleanup

---------

Co-authored-by: Charandas Batra <charandas.batra@grafana.com>
2025-07-24 09:33:53 -03:00
Victor Marin
1c453cd81c Tests: Add user profile timezone settings in DashboardSceneSerializer test (#108584)
fix tests
2025-07-24 13:03:16 +01:00
Sonia Aguilar
2e2bb605ea Alerting: Fix wrong import (#108581)
* fix wrong import

* add eslint rule to no-restricted-imports

* eslint config update

* eslint config update
2025-07-24 13:56:51 +02:00
Andres Martinez Gotor
5066aec64d Advisor: Context handler returns a copy of request (#108508) 2025-07-24 10:32:06 +00:00
Josh Hunt
656c0b56b8 Chore: Bump form-data (#108579) 2025-07-24 10:29:12 +00:00
Jack Westbrook
d852bde2a5 Fix: plugin loader cache not matching on decoupled plugin paths (#108529)
* fix(plugins): match decoupled plugin path in fe plugin loader cache

* chore(devenv): update local_cdn to work with latest changes in core

* refactor(plugins): improve legibility by splitting regexs into two

* revert(devenv): revert -oss removal in local_cdn rewrite path
2025-07-24 11:53:30 +02:00
Josh Hunt
559d3a274a Chore: Bump semver version for pa11y (#108573) 2025-07-24 09:41:56 +00:00
Jack Westbrook
15d9df93f9 Fix: Prevent Rollup from treeshaking NPM packages (#108567)
fix(packages): prevent rollup from treeshaking libraries
2025-07-24 10:54:02 +02:00
Mihai Turdean
b1de534092 Refactor iam app cue files (#108542)
A breaking change was introduced by this grafana-app-sdk PR: https://github.com/grafana/grafana-app-sdk/pull/795

This PR refactors the definition of our CUE files (manifest and kinds) to match the new model in the latest version of grafana-app-sdk.
2025-07-24 09:52:52 +01:00
Piotr Jamróz
69731658a2 Span Details: Redesign details header (#108511)
* Span Details: Redesign span details header

* Update translations

* Add max width to operation name

* Test update

We don't show the spanId anymore, just the "share" label for each trace
2025-07-24 09:57:23 +02:00
dependabot[bot]
4922bb4065 Bump marocchino/sticky-pull-request-comment from 2.9.3 to 2.9.4 (#108287)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-24 08:09:39 +01:00
Alex Khomenko
d4a609419a Provisioning: Extend Git-based workflows (#108537)
* Provisioning: Replace GitHub check with generic Git provider check

* Provisioning: Replace GitHub check with generic Git provider check

* Fix types

* Codeformat

* Imports
2025-07-24 05:15:17 +00:00
grafana-pr-automation[bot]
ada1c4dfdb I18n: Download translations from Crowdin (#108561)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-24 00:45:05 +00:00
Kristina
95eb66be3d Transformations: Extract Fields > Regex should not encode tooltip text (#108410)
do not escape tooltip text
2025-07-23 15:41:27 -07:00
Paul Marbach
63cc23a3ed TableNG: Footer should render summary value in first column if present (#108550)
* TableNG: Footer should render summary value in first column if present

* fix issue where empty fields array meant no calcs were shown

* fix a bug related to hidden fields

* go away from fieldmatcher to use a simple inline solution
2025-07-23 18:06:31 -04:00
Kristina
5bfed408ed SQL Expressions: Enable Auto-complete (#106511)
* First draft autocomplete

* Better naming

* Change suggestion to table/column population

* Remove all suggestions, just use table/column population but trigger on space

* Gate feature flag behind a feature flag

* Reorganize and add function list

* Add blurb about autocomplete to docs

* Update public/app/features/expressions/utils/metaSqlExpr.ts

Co-authored-by: Alex Spencer <52186778+alexjonspencer1@users.noreply.github.com>

* Add try catch, remove promise resolve

---------

Co-authored-by: Alex Spencer <52186778+alexjonspencer1@users.noreply.github.com>
2025-07-23 16:49:58 -05:00
Jev Forsberg
ed9ef9e5fc Chore: Update supported version docs (#108557)
baldm0mma/ update versions
2025-07-23 14:58:24 -06:00
Will Assis
981fdb29d4 update storage-api to only build index if it owns the namespace (#108418)
* update storage-api to only build index if it owns the namespace

---------

Co-authored-by: Mustafa Sencer Özcan <mustafasencer.ozcan@grafana.com>
2025-07-23 15:59:24 -04:00
github-actions[bot]
4df4f9cc07 Release: update changelog for main (#108533)
* Update changelog

* Update changelog

* jumpstart gha workflows

* Update changelog

* Update changelog

* Update changelog

* Update CHANGELOG.md

update changelog

* Update changelog

* trigger gha workflows

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
2025-07-23 13:49:59 -06:00
Paul Marbach
26d26f67d4 TableNG: Integrate hover and selection, DataLinkCell cleanup (#108353)
* Table: Style cleanups (minus DataLinkCell word wrap)

* kill JSONCell in favor of a custom display method and style overrides at TableNG

* remove unused type for JSONCellProps

* add increased specificity to CSS selector

* remove inherit and rely on undefined

* fix tests

* shrink and optimize DataLinkCell

* maybe

* format files

* better

* classname

* add Pills and DataLink cells to kitchen sink

* add comment about align + justify, simplify datalinks targeting

* simplify?

* poke

* tweak

* revert

* fix one more z-index conflict

* clean up alignment tests

* a couple more tests

* make TableNG e2e tests more resilient to changes to the gdev dashboard

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-07-23 19:39:25 +00:00
Paul Marbach
d9ef08f824 TableNG: Footer fields declaration should work for displayName or name (#108482)
back to using our own getDisplayNam
2025-07-23 14:49:10 -04:00
Tania
60e0d2d136 OpenFeature: Update authenticated request check (#108539) 2025-07-23 20:27:21 +02:00
Alexander Akhmetov
7c43c061a8 Alerting: Fix deadlocks in provenance table (#106370)
What is this feature?

This PR further improves concurrent updates to the provenance table (a follow-up for #101688). The fix explicitly checks for a provenance record using SELECT ... FOR UPDATE for the databases that support it before performing either an update or upsert operation. This preemptive locking reduces the possibility of deadlocks in MySQL.

This works only with the alertingProvenanceLockWrites feature flag enabled.

Why do we need this feature?

The current implementation (directly performing upserts without prior locking) may still encounter deadlocks because of the gap and insert-intention locks in some configurations, for example, with repeatable-read transaction isolation level in MySQL+InnoDB.

---------

Co-authored-by: William Wernert <william.wernert@grafana.com>
2025-07-23 20:16:06 +02:00
Yunwen Zheng
709aeb4e1a BulkDeleteProvisionedResource: Add unit tests (#108484)
* BulkDeleteProvisionedResource: added unit tests and reorganize folder permission

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-07-23 17:12:23 +00:00
Yuri Tseretyan
cc869e7668 Alerting: Fix active time intervals when time interval is renamed (#108534) 2025-07-23 13:08:11 -04:00
Matias Chomicki
d3a445409b shardQuerySplitting: group has pending requests or no shards to run (#108500)
* shardQuerySplitting: group has pending requests or no shards to run

* Comment

* Regression test
2025-07-23 18:12:12 +02:00
Mihai Turdean
e3c1e75da5 Fix Readme (#108081) 2025-07-23 15:55:30 +00:00
Jacob Valdez
a449a45452 Docs: What's new, Upgrade guide, and breaking changes v12.1 (#107277)
Co-authored-by: Robby Milo <robbymilo@fastmail.com>
2025-07-23 10:40:55 -05:00
Matias Chomicki
10b235ec75 New Logs Panel: always show horizontal scroll when unwrapped (#108530) 2025-07-23 17:10:22 +02:00
Leon Sorokin
0f9ea44144 XYChart: Lift restrictions around re-using fields for color and size (#106690) 2025-07-23 14:55:58 +00:00
renovate[bot]
0483544b06 Update dependency eslint-plugin-import to v2.32.0 (#108518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-23 15:34:02 +01:00
Timur Olzhabayev
9f212d11d0 Chore: bump github action version (#108522)
bump github action version
2025-07-23 16:00:12 +02:00
Nathan Vērzemnieks
b99e9484d2 CloudWatch: Fix broken test (#108520) 2025-07-23 15:15:44 +02:00
Sonia Aguilar
7c872f0e8a Alerting: Add feedback buttons for the new AI helpers (#108207)
* Add alerting ai buttons for cloud

* add tracking for ai buttons usage

* Empty commit to trigger GitHub Actions

* wip

* add FrontendOnly in ff

* update analytics folder

* prettier

* revert ff being frontend only

* add feedback button in templates

* review comments

* address some review comments

* refactor

* revert change and remove comment

* prettier

* update betterer

* remove unused property

* prettier

* update AIFeedbackComponent

* add feedback buttons for alert rule generation with ai

* remove tracking from oss

* fix analytics imports

* udpdate changes in go.mod go.sum

* prettier

* update translations

* update workspace

* fix betterer

* address pr comments

* move most of the ai feedback buttons code to enterprise

* prettier

* fix

* address pr feedback
2025-07-23 14:38:09 +02:00
Timur Olzhabayev
c43a92c1be Choe: add id-token to fetch secrets (#108506)
* add PR author

* adding id-token permissions
2025-07-23 14:33:06 +02:00
Ashley Harrison
60df44bb23 Chore: update CODEOWNERS (#108398)
* remove joint ownership of root packages

* continue separating CODEOWNERS

* more CODEOWNERS, separate into package sections

* more separation

* few more CODEOWNER updates

* index ownership

* make frontend-platform owners of types

* assign @grafana/schema ownership

* update CODEOWNERS

* define more CODEOWNERS

* add more CODEOWNERs

* update CODEOWNERS

* update CODEOWNERS

* update CODEOWNERS

* update CODEOWNERS

* add plugins platform to data/runtime interface

* add featureToggles ownership

* remove frontend-ops ownership
2025-07-23 12:32:22 +01:00
renovate[bot]
06a2630ddd Update dependency eslint to v9.31.0 (#108504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-23 12:31:36 +01:00
Alex Khomenko
f2889c6cc4 Provisioning: Add provider icons (#108510)
* Provisioning: Add provider icons

* Use color logos

* format

* Move img to feature folder
2025-07-23 11:25:11 +00:00
Roberto Jiménez Sánchez
24d898d6a7 Provisioning: Fix flake in delete resources integration test (#108507)
* Fix flake in delete resources test

* Fix linting issue
2025-07-23 11:43:57 +01:00
Matheus Macabu
0e7b041b27 Secrets: Move decrypt types to contracts and export public at root pkg (#108376)
* Secrets: Move decrypt types to contracts and export public at root pkg

* Provisioning: Replace decrypt pkg imports

* Merge wire changes
2025-07-23 12:14:28 +02:00
Sven Grossmann
f657044afb LogLine: Add Explain in Assistant option to explain single log lines (#108387)
* LogLine: Add `Explain in Assistant` option

* LogLine: Improve menu and prompt

* LogLine: Mock `@grafana/assistant` in tests

* LogLine: Mock `@grafana/assistant` in tests

* i18n

* LogLine: Expose via loglistcontext

* LogLine: Mock in LogLineDetails

* revert

* revert changes

* LogLine: Fix LogListContext mock

* LogLineControls: Add context props

* LogLineControls: Mock `@grafana/assistant`

* LogLineControls: Remove from props

* LogLineControls: Lint menu

* LogsPanel: Mock `@grafana/assistant`
2025-07-23 12:12:47 +02:00
Josh Hunt
838391cd31 I18n: Prepare locale format for preview (#108501)
* Promote toggle to public preview

* disable RTL locales

* update badge on prefs page to preview
2025-07-23 09:41:22 +00:00
Timur Olzhabayev
89c664dc05 Chore/label internal issues 2 (#108479)
* add PR author

* see if this way of getting org members is correct

* switch to env

* add check for repository

* cleanup logic a bit
2025-07-23 09:41:05 +00:00
Roberto Jiménez Sánchez
946358900c Provisioning: Add warning job status and different strictness (#108446)
* Add warning job status

* Different strictness for export than for pulling

* Fix some unit tests

* Fix unit tests

* Update frontend to display the warning status

* Fix status badge

* Add missing return statement

* Improve text in alert
2025-07-23 09:33:25 +00:00
Sonia Aguilar
3fe21f1cca Alerting: Add pagination for rules in a group in the rule list view v2 (#108436)
* add pagination for rules in a group, in the rule list view v2

* update translations

* remove gap in stack
2025-07-23 11:32:30 +02:00
renovate[bot]
937cdc3682 Update dependency cypress-recurse to v1.37.1 (#108498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-23 10:31:57 +01:00
Ashley Harrison
f093b3d620 Chore: Ignore cypress updates (#108496)
ignore cypress updates for now
2025-07-23 10:03:34 +01:00
Josh Hunt
ba2804bcfe I18n: Use locale-aware date formatting in grafana-data (#108415)
* use intl locale-aware date formatting

* format range for time picker button

* comment

* fix test setup
2025-07-23 09:23:16 +01:00
Josh Hunt
b2688dd5ff I18n: Default regional format to Accept-Language header value (#108468)
* I18n: Default regional format to Accept-Language header value

* comment

* rejigger

* rejigger preferences
2025-07-23 09:23:05 +01:00
Sam Jewell
aedd7b6e34 [--Dashboard-- data source] Implement AdHoc filtering (#108011)
Behind a feature toggle: `dashboardDsAdHocFiltering`
2025-07-23 09:12:25 +01:00
Alex Khomenko
08a287e705 Browse dashboards: Hide checkboxes for items user cannot edit (#108427)
* Add test

* BrowseDashboards: Separate folder and dashboard permission checks

* Extract type

* Check for edit permissions

* Prettier

* Refactor test

* Update canEditItemType

* Update render check

* Update the check
2025-07-23 10:10:33 +03:00
grafana-pr-automation[bot]
408ac3086d I18n: Download translations from Crowdin (#108493)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-23 00:40:19 +00:00
Luminessa Starlight
5dac6731cb Docs: Add note for how to enable a feature toggle in development (#108404)
add note for how to enable a feature toggle in development
2025-07-22 14:12:32 -04:00
Josh Hunt
1bd9541507 FrontendService: Add tracing and logging middleware (#107956)
* FrontendService: Add tracing and logging middleware

* tests!

* middleware tests

* context middleware test

* revert http_server back to previous version

* fix lint

* fix test

* use http.NotFound instead of custom http handler

* use existing tracer for package

* use otel/trace.Tracer in request_tracing middleware

* tidy up tracing in contextMiddleware

* fix 404 test

* remove spans from contextMiddleware

* comment
2025-07-22 18:55:44 +01:00
caozhangni
92404d9579 Snapshots: Fix snapshot doc link error (#108477)
Fix: snapshot doc link error
2025-07-22 14:49:29 -03:00
Leon Sorokin
d43606cd3e XYChart: Fix hideFrom.tooltip (#108359) 2025-07-22 12:07:34 -05:00
Ashley Harrison
66323b2a19 Internationalisation: More markup in prometheus/grafana-data (#108378)
* mark up units

* remaining category markup

* prometheus translations...

* load prom resources in core

* more prom markup

* don't load prometheus resources directly in core

* isolate @grafana/data import in jest-setup to prevent side effects in tests

* directly use tz
2025-07-22 17:57:05 +01:00
Andreas Christou
a421f55cd5 Azure: Fix time management field (#107993)
* Fix mode setting

* Update selector

* Add tests

* Fix condition
2025-07-22 16:47:52 +01:00
Matheus Macabu
52f6104230 Dependencies: Bump Go to v1.24.5 (#108175) 2025-07-22 17:08:40 +02:00
Austin Pond
6222156c7c [Dashboard Schema Codegen] Move dashboard CUE codegen block back up into kind body (#108476)
[Dashboard Schema Codegen] Move dashboard CUE codegen block back up into kind body to make sure new versions have the same settings.
2025-07-22 14:45:06 +00:00
Yunwen Zheng
2c86460fe3 BulkDeleteProvisionedResource: Move progress bar into a second step (#108417)
* Move progress bar into a second step

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-07-22 10:31:08 -04:00
Matheus Macabu
0dbede9ba5 Provisioning: Fix ImportAllPanelsFromLocalRepository test (#108441)
* Provisioning: Skip flaky test

* Fix flaky provisioning test

* Fix lint

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-07-22 14:23:17 +00:00
Roberto Jiménez Sánchez
482872c3bf Provisioning: Fix bug in job progress recording (#108440)
Fix bug in job progress recording
2025-07-22 14:21:22 +00:00
Matheus Macabu
9402071d33 Secrets: Create more granular fixed roles for SecureValues (#108382) 2025-07-22 16:20:54 +02:00
Will Assis
71cb623cb7 improve logging and fail unified-storage migration with more than 0 errors (#108471)
improve logging and fail unified-storage migration with more than 0 errors
2025-07-22 13:44:04 +00:00
Ashley Harrison
85a1a35948 Chore: use satisfies and remove a load of anys (#108397)
use satisfies and remove a load of anys
2025-07-22 13:25:26 +01:00
Todd Treece
52a0485d5b App Installer: Authorizer support (#108419) 2025-07-22 06:45:01 -04:00
renovate[bot]
ec9da2678a Update dependency core-js to v3.44.0 (#108435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 10:29:43 +00:00
renovate[bot]
1a879abd4e Update dependency @types/node to v22.16.5 (#108431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 11:04:32 +01:00
Dominik Prokop
d72a70d246 Dashboards API: v2alpha2 missing pieces (#108293)
* Dashboards API: v2alpha2 missing pieces

* Fix issue with dashboard client scope for alpha versions

As we now have 2 different alpha versions for v2 we need to store the
clients separately.

* Improve debuggability of provisioning export test

- Add a helper function to print the tree structure.
- Be explicit about the expected file names expected in each case.

* Update pkg/registry/apis/dashboard/mutate.go

* Update pkg/services/authz/zanzana/server/server.go

Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>

* Review

* go lint

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>
2025-07-22 11:44:05 +02:00
Mihai Doarna
eeb44c1d63 Docs: Remove LDAP debug view section (#108214)
remove LDAP debug view section from docs
2025-07-22 12:32:24 +03:00
Josh Hunt
dfea35f1c1 Lint: Ban string.localeCompare with betterer (#108375)
Ban string.localeCompare with betterer
2025-07-22 09:18:48 +00:00
renovate[bot]
79286515fe Update dependency @types/babel__preset-env to v7.10.0 (#108429)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:13:27 +00:00
Josh Hunt
c3243bd100 Context: Clean up contexthandler.Middleware spans (#108188)
* Context: Clean up contexthandler.Middleware spans

* seperate the middleware span from the rest of the request

* shuffle

* put of back

* span name

* Update pkg/services/contexthandler/contexthandler.go

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

---------

Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-07-22 08:53:28 +00:00
renovate[bot]
abd519899f Update dependency @testing-library/react to v16.3.0 (#108428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 08:47:52 +00:00
Will Browne
7f065c94de Plugins: Remove pluginsCDNSyncLoader feature toggle (#108389)
* remove pluginsCDNSyncLoader feature toggle

* fix lint issues

* fix other linter issue
2025-07-22 09:33:23 +01:00
renovate[bot]
56f6030c5e Update dependency @pmmmwh/react-refresh-webpack-plugin to v0.6.1 (#108407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:22:40 +01:00
Timur Olzhabayev
487c38da56 Chore: auto label internal issues (#108013)
* add PR author

* catch all for internal issues

* ubuntu latest

* no need to add label here anymore
2025-07-22 10:01:18 +02:00
Will Assis
34f1be796d unified-storage: expose ring replication factor config (#106345)
* config ring replication factor

* change default

* rename

* fix test

* fix
2025-07-22 09:32:22 +02:00
Victor Marin
b9997d833f DataSourceAPI: Rename getApplicableFilters to getFiltersApplicability (#107775)
* refactor getApplicableFilters to getFiltersApplicability

* add origin property as well

* add comments
2025-07-22 10:14:57 +03:00
grafana-pr-automation[bot]
2cb61cfb38 I18n: Download translations from Crowdin (#108420)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-22 00:40:41 +00:00
Todd Treece
e5d2f92384 K8s: Add App SDK installer (#107773) 2025-07-21 13:32:15 -04:00
Adela Almasan
548964f728 Chore: Fix console warning for Canvas (#108351) 2025-07-21 11:41:11 -05:00
renovate[bot]
ef81f93980 Update dependency @playwright/test to v1.54.1 (#108403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 16:32:29 +00:00
Moustafa Baiou
71b5c1d997 Alerting: Update test data for exports which now contain http_configs for receivers (#108405)
This was introduced in https://github.com/grafana/grafana/pull/108190 and missed in the integration
2025-07-21 16:32:21 +00:00
Alex Khomenko
193471c6ae Provisioning: Skip sync step when it's not needed (#108309)
* Skip sync

* Remove onOptionSelect

* Format

* Create job if skipping sync

* Extract job sync into a hook

* i18n

* Cleanup + i18n

* Review comments

* Skip requests and update tests

* Fix sync error
2025-07-21 18:41:31 +03:00
Yunwen Zheng
20d6702e50 Git Sync: Bulk deletion (#107800)
* Git sync bulk delete
2025-07-21 11:41:21 -04:00
renovate[bot]
60a10be931 Update dependency @types/hoist-non-react-statics to v3.3.7 (#108395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 16:19:33 +01:00
Ashley Harrison
5f3bceaff9 Chore: add minimumReleaseAge to renovate config (#108393)
* add minimumReleaseAge to renovate config

* add minimumReleaseAge to non-grafana packages
2025-07-21 16:18:51 +01:00
Matthew Jacobson
5489c814c0 Alerting: Fix Jira HCL export with fields & add export snapshots test (#108032)
* Alerting: Contact point export snapshot test

* Fix Jira.fields hcl export type to allow map[string]any

Since gohcl does not support this type, we marshal as a string instead
which will be handled in the TF provider.

* mapToJSONStringCodec encoder needed for
TestContactPointFromContactPointExports
2025-07-21 10:24:24 -04:00
Bruno
12a7e03e2f Secrets: encryptionStoreImpl produces metrics (#108390) 2025-07-21 11:00:59 -03:00
renovate[bot]
6ecbe1f61b Update dependency esbuild to v0.25.8 (#108385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 14:57:34 +01:00
Bruno Abrantes
be79eb0ace fix: handle dashboards without version entries in unified storage migration (#108139)
* fix: handle dashboards without version entries in migration

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: adds AllowFallback flag to enable COALESCE logic explicitly during migrations

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: update dependencies

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* fix: maintain original behavior when not using AllowFallback option

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

---------

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-21 15:32:24 +02:00
dependabot[bot]
73c09efd03 Bump golang.org/x/oauth2 from 0.26.0 to 0.27.0 in /.citools/src/cog (#108369)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.26.0 to 0.27.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.26.0...v0.27.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.27.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 15:03:58 +02:00
Will Browne
cd87bbbdea Plugins: Remove externalCorePlugins feature toggle (#108386)
remove externalCorePlugins feature toggle
2025-07-21 13:55:30 +01:00
Stephanie Hingtgen
5ec3a2b758 K8s: Library panels: move to separate ff (#108384) 2025-07-21 12:53:46 +00:00
Marie Cruz
91825be1dd add data transformations learning journey to transform data docs (#108325)
* add data transformations learning journey to transform data docs

* add shortcode to typescript file instead
2025-07-21 13:43:33 +01:00
Bruno Abrantes
e5b6ab1b11 fix: do not migrate library panels to unified storage (#108380)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-21 14:34:23 +02:00
renovate[bot]
9ff5a18d98 Update dependency monaco-promql to v1.8.0 (#108377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 13:27:38 +01:00
Bill Franklin
b9746cd8d4 Tempo: Downcase OR to or in Loki LogQL query (#106012)
Downcase 'OR' to 'or'

Fixes: https://github.com/grafana/grafana/pull/93923\#issuecomment-2752216436

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2025-07-21 14:17:16 +02:00
Bruno Abrantes
6c84461b7a fix: Always return searchWrapper to enable shadow traffic (#108373)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-21 13:53:44 +02:00
Matias Chomicki
b70d1b0724 New Log Details: Support multiple log details displayed (#108327)
* LogLine: optionally highlight search based on syntax highlighting state

* Log Details: support multiple details open

* Translations

* Add test

* LogLine: allow to highlight frontend searches

* LogLine: improve hover vs details displayed colors

* LogLineDetails: add scroll to log line option and improve toggling behavior

* Translations

* LogLineDetails: prevent sidebar re-rendering

* LogLineDetails: more tests
2025-07-21 13:02:20 +02:00
Josh Hunt
ca63c8015d FS: Frontend redirect to /login (#108225)
* Add frontend redirect to login

* Make Login topnav link do a page transition to login page

* Force AppChromeState update when route changes to get new isChromeless state

* Add base url to SignInLink, and add tests

* wrap login page in <Page />

* comment, test

* fix loginPage test

* rejigger signin check, remove chrome from deps
2025-07-21 10:48:53 +00:00
renovate[bot]
fde2267387 Update dependency centrifuge to v5.4.0 (#108371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 11:31:10 +01:00
Matheus Macabu
88acefbb65 CiTools: Install air (#108367) 2025-07-21 12:25:40 +02:00
Sven Grossmann
3c18add70b ExtensionSidebar: Make sure sidebar will not render more than max width (#108374)
ExtensionSidebar: Make sure sidebar will not render more than max
2025-07-21 10:24:26 +00:00
Sven Grossmann
b8c1c3c56b DashboardMacro: Fail soft if __dashboard macro exists (#108060) 2025-07-21 11:53:31 +02:00
Matheus Macabu
9e4f2cad47 Secrets: Re-export and map domain errors into K8s API errors in ST client (#108226) 2025-07-21 09:32:20 +00:00
renovate[bot]
2222f3f43c Update dependency downshift to v9.0.10 (#108368)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 10:20:40 +01:00
Joey
96429d7dd8 Tempo: Add time range to tags and tag value requests (#107872)
* Add time range to tags and tag value requests

* Prettier

* Change timeRangeForTags to number and dropdown with options

* Listen to changes and update docs

* Update docs

* Prettier

* Text updates

* Extract getOptionsV2 params to type

* Use this.tagsForTimeRange

* Docs and move section up

* Prettier

* Update docs
2025-07-21 10:14:44 +01:00
Matheus Macabu
f7e55f2c5d Secrets: Add authz checks for the single-tenant SecureValue client (#108216) 2025-07-21 11:09:07 +02:00
Matheus Macabu
47abf5f811 Secrets: Clean up unused code (#108366)
* Secrets: Remove unused tracectx pkg

* Secrets: Remove unused assert pkg

* Secrets: Remove unused encryption interface

* Secrets: Remove unused encryption file/ref
2025-07-21 11:08:49 +02:00
renovate[bot]
320491df51 Update dependency @grafana/plugin-e2e to v2.1.7 (#108338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 08:40:01 +00:00
antonio
33316ddb03 add video to alerting tutorial pt2 (#108358)
* add video to alerting tutorial pt2

* removed spacing
2025-07-21 10:28:46 +02:00
Alex Khomenko
a090480260 Provisioning: Add new providers (#108173)
* Add new providers

* Extract utils

* Configurable workflow fields

* translate fields

* Add translations

* Update cards

* Add isGitProvider

* i18n

* Dynamic fields for ConfigForm

* Use git fields

* Remove type dropdown for edit

* Display proper type groups

* Display field errors

* Improve error handling

* Refactor data

* Check for repositoryLister

* Fix workflow

* use state var

* betterer

* Prettier

* Prettier[2]

* i18n

* Remove showDropdown

* i18n

* Update step validation

* Add test

* Update provider list

* Cleanup

* Add tokenUser field

* Provider-specific source code link

* Review comments

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-07-21 08:29:41 +03:00
grafana-pr-automation[bot]
a4d4ee1bc5 I18n: Download translations from Crowdin (#108361)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-20 00:41:27 +00:00
Nathan Marrs
554e92c408 Invite User: Add invite user button to top nav for admins (#108159)
* reimplement original design

* update button with responsive design that matches other elements in top bar; add comprehensive unit tests

* add a basic call out in docs for new button

* remove doc changes
2025-07-18 18:21:23 -07:00
grafana-pr-automation[bot]
88ec253ad5 I18n: Download translations from Crowdin (#108355)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-19 00:39:49 +00:00
Yuri Tseretyan
5097dd5c7d Alerting: Send templates from extra configuration to remote Alertmanager (#107981)
* extract logging of MergedResult into method

* convert GetMergedTemplateDefinitions to return PostableApiTemplate

* update mergeExtracConfigs to return GrafanaAlertmanagerConfig

* pass by value, not pointer

* add template definition to payload

* update tests

* rename to Templates

* log merge results

* fix reference in workspace
2025-07-18 15:16:17 -04:00
Luminessa Starlight
17ba3ec321 Chore: Disable renovate automerge (#108344)
disable renovate automerge
2025-07-18 15:14:57 -04:00
Sarah Zinger
f34127c449 Query Service: Fix Time Bug (#108337) 2025-07-18 18:14:44 +00:00
Paul Marbach
7626508842 Table: Update e2e tests to support tableNextGen (#108184)
* Table: Force tableNextGen to be true for Playwright and false for Cypress

* RDG query for body text contains the headers too

* add some simple tests for row height

* dial in the row height test a little more

* more updates

* filters, pagination

* try this on CI

* more updates to the tests

* more tests

* wait for some sort stuff to flush

* replace class selectors for rdg

* target the click to the anchor in the header
2025-07-18 12:27:04 -04:00
renovate[bot]
4e6730fee6 Update dependency marked to v16.1.1 (#108334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 16:25:45 +00:00
Ashley Harrison
2d1fb94f2d Playwright: Gate server start up with GRAFANA_URL env var (#108302)
* refactor so server is created unless GRAFANA_URL is provided

* update documentation

* don't swallow errors from the server process
2025-07-18 17:08:47 +01:00
Luminessa Starlight
a7a17c6929 Chore: remove no longer used webpack-dev-server package (#108332)
removed no longer used webpack-dev-server package
2025-07-18 11:38:48 -04:00
renovate[bot]
0148594c30 Update dependency @faker-js/faker to v9.9.0 (#108329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 16:27:23 +01:00
renovate[bot]
c12fadd8d2 Update dependency @crowdin/crowdin-api-client to v1.46.0 (#108328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 16:27:00 +01:00
Misi
4669b586e9 Security: Fixes for CVE-2025-6197 and CVE-2025-6023 (#108330)
apply security patch: main/439-202506251632.patch

(cherry picked from commit 7f3977c54548dc82d9b2c44c125b30b3dbc2069a)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-18 09:06:26 -06:00
Eric Leijonmarck
aa0f8caa35 Authorizer: rename and enforce only once for NewGrafanaAuthorizer (#108294)
* renaming of GrafanaAuthorizer to make it less confusing

* enforce only once by runtime

* comment only
2025-07-18 15:40:34 +01:00
Kevin Yu
f009c2dcdd CloudWatch: Handle log alerts queries where the time field is not the first field (#108277)
CloudWatch: handle log alerts queries where the time field is not the first field
2025-07-18 07:29:39 -07:00
Johnny Kartheiser
a49b35a7ec Update _index.md (#108192) 2025-07-18 15:10:16 +01:00
maicon
4b440cf45d Remove timeout info from logs when shadow request to search succeeds (#108324)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-18 14:03:42 +00:00
renovate[bot]
b6653d4bb6 Update babel monorepo (#108320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 14:58:47 +01:00
renovate[bot]
1edc8e5a73 Update dependency webpack-manifest-plugin to v5.0.1 (#108319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 13:36:21 +00:00
Alexa Vargas
a30c0aaaae Dashboard: SchemaV2 - Inline Library Panel during Export (#107201)
* Basic implementation of inline library panel

* modify the warning message, we support the export partially by converting regular panels the library panels

* Improve message around the conversion, keep it concise

* Fix linting

* Refactor conversion, extract existing logic into new funcition and reuse it

* remove unnecesary comment

* show error notification when library panel does not load

* Apply PR feedback, remove unnecesary try catch and return json with error, don't throw

* Add unit tests

* Fix monitoring report, add case when v2 is loaded originally or when transformed from v1

* Add unit tests for detect libraryPanels, relevant for ensure monitoring is correct
2025-07-18 15:06:55 +02:00
Josh Hunt
5905e93c63 Fix yarn start:noLint not working since the predev check (#108313) 2025-07-18 13:55:37 +01:00
renovate[bot]
6222117365 Update dependency @grafana/lezer-traceql to v0.0.23 (#108311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 13:53:48 +01:00
maicon
2dba473015 Feature/unified storage search dual reader (#108291)
* Add UnifiedStorageSearchDualReaderEnabled feature flag

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Refactor UniSearch Dual Reader

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Run make gen-feature-toggles

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* fix: unit tests search_client

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* feat: cancels shadow search requests after 500ms

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
Co-authored-by: Will Assis <william@williamassis.com>
Co-authored-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-18 14:43:56 +02:00
renovate[bot]
0b451117ee Update dependency webpack-dev-server to v5.2.2 (#108312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 12:29:05 +00:00
linoman
b4f7c692f5 SCIM: add non ga banner (#108301)
* Add warning banner to Authentication List Page

* i18n update
2025-07-18 14:01:05 +02:00
Alex Bikfalvi
28109ee192 Tempo: New features for TraceQL grammar (#107000)
Support the following features in the TraceQL syntax grammar:

* New instrinsic field: `span:parentID`
* `with(most_recent=true)`

Fixes: https://github.com/grafana/grafana/issues/106978
Fixes: https://github.com/grafana/grafana/issues/104159

Signed-off-by: Alex Bikfalvi <alex.bikfalvi@grafana.com>
2025-07-18 13:47:53 +02:00
renovate[bot]
8eec858054 Update dependency terser-webpack-plugin to v5.3.14 (#108307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 11:29:25 +00:00
renovate[bot]
ddb034b4a0 Update dependency sass-loader to v16.0.5 (#108306)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 11:27:42 +00:00
Roberto Jiménez Sánchez
4847882ee7 Provisioning: handle .git extension more gracefully (#108213)
* Move .git to repository packages

* Bump nanogit 2025-07-17

This version handles `.git` extension internally so that the client
doesn't have to worry about it

* Put back mutation for Github

* Mutate also git URL for clarity
2025-07-18 13:25:21 +02:00
Roberto Jiménez Sánchez
446054a61d Provisioning: fix race condition in usage metrics collection (#108289)
* Register usage stats after lister is created

For enterprise where metrics are collected more frequently and in
different ways the collection was happening before the listing was
initialized.

* Move usage to separate package
2025-07-18 13:24:58 +02:00
Matias Chomicki
046134db22 New Logs Panel: Add events for Panel and Details (#108272)
* New Logs Panel: Add events for Panel and Details

* Logs Panel: add noInteractions property

* New Logs Panel: conditionally report interactions

* Test
2025-07-18 13:13:51 +02:00
renovate[bot]
f7a1398cd4 Update dependency rollup-plugin-node-externals to v8.0.1 (#108304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 11:03:08 +00:00
Misi
0cb6e3fe93 Docs: Add custom fields to Azure/Entra Terraform example (#108222)
Add custom fields to Azure/Entra TF example
2025-07-18 13:00:31 +02:00
renovate[bot]
5b9cb1f568 Update dependency rollup-plugin-esbuild to v6.2.1 (#108303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 11:44:47 +01:00
Roberto Jiménez Sánchez
e3422c415f Provisioning: fix hack-introduced bug on repository updates (#108298)
* Add log line to see which secret service we are using
* Add hack to make test and create endpoint work until we have InLineSecureValues
2025-07-18 10:18:07 +00:00
renovate[bot]
1a09c13770 Update dependency @types/node-forge to v1.3.13 (#108299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 10:17:45 +00:00
renovate[bot]
eed6e4b62b Update dependency vis-network to v10 (#108295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 11:17:42 +01:00
Andres Martinez Gotor
579e412d19 Advisor: Document how to alert based on checks (#108176) 2025-07-18 12:02:13 +02:00
renovate[bot]
25d06e8d78 Update dependency @types/lodash to v4.17.20 (#108297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 09:49:44 +00:00
Misi
d5f47d2a6b IAM: Comment out DualWriter setup for Users (#108241)
* Try 1

* Comment out DW setup for users
2025-07-18 09:29:09 +00:00
Andre Pereira
52c91254cc Tempo: Fix exemplar data links when streaming TraceQL metrics (#108078)
* Fix exemplars when streaming metrics

* Fix type
2025-07-18 10:28:01 +01:00
renovate[bot]
a4cf41de4a Update dependency vis-data to v8 (#108263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 10:17:15 +01:00
Ashley Harrison
4fb464ccdc Playwright: Increase timeout when waiting for app pages (#108296)
increase timeout when waiting for app pages
2025-07-18 10:16:49 +01:00
ismail simsek
35884fa9a4 Chore: Avoid floating point numbers for maxDataPoints (#108292)
* avoid floating point numbers

* prettier
2025-07-18 11:12:08 +02:00
renovate[bot]
960b0e770b Update dependency marked to v16.1.0 (#108262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 09:41:47 +01:00
Ashley Harrison
43280a6dab Internationalisation: More markup following manual review (#108232)
* mark up NestedFolderPiker root item

* mark up fieldsbyframerefid

* mark up time picker options

* mark up field types
2025-07-18 09:40:57 +01:00
Roberto Jiménez Sánchez
5cf48294f7 Provisioning: fix authorized github client initialization (#108290)
* Add logging

* Fix the condition for the github token

* Revert "Add logging"

This reverts commit 71cbc675f6.

* Fix condition
2025-07-18 10:23:55 +02:00
Tom Ratcliffe
ca1ecf0764 Chore: Bump ESLint to 9.28.0 (#106264)
Bump eslint to 9.28.0
2025-07-18 09:04:17 +01:00
grafana-pr-automation[bot]
bf4940f677 I18n: Download translations from Crowdin (#108285)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-18 00:39:17 +00:00
Sarah Zinger
3fad863fd1 Query Service: Combine SSE handling in single tenant and multi tenant paths (#108041)
* parse via sse

I need to figure out how to handle the pipeline.execute with our own
client. I think this is important for MT reasons, just like using our
own cache (via legacy) is important.

parsing is done though!

* WIP nonsense

* horrible code but i think it works

* Add support for sql expressions config settings

* Cleanup:
- remove spew from nodes.go
- uncomment out plugin context and use in single tenant flow
- make code more readable and add comments

* Cleanup:
- create separate file for mt ds client builder
- ensure error handling is the same for both expressions and regular queries
- other cleanup

* not working but good thoughts

* WIP, vector not working for non sse

* super hacky but i think vectors work now

* delete delete delete

* Comments for future ref

* break out query handling and start test

* add prom debugger

* clean up: remove comments and commented out bits

* fix query_test

* add prom debugger

* create table-driven tests with testsdata files

* Fix test

* Add test

* go mod??

* idk

* Remove comment

* go enterprise issue maybe

* Fix codeowners

* Delete

* Remove test data

* Clean up

* logger

* Remove go changes hopefully

* idk go man

* sad

* idk i ran go mod tidy and this is what it wants

* Fix readme, with much help from adam

* some linting and testing errors

* lint

* fix lint

* fix lint register.go

* another lint

* address lint in test

* fix dead code and linters for query_test

* Go mod?

* Struggling with go mod

* Fix test

* Fix another test

* Revert headers change

* Its difficult to test this in OSS as it depends on functionality defined in enterprise, let's bring these tests back in some form in enterprise

* Fix codeowners

---------

Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2025-07-17 17:22:55 -04:00
github-actions[bot]
8acdc7e37b Release: update changelog for main (#108238)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-07-17 19:49:43 +00:00
Leon Sorokin
4b1558b3ea TableNG: Use same hover behavior for one and multiple AutoCell links (#108194) 2025-07-17 19:13:42 +00:00
colin-stuart
08afd73c0c SCIM: Add successful SCIM-provisioned user login usage stat (#108273)
* SCIM: add usage stat boolean for successful login

* revert unrelated change

* rename scimSuccessfulLogins

* clean up
2025-07-17 13:43:30 -05:00
Josh Hunt
6089780b73 E2E: Use while/curl loop for waiting for the server to come up (#108259)
* E2E: Use while/curl loop for waiting for the server to come up

* add 60s timeout
2025-07-17 18:18:29 +01:00
renovate[bot]
ed1b6af28d Update dependency swagger-ui-react to v5.27.0 (#108229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 17:52:11 +01:00
Ashley Harrison
d3ee5f3cda E2E: don't leave a $/ dir hanging around (#108256)
don't leave a $/ dir hanging around
2025-07-17 17:51:32 +01:00
renovate[bot]
0e01fc1437 Update dependency @reduxjs/toolkit to v2.8.2 (#105944)
* Update dependency @reduxjs/toolkit to v2.8.2

* update types to work with new rtk-query version

* kick CI

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-07-17 17:51:11 +01:00
Charandas
d9e099d480 Feature-Flag service: signing middleware for cloud usecase (#107745) 2025-07-17 09:50:25 -07:00
Johnny Kartheiser
08e8a71ad6 alerting docs: activate active timing time (#107928)
* alerting docs: activate active timing time

rough draft: documentation for active timing feature.

* purdier

* more tweaks

* edits via yuri advice

* prettier
2025-07-17 10:56:25 -05:00
Will Browne
f6ed9e6ff0 Plugins: Introduce plugin asset provider (#108063)
* introduce plugin asset provider

* simply with PR feedback

* fix linter
2025-07-17 16:20:35 +01:00
Santiago
8548530dc4 Alertmanager: Add MergeState method (#108242)
* Alertmanager: Add MergeState method

* remove RemoteState in favor of ExternalState

* fix tests
2025-07-17 16:47:14 +02:00
Vadim Stepanov
bccc980b90 Alerting: Notifiication history (#107644)
* Add unified_alerting.notification_history to ini files

* Parse notification history settings

* Move Loki client to a separate package

* Loki client: add params for metrics and traces

* add NotificationHistorian

* rm writeDuration

* remove RangeQuery stuff

* wip

* wip

* wip

* wip

* pass notification historian in tests

* unify loki settings

* unify loki settings

* add test

* update grafana/alerting

* make update-workspace

* add feature toggle

* fix configureNotificationHistorian

* Revert "add feature toggle"

This reverts commit de7af8f7

* add feature toggle

* more tests

* RuleUID

* fix metrics test

* met.Info.Set(0)
2025-07-17 14:26:26 +01:00
Roberto Jiménez Sánchez
810868c156 Provisioning: use new secure value client (#108227)
* Use provider in Webhooks registration

* First stab at using the new client

* Simplify mock

* Able to generate graph in OSS

* Remove line already ensured by provider

* Handle the K8s not found error as well

* Commit regenerated wire file

* Add the hack also for deletion

* Fix secrets test util

* Format file
2025-07-17 15:17:14 +02:00
Andrej Ocenas
58eb0ec954 Analytics: Fix depth calculation when reporting new folder creation (#108231)
Fix depth calculation
2025-07-17 15:07:56 +02:00
Jev Forsberg
1c8a24c489 Chore: Update supported versions doc (#108230)
baldm0mma/ update sup versions
2025-07-17 12:55:45 +00:00
Jack Westbrook
b95c00a80f Frontend: Decouple unit tests for decoupled plugins from core (#107942)
* test(frontend): ignore azuremonitor tests in root jest config

* test(loki): increase waitfor in monacofieldwrapper test

* feat(plugin-configs): introduce jest config

* feat(azuremonitor): add jest config and test scripts

* ci(pr-frontend-unit-tests): introduce separate decoupled plugin test job

* ci(pr-frontend-unit-tests): run decoupled-plugin tests regardless of fork

* Wip

* test(decoupled-plugins): decouple tests in all plugins except loki and mssql

* test(frontend): ignore decoupled plugins that run their own tests

* test(stackdriver): update snapshot due to reactinlinesvg mock difference

* chore(yarn): update lock file

* chore(plugin-configs): remove create-plugin comments

* ci(frontend-unit-tests): make them run on pr or merge to main

* chore(decoupled-plugins): add plugin:test:ci command for locally running all tests

* ci(frontend-unit-tests): run test:ci instead of calling nx directly

* chore(decoupled-plugins): fix jest-dom types for loki and testdata
2025-07-17 14:47:52 +02:00
Gabriel MABILLE
4b217c601a AuthZ: Scope resolution (#107948)
* AuthZ: Scope resolution

* Account for PR feedback

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2025-07-17 14:34:10 +02:00
renovate[bot]
c6ebefdfb6 Update dependency @prometheus-io/lezer-promql to v0.305.0 (#108220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 13:59:05 +02:00
Josh Hunt
4e9c670a00 FrontendService: Fix backend.dockerfile (#108195)
* FrontendService: Fix backend.dockerfile

* comments

* Fix backends rebuilding image instead of just restarting when assets change

* route /logout to grafana backend

* fix script in dockerfile
2025-07-17 12:49:16 +01:00
Mihai Doarna
8dfb4cdfc9 SSO: Add prompt param to SSO settings (#107969)
* add prompt param to AzureAD oauth config

* yarn i18n-extract

* validate auth prompt value

* make login_prompt available for all SSO providers

* use base authCodeURL for azure and google

* add docs for the new field for azure and generic oauth

* fix typo

* fix frontend unit test

* add prompt parameter to docs for the other providers

* remove prompt from okta

* add unit tests for the other providers

* address feedback

* add back translations for prompt labels
2025-07-17 14:40:48 +03:00
linoman
807264428e SAML: Revert SAML assertion default names in documentation (#108212)
Revert SAML assertion default names in documentation
2025-07-17 13:11:48 +02:00
Joey
47ce658154 Trace view: Improved span details view (#108101)
* Details view improvents

* Update tests

* Label update

* Prettier

* Improve span tree offset
2025-07-17 11:33:27 +01:00
renovate[bot]
4b94009a10 Update dependency @opentelemetry/semantic-conventions to v1.36.0 (#108056)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 11:16:55 +01:00
Mariell Hoversholm
aa169a123e Actions(trufflehog): Fix for external PRs (#108215) 2025-07-17 10:16:19 +00:00
Matheus Macabu
f7891a27d2 Secrets: Add kms providers imports (#108210) 2025-07-17 12:04:59 +02:00
Misi
c6a6b9fdd2 IAM: Create and delete user from the legacy store (#107694)
* Add Create for User + DualWriter setup

* Add delete User

* Fix delete + access check

* Add tests for delete user

* Add tests for create user

* Fixes

* Use sqlx session to fix database locked issues

* wip authz checks

* legacyAccessClient

* Update legacyAccessClient, add tests for create user

* Close rows before running other queries

* Use ExecWithReturningId

* Verify deletion in the tests

* Add Validate and Mutate

* Other changes

* Address feedback

* Update tests

---------

Co-authored-by: Gabriel Mabille <gabriel.mabille@grafana.com>
2025-07-17 11:50:40 +02:00
dependabot[bot]
3e29ca786d Bump trufflesecurity/trufflehog from 3.88.29 to 3.90.0 (#108157)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 09:47:36 +00:00
Andres Martinez Gotor
8e663b50e9 Advisor: Allow to define enterprise checks (#108114) 2025-07-17 11:37:32 +02:00
grafana-pr-automation[bot]
3fb0e8cd2c I18n: Download translations from Crowdin (#108200)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-17 09:35:11 +00:00
Josh Hunt
d4fc2399d0 Dx: Add check for node version before yarn start (#108144)
* Dx: Add check for node version before yarn start

* .

* add IGNORE_NODE_VERSION_CHECK env var

* Update scripts/check-frontend-dev.sh

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add check if nvmrc file exists

* fix lint

* codeowners

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-17 10:23:49 +01:00
Will Browne
54d6140e6d Plugins: Stub logger method for backend plugin test mock (#108211)
stub logger method for backend plugin test mock
2025-07-17 10:18:31 +01:00
dependabot[bot]
1f880c8857 Bump marocchino/sticky-pull-request-comment from 2.9.1 to 2.9.3 (#108091)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 10:17:28 +01:00
Hasith De Alwis
208df33e04 Trace View: Add span filters to URL (#107363)
* refactor(explore/spanFilters): move default filters and search props to shared folders

chore: ammend with refactor commit

chore: ammend, fix type errors

* feat(explore): add spanFilters to global state on explore

* feat(explore/spanFilters): sync span filters with global redux state

* feat(explore): sync spanFilters with URL state

* Moved span filters to panel state

* Fix types

* Fix tests in useSearch

* Fix TraceView tests

* Remove console.warn

* fix(test/trace-view-container): add span filter context to intial state

* refactor(traceview): use generic redux action

* fix(traceview): prune array objects correctly to preserve tag state in URL

---------

Co-authored-by: André Pereira <adrapereira@gmail.com>
2025-07-17 10:00:57 +01:00
Matias Chomicki
433a5fd464 Logs: refactor unescaped content (#108187) 2025-07-17 10:59:03 +02:00
Matheus Macabu
6c69ae244e Secrets: Add single tenant SecureValueClient (#108099)
* Secrets: Add single tenant SecureValueClient

* SecureValueClient: Rename file

* SecureValueClient: Move original type to contracts package and export it by aliasing
2025-07-17 10:56:49 +02:00
Jack Westbrook
a0873736aa Frontend: Filter assets-manifest to only include entrypoints (#94679)
build(webpack): filter assets-manifest to only entrypoints
2025-07-17 10:30:52 +02:00
Roberto Jiménez Sánchez
ae4dc181d1 Provisioning: Add user token to git and bitbucket repository specs (#108186)
* Add token user to git and bitbucket specs

* Use token user if available in git type
2025-07-17 10:25:02 +02:00
Matheus Macabu
0d1534e43c GHA: Add workspace check for wire changes (#108163) 2025-07-17 09:24:10 +02:00
Jack Westbrook
0d2657e2f0 Fix: Link path not recognised in CommandPalette link extensions (#108162)
* fix(extensions-ui): commandpalette links should work with urls / paths

* fix(commandpalette): block navigation if url exists before calling perform
2025-07-17 08:03:39 +02:00
Leon Sorokin
c7aa83f8d3 TableNG: Use Set for tracking expanded rows (#108198) 2025-07-16 19:11:28 -05:00
ismail simsek
6b266ebc50 Chore: Remove unused files in @grafana/prometheus (#108135)
* remove unused files

* lint

* resolve circular dependencies

* a bit more circular dependency cleaning

* move unit tests
2025-07-16 16:39:39 -04:00
Alyssa Joyner
1ee0690079 [InfluxDB]: Add max series and auto complete range fields to new design (#108193) 2025-07-16 19:48:41 +00:00
Misi
a94647d5cc Auth: Remove ssoSettingsSAML feature toggle (#108109)
* Remove ssoSettingsSAML feature toggle

* Remove from docs + align tests

* Update workspace

* revert go.mod go.sum change

* make update-workspace without enterprise linked
2025-07-16 21:13:31 +02:00
linoman
032ea5d5b8 Update SAML configuration options (#108178) 2025-07-16 20:39:28 +02:00
linoman
91a54d0e0e SCIM: doc upgrades (#108098)
* Add public preview warning

* Add migration strategy

* Add troubleshooting guide

* Improve description

* Improve docs

* Add versbosity

* Addresss PR comments
2025-07-16 20:39:09 +02:00
Matthew Jacobson
2444fb1caf Alerting: Update grafana/alerting to 8eef376f49f8 (#108190)
Update grafana/alerting to 8eef376f49f8

Includes support for OAuth2 in most notifiers but does not enable that support
yet in FE. Fixes tests related to the change.
2025-07-16 17:33:52 +00:00
Josh Hunt
7a88a64121 FrontendService: Local dev setup (#108082)
* wip

* docker compose dev setup

* commit new tilt stuff

* move files into own dir

* reset files back to main

* use just one nginx container for both gateway and cdn

* update proxy service name

* make it all work when in subdir

* rename more things

* reset more changes

* fix config

* add makefile command, fix ws upgrade

* add local check script

* tidy

* tidy up, comments, readyme

* codeowners

* change cdn host to localhost to avoid adding host.docker.internal to /etc/hosts

* route POST /login to backend

* Build nginx container with config baked in so it can be live_update-ed

* fix headers
2025-07-16 18:28:28 +01:00
Cory Forseth
a0085b6cab skip auth check when server is running in insecure mode (#107820)
* skip auth check when server is running in insecure mode

* add some useful logs

* lint
2025-07-16 13:06:47 -04:00
Sonia Aguilar
9c15662cf6 Alerting: Add AI buttons in some alerting workflows (#107754)
* Add alerting ai buttons for cloud

* add tracking for ai buttons usage

* Empty commit to trigger GitHub Actions

* add FrontendOnly in ff

* update analytics folder

* prettier

* revert ff being frontend only

* review comments

* address some review comments

* refactor

* revert change and remove comment

* prettier

* update betterer

* remove unused property

* prettier

* address review comments

* prettier

* update test

* fix linter errors

* add translations

* prettier

* update workspace

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-07-16 18:42:42 +02:00
Matias Chomicki
974103c6fa OTel: Add experimental formatting for OTel identified log lines (#108170)
* OTel: create formats service

* LogListContext: use OTel service to resolve the default displayed fields

* Create otelLogsFormatting feature flag

* LogListContext: conditionally use otel format based on feature flag

* OTel logs: reformat body and improve displayed fields

* formats: remove duplicated scope name

* Update formats.ts

* format: use regex rules to exclude fields

* Add tests

* Formatting

* LogsPanel: expose setDisplayedFields

* LogListContext: refactor otel displayed fields

* Prettier

* format: optimize identifyOTelLanguages
2025-07-16 17:42:14 +02:00
Yunwen Zheng
2202c99d70 BrowseActions: check selected items are provisioned or not (#107919)
* BrowseActions: check selected items are provisioned or not

---------

Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-07-16 11:22:45 -04:00
TomasR
45d176a672 Tempo: Fix link to documentation for Tag limit (#107898) 2025-07-16 16:01:45 +01:00
Bruno
01692bc876 Secrets: remove unused SecureValueMetadataStorage.ReadForDecrypt method (#108181)
* Secrets: remove unused SecureValueMetadataStorage.ReadForDecrypt method

* remove unused struct: secureValueForDecrypt
2025-07-16 11:52:26 -03:00
Domas
602e327769 Table: fix crash when applying overrides to "frame" type field (#108179)
fix crash when applying overrides to partial nested frames
2025-07-16 14:37:55 +00:00
Isabel Matwawana
e40341ffe8 Docs: Remove references to DD feature toggle (#108142) 2025-07-16 10:07:14 -04:00
Tania
7186aa4bd7 OpenFeature: Fix bulk evaluation request postprocessing (#108155) 2025-07-16 15:54:36 +02:00
Alex Khomenko
6fd75ebc54 Provisioning: Skip requests if feature toggle is not enabled (#108165)
* Provisioning: Skip request if feature toggle is not enabled

* Add check to provisioning page
2025-07-16 16:21:14 +03:00
Ana Ivanov
6715369a78 chore: update limitPerPlugin for commandPalette links (#108174) 2025-07-16 16:01:41 +03:00
Levente Balogh
9db64b55be Plugin Extensions: Notify on core Grafana changes (#108005)
* feat: introduce a Github workflow that is notifying on extension related changes

* review: fix review notes

* review: remove broken heart

* fix: use a new version of the send-slack-message action
2025-07-16 14:27:15 +02:00
Dominik Prokop
b4738c57e4 Dashboards API: Add v2alpha2 (#108121)
* Dashboards API: Register v2alpha2 API

* Prepare conversion functions

* Fix test

* Move to the bottom the v2aplha2 until is ready

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-07-16 12:22:50 +00:00
Sven Grossmann
2fcb86f031 Monaco: Fix hexdigits in monaco langs (#108153) 2025-07-16 13:51:08 +02:00
Todd Treece
10cbebf9c2 Data Plane Aggregator: Update README with more context (#108138) 2025-07-16 11:37:22 +00:00
Sven Grossmann
4588c6c11c ExtensionSidebar: Pass closeSidebar to plugin helpers (#108171)
* ExtensionSidebar: Add `CloseExtensionSidebarEvent`

* ExtensionSidebar: Use `CloseExtensionSidebarEvent` in provider

* ExtensionSidebar: Pass `closeSidebar` to plugin helpers
2025-07-16 11:35:15 +00:00
Roberto Jiménez Sánchez
b232ba5396 Provisioning: Move provisioning extras to OSS extensions (#108167)
* Move provisioning extensions to OSS

* Fix the wire stuff

* Move it to extras packages

* Add hack to assert test differently for enterprise
2025-07-16 13:24:24 +02:00
Ihor Yeromin
f657fc0236 Transformations: Allow count aggregation for groupBy field (#108079)
* feat(transformations): allow groupBy aggregation

* add some details to the documentation

* Update public/app/features/transformers/docs/content.ts

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>

---------

Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-07-16 12:39:19 +02:00
Alexa Vargas
5b0ebb1693 Dashboard: Add Monitoring to v1 and v2 export flow (#107899)
* Dashboard: Add Monitoring to v1 and v2 export flow, including library panels interaction

* fix error with v2 transformed dashboard not having haslibraryPanels

* apply PR suggestions, extract as const and refactor for readability

* Add unit test for the new functions
2025-07-16 11:53:44 +02:00
antonio
d87f7ecfc1 docs/alerting:add missing step in tutorial (#108168)
* docs/alerting:add missing step in tutorial

* format
2025-07-16 09:20:14 +00:00
Matheus Macabu
2c4bbf8b1d Secrets: Reduce amount of feature toggle checks to only app entrypoint (#108110)
* Secrets: Reduce amount of feature toggle checks to only app entrypoint

* Wire: Fix merge conflict

* Wire: Fix merge conflict
2025-07-16 10:56:59 +02:00
Ida Štambuk
4cc4c6c666 CloudWatch: Set accountId to undefined if not monitoring account (#108112) 2025-07-16 10:19:40 +02:00
Matheus Macabu
3cda233468 Secrets: Remove temporary allowlist (#108118) 2025-07-16 09:39:33 +02:00
Roberto Jiménez Sánchez
56543db16a Provisioning: delete secrets on repository deletion (#108113)
- Add hooks to git, github and github webhooks to remove the. 
- Implement deletion in secrets package.
- Add `Mutator` interface and hooks so that we can register any mutator. 
- Add unit test coverage to those mutators. 
- Move provider specific mutation from the massive `register.go` to the respective packages (e.g. `git` , `github`, etc). 
- Add integration test for removal. 
- Change the decryption fallback to simply check for the repository prefix.
2025-07-16 07:38:42 +00:00
Mustafa Sencer Özcan
4a779c4ccb fix: unified resource server list queries order column (#108094) 2025-07-16 08:09:31 +02:00
Hugo Häggmark
5b82e05697 Plugins: replaces various plugin imports with pluginImporter (#108002)
* Plugins: renames plugin_loader

* Wip

* chore: adds pluginImporter

* chore: some small refactors

* chore: better typings

* chore: merge functions

* chore: create a generic plugin cache

* chore: adds comments

* chore: change to const

* chore: remove unused change

* chore: put everything behind feature toggle

* chore: rename test file and props

* chore: adds sync cache as well

* chore: fix the typings

* chore: fix broken unit test

* chore: small rename

* chore: adds tests

* chore: updates after PR feedback

* chore: updates after PR feedback
2025-07-16 06:42:28 +02:00
grafana-pr-automation[bot]
332601320c I18n: Download translations from Crowdin (#108158)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-16 00:40:20 +00:00
Drew Slobodnjak
1143cf130e Geomap: Upgrade Open Layers (#107598)
* Geomap: Upgrade Open Layers

* Fix TypeScript errors

* Fix possibly null errors

* Fix pointer events

* Simplify webgl implementation for markers

* Improve types

* Fix offset expression

* Improve layers types

* Improve types for tooltip

* Improve types for frameVectorSource

* For regular shapes convert size to radius

* Update import format for new version of ol

* Fix ESM syntax errors

* Fix more e2e stuff

* Fix tooltip test

* Simplify redundant keys
2025-07-15 17:04:41 -07:00
Nathan Marrs
b691b3288d Sharing: Export dashboard as image (#104207)
Co-authored-by: AgnesToulet <35176601+AgnesToulet@users.noreply.github.com>
2025-07-15 21:07:39 +00:00
Alyssa Joyner
a977aa9d03 [InfluxDb]: Fix DBRP mapping typo (#108152) 2025-07-15 20:22:21 +00:00
Leon Sorokin
e42c45c30f TableNG: Avoid render-time emotion calls for AutoCell (and colored cells) (#108048)
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-07-15 14:42:06 -05:00
Adela Almasan
cd1f086d33 Docs: Update actions with variables (#108145) 2025-07-15 14:09:37 -05:00
Kevin Minehart
bf6b4c695e CI: Disable gzip encoding on upload (#108149)
* Use my fork for testing

* set gzip: false

* use push-to-gcs@main

* use my branch for testing

* use main for login and push to gcs?

* Use push-to-gcs/v0.2.1

* use main; set gzip to false

* use main instead of my branch
2025-07-15 19:04:58 +00:00
Bruno
6fa3c196d4 Secrets: add example based testing that tries to decrypt deleted secure value (#108140) 2025-07-15 15:40:52 -03:00
Michael Mandrus
ab51794bdb SecretsManager: Unify KMS across OSS and Enterprise (#108085)
* everything is compiling

* tests passing

* remove used object

* write a test for secret key upgrades

* misc cleanup

* clean up some wording

* lint issues

* fix a typo

* import hashicorp dependency explicitly

* simplify oss kmsprovider package structure

* consolidate current provider and available providers

* add a new manager configuration test

* fix hashivault import

* fix import issue

* fix unit tests

* Update go.mod

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>

---------

Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-07-15 14:39:20 -04:00
Martin Costello
469f94028f Docs: Update ISSUE_TRIAGE (#106839)
* Docs: Update ISSUE_TRIAGE

- Convert flowchart to a Mermaid diagram.
- Use native GitHub note.
- Fix GitHub casing.

* Docs: Fix lint error

Remove extra blank line.
2025-07-15 18:33:53 +00:00
Haris Rozajac
2f8ec01c6c Dashboard Migrations: V29 query variable refresh property and options (#108088)
* Dashboard Migrations: V31 LabelsToFields-Merge Migration

* Dashboard Migrations: V32 No-op migration

* simplify

* Refactor to reduce nesting

* Dashboard Migrations: V30 value mappings and tooltip options

* Do not automigrate since graph is migrated in v27

* Refactor to reduce nesting

* Add test case for invalid mapping

* migrate to v29

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-07-15 17:27:04 +00:00
Ivan Ortega Alba
1200b684c6 Dashboard Migrations: V30 value mappings and tooltip options (#107970)
* Dashboard Migrations: V30 value mappings and tooltip options
2025-07-15 16:44:11 +00:00
Matias Chomicki
b839090de5 New logs Panel: Log details improvements + default details value update (#108065)
* LogLineDetails: prettify json field values

* processing: prettify json according to wrap status

* LogLineDetailsField: better column width for keys

* LogsPanel: let app have automatic details mode

* Fix prop name

* LogLineDetails: memoize

* LogLineDisplayedFields: add icons to organize

* Displayed fields: add cursor move

* LogLineDetailsFields: improve key columns

* Remove test

* Translations

* Formatting

* LogLineDetailsFields: minor refactor and fix

* LogLineDetails: remember inline scroll position

* LogLineDetails: test displayed fields reorg

* Update mock

* LogLineDetailsComponent: add missing disable actions

* Log details copy button: gap = 0

* LogLineDetailsDisplayedFields: use fixed size for inline fields
2025-07-15 16:17:20 +00:00
Ivan Ortega Alba
14cb6aea92 Dashboard Migrations: V32 no-op migration + V31 LabelsToFields-Merge Migration (#107947)
* Dashboard Migrations: V31 LabelsToFields-Merge Migration

* Dashboard Migrations: V32 No-op migration
2025-07-15 15:28:48 +00:00
Isabella Siu
da0f1d7b18 AWS Datasources: Update grafana assume role docs for GA (#107220)
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
2025-07-15 10:59:01 -04:00
Josh Hunt
5751b441e1 Docs: Fix format of quick_ranges (#107973) 2025-07-15 15:35:00 +01:00
Konrad Lalik
930c5a7024 fix(alerting): use alerting-admin as navId for settings (#108116) 2025-07-15 16:34:40 +02:00
Gilles De Mey
8cb6993fe6 Alerting: Improve new list view performance (#108115) 2025-07-15 14:34:21 +00:00
Bruno Abrantes
c06c1b1e8a fix: Makes created and updated by nullable strings for library panel migration (#108122)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2025-07-15 16:30:31 +02:00
ismail simsek
d602e79e9a Chore: Remove unnecessary exports (#108124)
* no unnecessary exports

* needs exports

* put query builder types back

* put types back

* betterer
2025-07-15 16:20:09 +02:00
maicon
b017f42278 Unistore: Fix dualwriter mode 3 (#108092)
* Unistore: Fix dualwriter mode 3

Fallback to legacy if Unified is the main store and we get an error when
reading from it

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>


---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-15 11:16:26 -03:00
Stephanie Hingtgen
d39a47a89b Provisioning: Begin using secrets store (#108044)
- Provisioning: Begin using secrets store
- Refactor integration with secrets store
- Add back the legacy service
- Separate concerns for encrypt and decrypt
- Handle update within Encrypt function
- Add interface for secure value service
- Add feature flag for using secrets service
- Add the dual service for temporary solution.

* Add first integration tests for encrypted tokens
* Add integration test for app platform secrets
* Validate it has the name or not
* Create wire provider
* Always save to the secret if provided secret

---------

Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
Co-authored-by: Roberto Jiménez Sánchez <jszroberto@gmail.com>
2025-07-15 15:43:17 +02:00
Piotr Jamróz
68b9a5f57c Tempo: Add a feature toggle for Alerting (#106891)
* Add a feature toggle

* Disable alerting when the toggle is switched off

* Update tests

* Update tests

* Update tests

* Simplify ReadPluginJSON as it's used by enterprise

* Update test

* Update test

* Add the toggle check to loader.go

* Move the logic to plugins integration pipeline
2025-07-15 15:36:36 +02:00
ismail simsek
3d9228f296 Chore: Remove default export of promqlGrammar (#108120)
remove default export
2025-07-15 15:13:44 +02:00
ismail simsek
5b5cce3243 Chore: Remove unused parseSelector function (#108119)
remove unused parseSelector
2025-07-15 14:10:47 +01:00
Luminessa Starlight
8480862854 TimeRangePicker: Use consistent format in date-time input fields (#107117)
* when localeFormatPreference toggle is enabled, always use a common datetime format in TimeRangePicker

* fix lint issue
improve comment

* test printing datetime input format

* adds tests for entering dates in inputs to be parsed
adds will-be redundant tests to ensure system date format is or isn't respected when appropriate
2025-07-15 09:07:33 -04:00
Konrad Lalik
24ebb27ebe Alerting: Add forwardRef to MetaText component (#108107)
feat(alerting): Add forwardRef to MetaText component

This change introduces forwardRef to the MetaText component, allowing parent components to gain direct access to the underlying div element. This is particularly useful for scenarios where the parent needs to measure the component's dimensions, manage focus, or integrate with other libraries that require a DOM element reference.
2025-07-15 13:18:28 +02:00
Misi
92d098fdfd Auth: Make domain_hint configurable for the Azure AD/Entra ID connector (#108061)
* Make domain_hint configurable for Entra ID/Azure AD

* Add docs

* Fix + i18n gen

* Add validation to domain hint

* Remove unnecessary change
2025-07-15 12:53:19 +02:00
Matheus Macabu
4954822cbb Secrets: Add separate package for resource validation (#108097)
* Secrets: Add SecureValueService interface

* Secrets: Move resource validators to their own package/structs for reusing
2025-07-15 12:33:14 +02:00
Matheus Macabu
62fd3ba36f Secrets: Remove v0alpha1 spec, files and references (#108100) 2025-07-15 12:33:00 +02:00
Santiago
71a425f912 Remote Alertmanager: Fetch full state from Mimir (#107905)
* Remote Alertmanager: Add method to fetch the full state

* decode and parse the remote Alertmanager state string

* test
2025-07-15 11:38:38 +02:00
Sven Grossmann
ac6f65923d Extensions: Add missing description field for exposed functions (#107964) 2025-07-15 11:23:11 +02:00
Tobias Skarhed
683a27bf8b Scopes: Fix height pixels for recent scopes (#108103)
Recent scopes to pixel perfection
2025-07-15 08:47:41 +00:00
ismail simsek
db7087fdfc Fix: Showing raw prometheus table result (#107980)
Fix showing prometheus result
2025-07-15 08:39:40 +02:00
ismail simsek
67573d5513 Prometheus: Fix interpolating minStep for range queries when incremental querying enabled (#107715)
* return calculatedMinStep in first frame of the response

* update test files

* make the custom metadata as type of map[string]any

* append calculatedMinStep to custom metadata

* fix exemplar frame checking
2025-07-15 08:37:43 +02:00
Gábor Farkas
868791d751 ds-querier: handle response-headers explicitly (#107304) 2025-07-15 08:31:57 +02:00
grafana-pr-automation[bot]
2c0cfb0dc7 I18n: Download translations from Crowdin (#108089)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-15 00:38:35 +00:00
Paul Marbach
6c907fd955 Table: Ensure that SparklineCells honor configured mins and maxes (#107991)
* Table: ensure that FieldType.frame fields have mins and maxes applied

* update Sparklines gdev dashboard

* update gdev dashboards for table

* jsonnet spacing

* fix gdev dashboard ids and versions
2025-07-14 21:41:32 +00:00
Heather Cloward
58c990b2ca Adds cloud provider to fine-graned rbac list (#108042) 2025-07-14 17:45:56 +00:00
Paul Marbach
f19b2ef429 TableNG: Move useCallback up in TablePanel (#108080) 2025-07-14 13:08:50 -04:00
Josh Hunt
12f05a8553 Dashboards: Add join and customqueryparam template variable formatters (#107904)
* Update scenes lib

* update schema for customqueryparam formatter

* add docs for new formatters

* fix docs example

* sort alpha
2025-07-14 17:08:06 +01:00
Matheus Macabu
403d6380fa Secrets: Remove gating with experimental APIs feature toggle (#108058) 2025-07-14 17:46:17 +02:00
Michael Mandrus
015b2f6b0a Chore: Update gocloud.dev dependency to v0.42.0 (#108054)
* update dependency

* make update-workspace

* rerun with ge linked

* add codeowner

* rerun WITHOUT enterprise
2025-07-14 11:11:40 -04:00
Yunwen Zheng
7ad6358e40 DeleteProvisionedFolderForm: navigate user to dashboard page with open PR banner when push to branch (#107989)
* DeleteProvisionedFolderForm: navigate user to dashboard page with open PR banner when push to branch
2025-07-14 15:01:43 +00:00
Santiago
d4670b1cee Alertmanager: Add methods to merge nflog and silences (#108006) 2025-07-14 16:23:23 +02:00
Tania
e079cb3738 Simplify open feature setup (#107632)
* Simplify open feature setup

* Fix linter issues

* Apply review feedback

* Fix integration tests setup
2025-07-14 16:22:04 +02:00
Andres Martinez Gotor
d1f785c8bf New link extension point for DatasourceTestingStatus (#107571) 2025-07-14 15:51:19 +02:00
Domas
8eef17cb37 QueryVariable: Add static options input (#107514)
* static options for query variable

* add toggle

* fix and add tests

* run the hack codegen thing

* more test fixes

* make betterer happier

* also make typecheck happy

* make betterer happier

* fix i18n key

* tranalte static variables sort label

* gen translations

* update snapshot
2025-07-14 16:05:56 +03:00
Bruno
baa89f3eac Secrets: encryption encryption storage uses versioning (#108036)
* Secrets: delete unused FakeKeeper

* Secrets: encrypted value storage stores versions

* add version to span

* trigger build

* remove ineffectual assignment

* lint

* drop secret_encrypted_value.uid / add name and version columns
2025-07-14 09:28:07 -03:00
grafana-pr-automation[bot]
afe6cd8a6d I18n: Download translations from Crowdin (#108047)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-14 11:48:41 +00:00
Ihor Yeromin
32fecb9483 Geomap: DX improvements (#107588)
chore(geomap): dev experience improvements
2025-07-14 13:38:06 +02:00
Bogdan Matei
12ec94c325 Dashboard: Remove DTO cache and scene cache on dashboard delete (#107460) 2025-07-14 14:34:43 +03:00
Ashley Harrison
9f76564f51 VizColors: Use more named colors in the classic palette (#107714)
* use more named colors in the classic palette

* update unit tests
2025-07-14 12:22:24 +01:00
Mustafa Sencer Özcan
84a4ed612b fix: re-order db initialization logic for resource server (#108059) 2025-07-14 10:25:42 +00:00
Hugo Häggmark
4260dea554 Plugins: adds plugin version to mutation logs (#108057)
* Plugins: adds plugin version to mutation logs

* chore: updates after PR feedback
2025-07-14 11:52:48 +02:00
Levente Balogh
75a6aa7838 Plugin Extensions: Update extension-point ID validation (#107959)
* feat(extensions): don't allow core grafana extension point ids in plugins

* feat(extensions): log more specific errors if extension point id validation fails

* chore: move the ExtensionSidebar ext. point id to grafana-data

* review: remove type assertion
2025-07-14 10:18:21 +02:00
renovate[bot]
fe7cc4c9a7 Update dependency msw to v2.10.4 (#108055)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 06:26:51 +00:00
renovate[bot]
e22ace4031 Update dependency react-select to v5.10.2 (#108030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 05:41:33 +00:00
dependabot[bot]
4c4abd72e7 Bump google-github-actions/setup-gcloud from 2.1.2 to 2.1.4 (#108022)
Bumps [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) from 2.1.2 to 2.1.4.
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](6189d56e40...77e7a554d4)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  dependency-version: 2.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 06:17:18 +02:00
Matheus Macabu
e33a4b147b Air: Stop running make gen-go (#108001)
Experimenting removing the `make gen-go` step on every rebuild, which speeds up the reload loop, since the wire files are now committed.
2025-07-13 13:42:38 +01:00
Leon Sorokin
7344c1c555 TableNG: Simplify Pill cellType and reduce scope (#107934)
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-07-11 21:28:06 -05:00
grafana-pr-automation[bot]
b0e85a637f I18n: Download translations from Crowdin (#108045)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-12 00:38:54 +00:00
Roberto Jiménez Sánchez
b49b103f42 Provisioning: Return available repository types in settings endpoint (#107977)
* Add types for other repositories

* Inject the types from extras

* Fix go-lint

* Fix typecheck

* Add it to the tests

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-07-11 22:07:04 +00:00
Jev Forsberg
eab8c1db07 Chore: Add comment about shallow clones/single-branch clones (#108043)
baldm0mma/ add comment about shallow clones/single-branch clones
2025-07-11 13:10:20 -08:00
Roberto Jimenez Sanchez
4b8e565a16 Fix innefectual assigment 2025-07-11 23:02:19 +02:00
Roberto Jimenez Sanchez
1912c4ccc3 Regenerate wire 2025-07-11 23:02:19 +02:00
Roberto Jimenez Sanchez
cff66e8b45 Remove TODOs 2025-07-11 23:02:19 +02:00
Roberto Jimenez Sanchez
acd6df6b89 Fix provisioning reporting 2025-07-11 23:02:19 +02:00
Roberto Jiménez Sánchez
05a2d26787 Provisioning: Add refs endpoint (#108014) 2025-07-11 13:58:39 -07:00
Tania
a33b634a9f OpenFeature: Inject eval ctx into req ctx (#108017)
* OpenFeature: Inject eval ctx into req ctx

* Remove stackId

* add unit test

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

---------

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-07-11 21:26:44 +02:00
Tania
f9f04c2a55 OpenFeature: Fix ofrep path and stack id check (#107884)
* OpenFeature: Fix ofrep path and stack id check

* Use namespace instead of stackId in eval ctx

* Apply review feedback

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

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

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

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

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-07-11 21:14:23 +02:00
mohammad-hamid
2cd0be3cbd Update authlib version (#107939)
* update authlib version

* add latest versions

* make update-workspace

* typo

* Trigger Build

* Trigger Build
2025-07-11 14:55:52 -04:00
Sarah Zinger
db3ab6a0a7 Fix typo in docs (#107976) 2025-07-11 18:46:31 +00:00
Jacob Valdez
c20067d70a docs: Clarifying the support level of SCIM (#108034) 2025-07-11 12:53:34 -05:00
Jev Forsberg
fd269ce041 Chore: Fix releaseFinder script perf (#108035)
* baldm0mma/ speed up branch loop

* baldm0mma/ rem unneeded comment

* baldm0mma/ update release output format

* baldm0mma/ refactor
2025-07-11 17:43:03 +00:00
Matheus Macabu
9c1b2fb792 Secrets: Bump API version to v1beta1 (#108026) 2025-07-11 19:14:05 +02:00
Ryan McKinley
9786389ae8 SecureValues: Support inline secure values in GrafanaMetaAccessor (#107996) 2025-07-11 16:47:54 +00:00
Kevin Minehart
180a901c7d CI: Change prerelease bucket path from {VERSION} to {VERSION}_{BUILD_ID} (#108031)
* CI: Change prerelease bucket path from {VERSION} to {VERSION}_{BUILD_ID}

* use run_id
2025-07-11 16:38:43 +00:00
Georges Chaudy
7002ab90ae unistore: save returns a writecloser (#107955)
* unistore: save returns a writecloser

* go-lint

* address comments
2025-07-11 18:25:48 +02:00
antonio
519e0449e7 add video to get started with grafana alerting 1 (#107952) 2025-07-11 17:45:31 +02:00
Adela Almasan
40da94cf74 Annotations: Allow target="_blank" (#106301)
Co-authored-by: Kristian Bremberg <kristian.bremberg@grafana.com>
2025-07-11 15:19:40 +00:00
Josh Hunt
98995922f9 Transformations: Import images with webpack (#107795)
* Transformations: Import images with webpack

* fix mock registry

* use mockTransformationsRegistry in more places
2025-07-11 15:48:27 +01:00
renovate[bot]
e4f78c462e Update dependency react-virtualized-auto-sizer to v1.0.26 (#105005)
* Update dependency react-virtualized-auto-sizer to v1.0.26

* fix unit tests

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-07-11 14:04:04 +00:00
Jean-Philippe Quéméner
602b7826c4 refactor(unified-storage): remove resource_server config option (#107649) 2025-07-11 15:33:51 +02:00
Paul Marbach
73ab088804 TableNG: Scrollbar width handling (#107994)
* TableNG: Scrollbar width handling

* slight cleanup

* fix types

* fixie

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-07-11 08:50:25 -04:00
Bruno
9d0a23e1f5 Secrets: add crudl+decrypt state machine test (#107971)
* Secrets: add state machine test for CRUDL+decrpt operations

* make update-workspace

* make update-workspace

* make enterprise-dev

* make update-workspace

* fix go.mod

* make update-workspace

* fix gomod

* make update-workspace

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
2025-07-11 09:40:50 -03:00
Jacob Valdez
39d7fbd66e Docs: Updating team sync admonition wording (#107990) 2025-07-11 07:25:43 -05:00
Yury Molodov
f94722e1e3 Tempo: Add Victoria Logs support for "traces to logs" (#105985)
* feat(trace-to-logs): add VictoriaLogs datasource support

Signed-off-by: Yury Molodov <yurymolodov@gmail.com>

* tempo: fix lint errors in createSpanLink.tsx

Signed-off-by: Yury Molodov <yurymolodov@gmail.com>

---------

Signed-off-by: Yury Molodov <yurymolodov@gmail.com>
2025-07-11 14:22:50 +02:00
maicon
ce73e5126a Folders/k8s: Enable all dualwriter modes on remaining integration tests (#107992)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-11 09:20:01 -03:00
Matheus Macabu
c9b2126c4a Secrets: Add v1beta1 schema with CUE + grafana-app-sdk (#107972)
* Secrets: Add v1beta1 API using CUE

* Secrets: Generate spec with app-sdk

* Secrets: Generate decrypt proto

* Secrets: Add manual files to help transition
2025-07-11 13:42:46 +02:00
Jean-Philippe Quéméner
c238016532 chore(folders): add correct CODEOWNERS entry (#108018) 2025-07-11 11:34:27 +00:00
Anna Urbiztondo
31a7f79efd [Advisor]: Tile text update (#108009)
Tile text update
2025-07-11 13:12:25 +02:00
Ashley Harrison
16183d794c E2E: fix storybook e2e playwright test (#108010)
* fix storybook e2e playwright test

* update action to run if test is modified
2025-07-11 10:50:00 +00:00
grafana-pr-automation[bot]
d6f52d5d9b I18n: Download translations from Crowdin (#107998)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-11 10:16:28 +00:00
Ashley Harrison
66b79fb221 Internationalisation: Mark up transformations (#107910)
* CalculateFieldTransformerEditor

* more CalculateFieldTransformer

* ConcatenateTransformerEditor

* ConfigFromQueryTransformerEditor

* mark up other transformations

* few things spotted manually
2025-07-11 11:13:35 +01:00
Kristian Bremberg
0a0d926531 BackendSrv: Validate newline and tabs in validatePath (#108008)
Validate newline and tabs in validatePath
2025-07-11 10:13:23 +00:00
Ashley Harrison
453a791db1 Internationalisation: More mark up following manual review (#107709)
* mark up variable types

* mark up annotation stuff

* mark up TagsInput placeholder

* mark up validation messages

* mark up required error

* Mark up metrics explorer modal
2025-07-11 10:34:24 +01:00
Ashley Harrison
b6580ccb10 E2E: migrate to playwright (#107241)
* separate playwright into its own folder

* better separation

* add login scenario, add tags

* remove ui option

* update CODEOWNERS

* add a panels suite test

* migrate queries test to playwright

* rename + add dashlist test

* add panelEdit_base

* add geomap map controls test

* add geomap-layer-types

* add geomap-spatial-operations tests

* add frontend-sandbox-panel tests

* add smoke-tests-suite

* add comment about adding datasource

* add dashboard-browse-nested

* add dashboard-browse

* add dashboard-export-json

* add dashboard-keybindings test

* remove @wip tag

* turn on screenshots and add comment for why this test fails

* add dashboard-links-without-slug test

* try adding permissions in the test as well

* add dashboard-live-streaming

* context in the test doesn't work - sad

* create dashboard-public-templating

* add dashboard-public-create and make live streaming more resilient

* add share externally test

* add dashboard-share-internally

* add share-snapshot-create test

* add dashboard-templating

* add timepicker tests

* add embedded-dashboard test

* add general_dashboards test

* add import-dashboard test

* add load-options-from-url test

* add new-constant-variable test

* add custom-variable test

* add new-datasource-variable test

* add new-interval-variable test

* add text-box-variable test

* add new-query-variable test

* add horizontal repeat test

* add panel-vertical-repeat test

* add empty-row-repeat test

* add set-options-from-ui test

* add snapshot-create test

* add templating test

* add textbox-variables test

* add cloud-plugins-suite

* add storybook verification tests

* add playwright storybook verification workflow

* add playwright browsers

* update CODEOWNERS

* test change to trigger storybook verification workflows

* try container instead

* get the version right...

* go back to installing - less chance of forgetting to update

* Basic Github Actions

Squashed commit of the following:

commit f84c650a71
Author: joshhunt <josh.hunt@grafana.com>
Date:   Tue Jul 1 13:23:46 2025 +0100

    add arg for sharding, but not using it yet

commit 7bcf0512c6
Author: joshhunt <josh.hunt@grafana.com>
Date:   Tue Jul 1 12:30:30 2025 +0100

    less newline

commit b643911882
Author: joshhunt <josh.hunt@grafana.com>
Date:   Tue Jul 1 12:24:31 2025 +0100

    less logs

commit 38f871e9c2
Author: joshhunt <josh.hunt@grafana.com>
Date:   Tue Jul 1 10:00:26 2025 +0100

    fix yaml

commit db9a773136
Author: joshhunt <josh.hunt@grafana.com>
Date:   Tue Jul 1 09:57:47 2025 +0100

    clean up files

commit c0525f41fa
Author: joshhunt <josh.hunt@grafana.com>
Date:   Tue Jul 1 09:44:56 2025 +0100

    gha workflow

commit 895bea7c52
Author: joshhunt <josh.hunt@grafana.com>
Date:   Mon Jun 30 19:33:08 2025 +0100

    working dagger

commit cea1f84437
Author: joshhunt <josh.hunt@grafana.com>
Date:   Mon Jun 30 16:17:46 2025 +0100

    wip

* shard gha

* some tidy up

* add flags for exporting results, and a gha step to merge runs

* fix shard gha

* add dashboard-duplicate-panel test

* add dashboard-outline test

* add dashboards-add-panel

* remove some commented out code

* add dashboards-title-description test

* add dashboards-remove-panel

* don't install cypress

* gha: check playwright results

* add dashboards-edit-adhoc-variables test

* fix check-jobs

* add dagger cloud token

* add dagger cloud token

* add edit-datasource-variable test

* update CODEOWNERS

* add dashboards-edit-group-by-variables (skipped for now)

* add dashboards-edit-panel-title-description test

* add dashboards-edit-transparent-bg test

* add dashboards-edit-query-variables test

* run with 8 shards

* add dashboards-edit-variables

* tidy up gha

* add dashboard-group-panels

* fix action

* try to cache the grafana build

* fix missing action becuase no checkout, use builtin continue-on-error instead

* fix missing id

* cat out.txt

* debug build cache

* fix debug build cache

* add dashboards-panel-layouts test

* tidy up

* no more debug

* fix grafana dir

* add dashboards-move-panel test

* skip some failing tests

* mark up plugins tests with @plugins tag, only run @plugins tests in drone

* Hackathon/Playwright Conversion - Various Suite (#107516)

* Playwright Migration: Various Suite tests

* skipping bad tests

* fix some tests that can fail

* fix uid

* separate user for the verify-i18n test

* build test plugins for grafana server

* properly blur input fields

* login manually

* get dashboardPage from goto

* ignore a couple of type assertions

* remove a couple of timeouts

* remove timeouts on dashboard-share-internally

* use toBeHidden

* make dashboard-share-internally more stable

* remove TEMP_DAGGER_TOKEN

* clean up visaulization-suggestions

* unskip gauge test

* unskip trace-view-scrolling

* attempt to make create variable utils stable

* unskip loki tests

* make go linter happy

* unskip edit-group-by-variables test

* unskip move panel tests

* isolate dashboard-timepicker tests with separate user

* create data source as part of smoke test

* make sure we're awaiting in dashboard-edit-adhoc-variables

* make dashboards-edit-variables test more robust

* Hackathon Playwright: Dashboards Search (#107580)

* Hackathon Playwright: Dashboards Search

* Feedback changes

* make trace-view-scrolling more stable

* add json report and bench step

* fix bench version

* move fail step to after the playwright report so we can report test failures

* fix output file name

* fix typo

* try wrap in expect.poll

* stability

* bit more tidy up

* fix dashboard-new-layouts tests

* move test-plugins to e2e-playwright

* fix go code for drone e2e run

* move loki plugin-e2e test

* make v2 dashboards work again

---------

Co-authored-by: joshhunt <josh.hunt@grafana.com>
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Co-authored-by: Collin Fingar <collin.fingar@grafana.com>
Co-authored-by: Jeff Levin <jeff@levinology.com>
2025-07-11 10:31:33 +01:00
Georges Chaudy
ea0ddb3fc9 unistore: refactor get to return a reader (#107951) 2025-07-11 11:10:19 +02:00
Santiago
a314b99589 Remote Alertmanager: Use the same struct for Grafana state and Mimir full state (#107791)
Remote Alertmanager: Use the same struct for Grafana stat and Mimir full state
2025-07-11 10:10:30 +02:00
Ryan McKinley
ac86126a57 Chore: Update auto-generated clients (#107986) 2025-07-11 09:49:41 +02:00
Robert Horvath
dcea36dffc Add Relyance github action (#107012)
* add relyance workflow

* add relyance config

* exclude folders and patterns from scanning

* add security as codeowner of relyance
2025-07-11 08:44:47 +02:00
Yunwen Zheng
b1c50d6354 Revert "KBARResults: Add Cmd+Enter/Ctrl+Enter to open links in new tab" (#107933)
Revert "KBARResults: Add Cmd+Enter/Ctrl+Enter to open links in new tab (#107537)"

This reverts commit a2a28b207c.
2025-07-11 08:48:50 +03:00
Kristina
a01b4c31a1 Transformations: Allow queries without dataframe results to be selectable as filters (#107152)
* Add mention of external type to correlations docs

* 🆗

* Merge request targets in with results

* Ensure we do not mutate result set
2025-07-10 18:47:18 -05:00
linoman
a1e4280603 SCIM: Add is provisioned field to update command (#107978)
* Remove noisy log line

* Add IsProvisioned field to UpdateUserCommand

* Update user store to include the new IsProvisioned field

* Update store tests to include the new IsProvisioned field
2025-07-10 23:49:45 +02:00
Blueswen
1cd6ef6b84 Docs: Align Jira documentation with contact point options (#105069)
Align with option names in contact point.

To avoid confusion, ensure that the documentation aligns with the option names used in the Jira contact point.
2025-07-10 21:15:04 +00:00
Adam Yeats
82e380ed90 InfluxDB: Handle STRING_VIEW datatype (#107812)
This PR fixes an error when reading STRING_VIEW columns by correctly mapping STRING_VIEW in the newField factory and by adding a dedicated test to validate copyData’s handling of both nullable and non‐nullable STRING_VIEW arrays. This enables the Distinct Value Cache feature of InfluxDB v3 Enterprise for use.
2025-07-10 21:41:57 +01:00
Mihai Turdean
a3af6023c3 Zanzana: Support more cache configuration options (#107155) 2025-07-10 19:51:02 +00:00
Ryan McKinley
06c00e4fa7 Chore: apimachinery types cleanup (#107988) 2025-07-10 12:45:16 -07:00
Stephanie Hingtgen
13a89d4ae3 Revert: Future-proofing query and data source model in Dashboard Sche… (#107985)
* Revert: Future-proofing query and data source model in Dashboard Schema v2

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-07-10 18:58:33 +00:00
maicon
18b5a9eb8d Run TestIntegrationFoldersApp for all dualwriter modes on sqlite only (#107818)
* Run TestIntegrationFoldersApp for all dualwriter modes on sqlite only

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-10 18:16:27 +00:00
Matias Chomicki
86aa70322b New Logs Panel: Parse JSON by default and show highlighted log in details (#107953)
* processing: sanitize highlighted log before highlighting

* processing: prettify json by default

* LogLineDetails: render prettified log

* processing: implement newlines truncation

* Remove log

* Linting issues

* Linting

* Update unit tests

* processing: use correct property

* Formatting

* processing: reflect updated collapse state

* processing: add test case

* processing: use lossless json to parse

* LogLine: receive logs for inline details stats

* Remove log

* LogListModel: specialize clone for loglinedetails
2025-07-10 18:07:27 +00:00
maicon
b1fcdb9c09 Folders: run integration tests only for SQLite (#107979)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-10 14:48:14 -03:00
Stephanie Hingtgen
2b8c5bea1a Revert "Schema V2: Simplify annotations v1<->v2 conversions" (#107984)
Revert "Schema V2: Simplify annotations v1<->v2 conversions (#107390)"

This reverts commit d5a1781fb6.
2025-07-10 17:29:15 +00:00
Nathan Vērzemnieks
15e59a0ca7 Prometheus: Use patched grafana-aws-sdk middleware for panic handling (#107982)
Prometheus: use patched grafana-aws-sdk middleware for panic handling
2025-07-10 19:21:16 +02:00
Collin Fingar
0c76b52e8b Share Button: Added ClipboardItem route after Safari issues (#107925)
* Share Button: Added ClipboardItem route after Safari issues

* Removed console log

* Feedback fixes

* Test feedback fix

* Removed export
2025-07-10 12:59:41 -04:00
Roberto Jiménez Sánchez
7e0848294e Provisioning: Use Nanogit for basic git operations in Github repository type (#107889) 2025-07-10 09:46:38 -07:00
alerting-team[bot]
9df15d120d Alerting: Update alerting module to c5c6f9c1653d816439184c5ec580d3035feca417 (#107931)
[create-pull-request] automated change

Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com>
2025-07-10 15:47:17 +00:00
Alex Spencer
a027575435 Transformations: Prototype search tags (#105797)
* feat: init

* chore: i18n + improve formatting/style generally

* fix: i18n syntax...

* chore: i18n extract

* chore: some cleanup

* chore: cleanup

* chore: i18n
2025-07-10 08:28:51 -07:00
Dominik Prokop
190b9e1b06 kubernetesDashboards: Fix dashboard export e2e test failing with v1 k8s API enabled (#107900)
Fix dashboard export e2e
2025-07-10 16:54:29 +02:00
Gareth
84ef5bc744 Remove jaegerBackendMigration feature toggle (#107702)
* remove feature toggle if statements

* remove unused impoerts

* remove unused private functions

* prettier

* official ft removal

* fix some failing tests in datasource.test.ts

* clean up test file

* update test names

* remove tests for testDatasource

* remove describe

* tests

* fix import order

* betterer
2025-07-10 15:54:16 +01:00
colin-stuart
ac7a411c53 SCIM: Update allow non-provisioned users dynamic config field (#107912)
SCIM: add dynamic non-provisioned users allowed setting
2025-07-10 09:18:30 -05:00
renovate[bot]
441f56f6ce fix(deps): update dependency micro-memoize to v4.1.3 (#107966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 13:59:51 +00:00
Misi
1f3dc0533c Auth: Add tracing to auth clients and AuthToken service (#107878)
* Add tracing to auth clients + authtoken svc

* Fix span names

* Fix ext_jwt.go

* Fix idimpl/service

* Update wire_gen.go

* Add tracing to JWT client

* Lint
2025-07-10 15:41:00 +02:00
renovate[bot]
01269c5dd1 chore(deps): update dependency postcss to v8.5.6 (#107960)
Update dependency postcss to v8.5.6

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 13:34:38 +00:00
Matias Chomicki
d74aac3da5 virtualization: check for index (#107963)
* virtualization: check for index

* Add regression test
2025-07-10 13:18:02 +00:00
maicon
a8733f9a05 Fix TestIntegrationFoldersGetAPIEndpointK8S (#107924)
Run TestIntegrationFoldersGetAPIEndpointK8S only for SQLite

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-10 09:58:35 -03:00
renovate[bot]
ff8a9fa462 Update dependency lerna to v8.2.3 (#107957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 12:23:07 +00:00
Peter Štibraný
8fd5739576 [unified-storage/search] Don't expire file-based indexes, check for resource stats when building index on-demand (#107886)
* Get ResourceStats before indexing
* Replaced localcache.CacheService to handle expiration faster (localcache.CacheService / gocache.Cache only expires values at specific interval, but we need to close index faster)
* singleflight getOrBuildIndex for the same key
* expire only in-memory indexes
* file-based indexes have new name on each rebuild
* Sanitize file path segments, verify that generated path is within the root dir.
* Add comment and test for cleanOldIndexes.
2025-07-10 11:54:10 +00:00
Mustafa Sencer Özcan
2e568ef672 test: reenable dashboard integration tests and restructure based on dual writer modes (#107941) 2025-07-10 13:52:58 +02:00
renovate[bot]
325863ba94 Update faro to v1.19.0 (#107946)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 12:47:02 +01:00
John-George Sample
c788b35dae chore: fix typo in FlameGraph docs (#107921) 2025-07-10 13:32:36 +02:00
Gábor Farkas
5ec1bd91df datasources: querier: log empty refids (#107111)
* datasources: querier: log empty refids

* improved logging
2025-07-10 13:28:45 +02:00
Mariell Hoversholm
956ae0b283 Actions: Run prettier on docs changes (#107949) 2025-07-10 12:58:13 +02:00
Roberto Jimenez Sanchez
106206ae93 Ignore delete error if not found 2025-07-10 12:45:35 +02:00
Roberto Jimenez Sanchez
b0df15c770 Fix issue with path in folder deletion
Folder path must not have a trailing slash in Nanogit
2025-07-10 12:45:35 +02:00
Stephanie Hingtgen
2484402f7a address PR comments 2025-07-10 12:45:35 +02:00
Stephanie Hingtgen
4386085aa9 fix linter 2025-07-10 12:45:35 +02:00
Stephanie Hingtgen
bd81243bbb Git sync: Implement folder deletion 2025-07-10 12:45:35 +02:00
Hugo Kiyodi Oshiro
b41b233d7d Plugins: Levitate workflow improvements on forks (#107832) 2025-07-10 12:12:12 +02:00
Georges Chaudy
b6dd08da2f unistore: fix delete and db closed in kv store (#107918)
* fix delete and db closed

* fix tests
2025-07-10 11:34:36 +02:00
renovate[bot]
befc947fee Update dependency glob to v11.0.3 (#107915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 09:28:05 +00:00
Jay Clifford
fccda2440e ExtensionSidebar: Render multiple sidebar buttons in topnav (#107875)
* feat: modified toolbar item so buttons render invidually

* added icon for investigations

* Update public/app/core/components/AppChrome/ExtensionSidebar/ExtensionToolbarItem.tsx

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2025-07-10 09:16:47 +00:00
Matheus Macabu
b6c4788c2a Auth: Add functional option for static requester methods (#107581)
* Auth: Add functional option for static requester methods

Initially supporting WithServiceIdentityName to set a ServiceIdentity
inside the Claims.Rest object, so that Secrets Manager can parse
the service requesting secret decryption.

On Secret creation, the service will have to pass its identity
(which is a freeform string) to the SecureValues' Decrypters object.

This field gates which services are allowed to decrypt the SecureValue.

And upon decryption, the service should build a static identity with
that same service identity name when calling the decrypt service.

* StaticRequester: Put secret decrypt permission in access token claims

* StaticRequester: Inline getTokenPermissions function
2025-07-10 10:10:57 +02:00
Andres Martinez Gotor
e4650d3d8f Advisor: Update app-sdk and regenerate code (#107786) 2025-07-10 09:55:10 +02:00
Gabriel MABILLE
85a6a7b9c1 iam: add description field to roles (#107888)
* iam: add description field to roles

* Openapi gen

* Revert launch change
2025-07-10 09:24:30 +02:00
Ivana Huckova
5d0f519c0d Docs: Update min supported Loki version to v2.9+ (#107853) 2025-07-10 09:02:53 +02:00
Yunwen Zheng
38db533e6e NewProvisionedFolderForm: Preview folder name message (#107739)
* NewProvisionedFolderForm: pass in empty title for new folder form

* NewProvisionedFolderForm: preview folder name

* i18n, fix test

* Added test

* added todo

* PR comment

* i18n
2025-07-10 09:40:26 +03:00
grafana-pr-automation[bot]
0e53749906 I18n: Download translations from Crowdin (#107936)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-10 00:38:17 +00:00
Lucy Chen
58e0c05150 E2C: Add new error for alert rule quota (#107225)
* add new error for alert rule quota

* add alert rule group quota error

* make openapi3-gen

* revert message

* update translation

* prettier

* update text per review suggestion
2025-07-09 15:25:20 -04:00
Gilles De Mey
421352f251 Alerting: Support group view in breadcrumbs (#107901) 2025-07-09 20:59:33 +02:00
maicon
0012345a7e Folders/apiserver: Fix mutate method for folders (#107819)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-09 15:57:04 -03:00
Paul Marbach
a63a9357bb TableNG: Follow-up style fixes (#107274)
* open cell inspect in code mode for JSON panels

* increase opacity of TableCellActions background for legibility in overlap cases

* fix nested grid width calculation

* fix 'jumping' on hover overflow

* route transparency through (needs a scenes update)

* base row hover color on transparency

* update the colors for table

* remove console.log

* reinstate header toggle for nested row transformation

* fix #59474 - graceful handling when subtable has no rows

* fix i18n

* use TABLE.LINE_HEIGHT

* change nestedData back to const
2025-07-09 14:54:48 -04:00
Gilles De Mey
ebe494c7e6 lint CONTRIBUTING.md (#107923) 2025-07-09 18:31:14 +00:00
Josh Hunt
37bfea8685 FrontendService: Add tracing to frontend service (#107236)
* FrontendService: Add tracing to frontend service

* wire gen

* fix test
2025-07-09 19:21:31 +01:00
Paul Marbach
9aaaa87bcf TableNG: Fallback to AutoCell when cellType is unmapped (#107920) 2025-07-09 17:29:13 +00:00
fa1thw
5612edd8b5 Update CONTRIBUTING.md (#107587)
This update replaces outdated URLs and provides structural updates to the contribution guide.
2025-07-09 19:08:37 +02:00
Gilles De Mey
889cf57055 Alerting: Fix flakey test for group loader (#107909) 2025-07-09 19:00:45 +02:00
Josh Hunt
0cde9e4f3f UI: Disable tabular numbers toggle by default (#107911)
* UI: disable tabular numbers toggle

* gen
2025-07-09 16:57:16 +00:00
maicon
a7aed23d47 Disable TestIntegrationFoldersGetAPIEndpointK8S for all databases (#107913)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-09 16:55:15 +00:00
Matt Cowley
21f305c6a0 Plugin Configs: Fix Env types (#107908) 2025-07-09 17:54:00 +01:00
renovate[bot]
d9bf13e33f Update scenes to v6.27.2 (#107906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 16:44:46 +00:00
Yuri Tseretyan
4bb6926eee Alerting: Separate configuration model for remote Alertmanager Mimir client (#107741)
* replace PostableUserConfig with GrafanaAlertmanagerConfig to decouple from internal Grafana models
* update alertmanager + tests
* calculate hash of the GrafanaAlertmanagerConfig
2025-07-09 12:42:10 -04:00
Ashley Harrison
0e253721b0 Internationalisation: don't load plugin translations in test environment (#107891)
* make sure we're awaiting initPluginTranslations

* don't load plugin translations in test environments
2025-07-09 17:17:33 +01:00
maicon
4228ed789b Folders: disable TestIntegrationFoldersGetAPIEndpointK8S (#107897)
* Folders: disable TestIntegrationFoldersGetAPIEndpointK8S

it's breaking the enteprise CI pipeline

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Run only against sqlite

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* noop: force backend change

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-09 15:44:20 +00:00
Peter Štibraný
9d2eadcfd2 PoC: replace using testing.Short in storage/unified package with integration test skip method (#107887)
* PoC: check if testing.Short is called from integration tests only.

* Rename helper function.

* Fix logic.

* Remove skipping of integration tests from non-integration tests.

* Remove skipping of integration tests from non-integration tests.

* Fix import.
2025-07-09 15:32:10 +00:00
Matias Chomicki
5108225785 Logs Panel: Explose details mode and default to inline (#107902)
Logs Panel: Explose details mode
2025-07-09 17:31:10 +02:00
renovate[bot]
4ab519c825 Update dependency expose-loader to v5.0.1 (#107877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 15:18:09 +00:00
Will Browne
1e0fd825eb Plugins: Simplify assetpath logic (#107876)
* simplify assetpath logic

* fix tests
2025-07-09 15:48:52 +01:00
Misi
1d252de1e9 Docs: Clean up ssoSettingsApi references from docs (#107896)
* Clean up ssoSettingsApi references from docs

* lint
2025-07-09 14:22:07 +00:00
Matias Chomicki
2e58ce7980 Log Line Details: Add inline mode for the Details component (#107718)
* LogLineContext: add sidebar mode

* LogLine: initial support for inline details

* LogLine: finally figure out field overflow

* LogLineDetails: support inline details in unwrapped mode

* LogLineDetails: fix borders in inline mode

* LogLineDetails: support unwrapped inline details

* LogLineDetails: fix inline unwrapped mode

* LogLineDetails: debug and translations

* Fix types

* LogLine: update test

* LogLineDetails: slightly taller

* LogListContext: fix NaN default width

* Remove console log

* LogList: add inline details test

* virtualization: update test

* Fix imports
2025-07-09 16:07:19 +02:00
Gilles De Mey
5d92f3eee5 Alerting: Fix silence / delete on new list view (#107885) 2025-07-09 13:44:44 +00:00
Bruno
8283d35e56 Secrets: make operations sync (#107732)
* Secrets: make operations sync

* k8s gen / update query to list secure values to include the version

* always store new version of a secret

* make update-workspace

* go mod tidy

* update queries

* update queries

* improve and use testutils in decrypt_store_test

* fix broken test

* make update-workspace

* ./hack/update-codegen.sh secret

* update Test_SecureValueMetadataStorage_CreateAndRead

* undo dependency changes

* linter: fix remaining errors

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
Co-authored-by: Matheus Macabu <macabu@users.noreply.github.com>
2025-07-09 10:43:34 -03:00
Gilles De Mey
ded7912ea3 Use Group Loader for the group detail view (#107780) 2025-07-09 15:41:20 +02:00
Nathan Vērzemnieks
f34a9fc0c2 CloudWatch: Fix http client handling + assume role bug (#107893) 2025-07-09 15:28:50 +02:00
Jack Westbrook
c5fbf6217c Frontend: Replace LogicMonitor logo (#107881)
* chore(frontend): replace 2.75mb logicmonitor logo with smaller svg

* chore(frontend): update logicmonitor logo to match previous dimensions
2025-07-09 14:12:58 +02:00
Roberto Jiménez Sánchez
b249942b61 Bump nanogit 2025-07-09 (#107871)
* Bump nanogit 2025-07-09

This version contains significant performance improvements in memory and
CPU thanks to optimizing buffers, using a faster zlib library and using
streaming instead of loading everything in memory.
2025-07-09 14:03:29 +02:00
Hugo Häggmark
0f3edd3b5f Plugins: renames snake cased plugin files (#107862)
* Plugins: renames plugin_loader

* test(pluginloader): fix mock paths to pluginLoader

* chore: rename sandbox files

* Trigger build

* Trigger build

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2025-07-09 13:18:44 +02:00
Jack Westbrook
d786316766 Plugin Configs: Use nodes strip types for processing webpack configs (#105542)
* feat(plugin-configs): update configs to work with nodes strip-types feature

* build(parca): use nodes experimental-strip-types so build works with node 22 - 24

* build(decoupled-plugins): support nodes strip types feature for webpack builds

* build(e2e-test-plugins): update build scripts and config to work with node strip types

* style(plugin-configs): fix import/order lint errors

* refactor(plugins): use allowImportingTsExtensions in favour of ts-ignore comments

* refactor(plugin-configs): clean up ts-ignore and ts-expect-error comments in webpack.config

* refactor(plugin-configs): fix up changes for nodes strip-types flag

* chore(loki): fix up build command for node 24 support
2025-07-09 10:38:17 +00:00
renovate[bot]
99f3dc859d Update dependency eslint-plugin-react to v7.37.5 (#107873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 10:32:05 +00:00
Konrad Lalik
89c09a14b8 Alerting: Extensible Settings module (#107831)
* Add extension points to the Settings page

* wip

* Update Settings page routing to catch unmatched routes and redirect to alertmanager

* Add settings page extension

* Refactor settings navigation

* Refactor settings navigation hook

* Update import paths

* Add Settings page tests for custom tabs

* Update translations

* Add a route explanation

---------

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2025-07-09 12:29:39 +02:00
Ashley Harrison
92121a1030 Cascader: Fix icon not showing (#107869)
* fix image path for angle-right

* use proper icon utils
2025-07-09 11:24:21 +01:00
renovate[bot]
07ca8ca3e7 Update dependency eslint-plugin-no-barrel-files to v1.2.1 (#107868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 10:04:10 +00:00
renovate[bot]
ae7a3db917 Update dependency @grafana/google-sdk to v0.3.4 (#107865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 09:38:46 +00:00
Ashley Harrison
ca73093573 i18n actions: only run in main repo (#107864)
* don't run download/upload in the security mirror

* better check
2025-07-09 09:18:33 +00:00
renovate[bot]
df3bb9fba4 Update dependency i18next to v25.3.2 (#107863)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 10:14:20 +01:00
Nathan Vērzemnieks
c3eeb1fcd9 CloudWatch: Fix proxy transport issue (#107807)
CloudWatch: fix proxy transport issue
2025-07-09 11:03:53 +02:00
Piotr Jamróz
e78411f17a Tempo: Fix showing dangling edges in NodeGraph (#107245)
* Tempo: Fix showing dangling edges in NodeGraph

* Remove comment
2025-07-09 10:53:31 +02:00
renovate[bot]
aa17dd8056 Update dependency esbuild to v0.25.6 (#107799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 09:36:22 +01:00
Ryan McKinley
3f502f305d Chore: Update mocks with recent mockery (#107816) 2025-07-09 09:15:34 +02:00
Alex Khomenko
39904d7b9b Provisioning: Move dashboard from setting page (#107793)
* Provisioning: Move dashboard from the settings page

* Cleanup

* i18n

* Add noMargin

* Add test

* Use new pr param

* Cleanup

* Fix tests

* i18n

* betterer
2025-07-09 10:10:05 +03:00
Daniele Stefano Ferru
d7f7a19c56 Dashboard permissions: Update integration tests to take into account kubernetesDashboards flag value (#107706)
Dashboard permissions: Update integration tests to take into account  flag value
2025-07-09 08:46:27 +02:00
xavi
e4743a9092 IAM: Return 401 if identity type is not valid in GetUserPreferences (#107760)
fix(GetUserPreferences): Return 401 if identity type is not valid
2025-07-09 08:35:18 +02:00
Hugo Häggmark
20c700dd52 Chore: reduces barrel files part II (#107688)
* Chore: reduce barrel files

* chore: fixes unit test

* Chore: reduces barrel files part II

* chore: fix import sorting
2025-07-09 06:15:33 +02:00
grafana-pr-automation[bot]
5e1d7cbd2e I18n: Download translations from Crowdin (#107813)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-09 00:38:37 +00:00
Alyssa Joyner
6c20ad0013 [InfluxDB] Change default HTTP method to POST (#107787) 2025-07-08 15:19:22 -06:00
Alex Spencer
869094bb37 SQL Expressions: Reconfigure add expression button for improved UX (#106797)
* feat: reconfigure expression button for improved UX

* chore: fix broken test

* chore: refactor to use improved UX + combine another UI PR.

* chore: i18n

* chore: memoize options + add data test ids for tracking

* chore: common component for expression dropdown

* chore: streamline common component

* chore: add event tracking

* chore: put event tracking in its own PR
2025-07-08 14:11:54 -07:00
maicon
79ebe2dc10 Folders: Ensure all folder tests under /pkg/tests/apis/folders are handled as integrations tests (#107801)
Folders: ensure integration tests are executed in our CI pipeline

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-08 16:32:41 -03:00
Leon Sorokin
dd1fce5c8a Search: Use case-insensitive substring matching in fuzzySearch fallback (#107661) 2025-07-08 14:14:00 -05:00
Alex Spencer
efe46c8aad Limit: Invalidate field reducer calcs on applying limit transformation (#106723)
* fix: clear state calcs when limit transformation is applied

* chore: fix limit tests expected values
2025-07-08 11:37:54 -07:00
Leon Sorokin
68ee251c5c TableNG: Extract links and actions tooltip into cell root renderer (#107667)
* TableNG: Extract links and actions tooltip into cell root renderer

* make TS happy

* fixes & tweaks

* lint

* skip datalinks and actions tooltip on those cell types

* add todo

* withTooltip lookup

* fix

* optional getActions

* fix

* kill cursor: 'context-menu'

* stop event propagation from TableCellActions

* update tests to move tooltip tests up to TableNG

* remove safety assertion

* add value back to DataLinksActionsTooltip

---------

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-07-08 14:24:03 -04:00
Yunwen Zheng
412415ab39 NewProvisionedFolderForm: pass in empty title for new folder form (#107733)
Co-authored-by: Clarity-89 <homes89@ukr.net>
2025-07-08 18:00:51 +00:00
renovate[bot]
0b28a53923 Update dependency @grafana/lezer-logql to v0.2.8 (#107797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 16:53:35 +00:00
Kristina
fdc6a0d774 Transformations: For Convert Field Type, clone conversions as to not mutate defaultOptions (#107752)
Clone conversions as to not mutate defaultOptions
2025-07-08 11:29:14 -05:00
renovate[bot]
1eef358deb Update dependency css-minimizer-webpack-plugin to v7.0.2 (#107796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 17:26:48 +01:00
Tim Levett
0fdcae4e26 Tables: Pills for Table Cells (#107485)
* v2 of pills for tables

* cleanup bettererrrrr

* cleanup pretty

* i18n changes

* add in the option for value mapping

* value mapping

* change to just use the value mapping from the table component

* tests fixed

* betterer all better now

* fix pretty

* i18n

* fix gen issue

* i18n

* fix merge issue

* Refactor pillcell to an interface for said pill, cleanup tests

* mind the space says prettier
2025-07-08 10:56:39 -05:00
renovate[bot]
0459382b25 Update dependency chrome-remote-interface to v0.33.3 (#107792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 15:54:26 +00:00
renovate[bot]
56dcb6c08a Update dependency chance to v1.1.13 (#107790)
* Update dependency chance to v1.1.13

* use same version of chance everywhere

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: joshhunt <josh.hunt@grafana.com>
2025-07-08 15:13:54 +00:00
renovate[bot]
7728a51972 Update dependency chance to v1.1.13 (#107785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 14:28:26 +00:00
maicon
53537148e1 Folders: reenable unit tests (#107751)
* Folders: reenable unit test TestFoldersCreateAPIEndpointK8S

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* reenable unit test TestFoldersGetAPIEndpointK8S

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-07-08 11:26:45 -03:00
Bruno
0f23988132 JWT.Authenticate: remove err != nil check for error that has already been checked (#107727) 2025-07-08 11:19:39 -03:00
Alyssa Joyner
4830969305 Add influx DRBP mapping (#107744) 2025-07-08 14:14:47 +00:00
renovate[bot]
e920bd2d29 Update dependency autoprefixer to v10.4.21 (#107781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 13:54:06 +00:00
Matt Cowley
dbbd9f23d1 Plugin Extensions: Expose PluginMeta generic in usePluginContext (#107577)
* Plugin Extensions: Expose PluginMeta generic in usePluginContext

* Plugin Extensions: Cast usePluginContext type on return

* Plugin Extensions: Fix PluginContext export
2025-07-08 15:51:30 +02:00
Jo
1e1fd3db38 OAuth: Add access token as third source for user info extraction (#107636)
* Add access token as third source for user info extraction

- Add extractFromAccessToken method to extract user info from JWT access tokens
- Mutualize code by creating parseUserInfoFromJSON helper method
- Rename methods for clarity: extractFromToken -> extractFromIDToken, retrieveRawIDToken -> retrieveRawJWTPayload
- Update test suite to include comprehensive access token retrieval scenarios
- Support three sources in priority order: ID token, API response, access token
- Maintain backward compatibility while adding new functionality

* Update Generic OAuth documentation to reflect access token support

- Add access token as a third source for user information extraction
- Update configuration sections to mention access tokens alongside ID tokens and UserInfo endpoint
- Document the priority order: ID token → UserInfo endpoint → access token
- Update configuration option descriptions to reflect new functionality
- Maintain consistency with implementation changes

* Refactor access token test cases to use parameter instead of hardcoded logic

- Add AccessToken field to test case struct for explicit access token specification
- Remove hardcoded string matching logic that determined access token based on test name
- Update all access token test cases to include the AccessToken field with appropriate JWT values
- Improve test maintainability and clarity by making access tokens explicit parameters
- Remove unused strings import that was only needed for the hardcoded logic

* fix doc lint

* reduce cyclomatic complexity
2025-07-08 15:38:11 +02:00
renovate[bot]
15967cb7ab Update dependency @types/webpack-env to v1.18.8 (#107777)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 14:26:25 +01:00
Alexa Vargas
2e3c2df6bf Dashboard: Add Alert icon in library panels (#107723)
* Use panel.id from the dashboard to filter alterts properly

* add unit test

* Fix linting

* add fix back

* fix betterer in test, use same pattern as DashboardDatasourceBehaviour
2025-07-08 15:08:01 +02:00
Alexa Vargas
e33047bdf1 Dashboard: Library Panels - Add ability to search by folder name (#106997)
* Dashboard: Add ability to search by folder name in library panels

* restore to main to fix linting issues

* restore from main to avoid go linting issues

* add logic to the writers.go that search by folder title if folder is not passed

* add missing left joing from the folder table

* Add extra logic to prevent folder searches without permission

* fix go linting issue about memory

* Add test when searching by folder name

* Refactor tests to include a bit more validation

* apply feedback and use SearchFolder from search folder service

* clean up comments

* Update pkg/services/libraryelements/database.go

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>

* Fix logic of early return

* Extract into a function and remove the left join

* Apply feedback to be aligned with idiomatic go

* Apply suggestion from @evictorero

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>

* fix liting

---------

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2025-07-08 15:07:22 +02:00
Kevin Minehart
047349638d CI: Run lerna bump version before yarn build (#107731)
lerna bump version before yarn build

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2025-07-08 14:58:45 +02:00
renovate[bot]
35bf093201 Update dependency @types/systemjs to v6.15.3 (#107774)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 12:56:49 +00:00
Hugo Kiyodi Oshiro
6c1ff32501 Plugins: Improve levitate report on forks (#107252) 2025-07-08 14:52:02 +02:00
Dominik Prokop
d5a1781fb6 Schema V2: Simplify annotations v1<->v2 conversions (#107390)
* Initial migration pending to test

* Update tests

* apply feedback

* Remove unnecessary types

* Fix types

* Update tests

* fixing tests

* Default DS for transformer

* Update the default DS

* Update the generated sdk files

* Restore commented tests

* Update tests

* Updating snapshots

* fix

* Do not preserve empty datasource in panel spec

* update provisioning v2 sample dashboard

* Fix test

* Prettier

* Fix import e2e

* Prettier

* restore commented tests

* Update to support annotations

* Lint

* Make gen apps

* Make the build pass

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Update grafana-app-sdk to 0.39.2

* Workspace update

* make gen-cue

* Runtime error fix

* Update dashboard spec

* Update go workspaces

* Schema V2: Simplify annotations v1<->v2 conversions

* Update public/app/features/dashboard-scene/serialization/transformSceneToSaveModelSchemaV2.ts

* Cleanup and some more tests

* test improvement

* Update public/app/features/dashboard-scene/serialization/transformSceneToSaveModelSchemaV2.ts

* Update go.sum

* make generate

* Update public/app/features/dashboard-scene/serialization/transformSceneToSaveModelSchemaV2.ts

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>

* ts

* make gen-apps

* Update response transformers to correctly handle v2->v1 annotations

* Update dashboards openapi snapshot

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: spinillos <selenepinillos@gmail.com>
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2025-07-08 14:42:30 +02:00
Dominik Prokop
feedb5c0a6 PublicDashboardsBadge: Fix react warning (#107768) 2025-07-08 14:40:13 +02:00
Josh Hunt
a9e70d4a1d Storybook: Rearrange and tidy stories (#107270)
* Tidy up storybook a little bit

* change sort order, delete some stories

* More tidy up of actions

* More tidy up of actions

* tweak story sorting, again

* Make all internal stories public

* fix sort

* Add ESLint rule to enforce storybook titles

* update verify storybook test

* simplify glob
2025-07-08 12:37:09 +00:00
renovate[bot]
d27d8f02b6 Update dependency @types/node-forge to v1.3.12 (#107769)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 12:32:29 +00:00
renovate[bot]
2fabedc363 Update dependency @types/lodash to v4.17.20 (#107767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 11:50:43 +00:00
Gilles De Mey
95d4909475 Alerting: Add oncall contact point type and narrow create hook function (#107711) 2025-07-08 13:35:09 +02:00
renovate[bot]
5d2bbfd3ee Update dependency @rollup/plugin-node-resolve to v16.0.1 (#107766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 11:27:09 +00:00
Yunwen Zheng
2de7f424f5 BrowseDashboardsPage: added new pull request banner on new folder creation (#107596)
* BrowseDashboardsPage: added ProvisionedFolderPreviewBanner to display new provisioned folder on branch alert

* add comment

* fix test

* i18n

* Added test for PreviewBannerViewPR

* fix test, i18n fix
2025-07-08 14:24:16 +03:00
Dominik Prokop
365234c2fe PublicDashboards: Use API to render public dashboard badge (#107638)
* PublicDashboards: Use API to render public dashboard badge

* i18n

* Keine console bitte

* Update public/app/features/dashboard-scene/scene/NavToolbarActions.tsx

* Update tests
2025-07-08 13:11:25 +02:00
renovate[bot]
285c69c487 Update dependency react-calendar to v6 (#107726)
* Update dependency react-calendar to v6

* add esmodules to jest config

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-07-08 10:53:50 +00:00
grafana-pr-automation[bot]
d22842b52b I18n: Download translations from Crowdin (#107750)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-08 10:03:08 +00:00
Matias Chomicki
89e8a03859 New Log Details: Add support to sort displayed fields (#107635)
* Create LogLineDetailsDisplayedFields

* Log labels: properly implement plurals

* Pluralize

* LogListContext: pass setDisplayedFields

* LogLineDetailsDisplayedFields: update displayed fields

* LogLineDetails: scroll to item after opening details

* LogListContext: serve logOptionsStorageKey

* Update test

* Missing translations

* LogLineDetailsDisplayedFields: update styles

* LogLineDetails: update text selectors

* Update tests

* Reorganize log details: improve discoverability

* Update test
2025-07-08 11:57:28 +02:00
Tobias Skarhed
509990ca89 Variables: Change vis library from visj-network to vis-network (#107712)
* Change from visj-network to vis-network

* Check that ref exists

* Remove vis-util as a direct dependency

* Update betterer

* Address PR feedback
2025-07-08 09:30:46 +00:00
Fayzal Ghantiwala
de50c5a497 Alerting: Fix crypto_test.go errors in CI (#107759)
Fix test
2025-07-08 11:03:26 +02:00
Levente Balogh
5b7f06c24e Extensions: Wrap extension components with a sandbox wrapper div (#103064)
* feat(sandbox): wrap extension components with sandbox wrapper div

* fix: remove circular dependency

This was caused by sandbox_plugin_loader_registry -> helpers -> backend_srv -> ... plugin_loader -> setup.

* fix: add dependency to react hook

* tests: add tests for extensions sandbox wrapper

* fix: only wrap modal content after plugin loading

* chore: remove unused code

* Wip

* review(actions.ts): extract logic to function

* test: remove testing app id

* tests: fix extension utils tests

* tests: remove unnecessary code
2025-07-08 07:10:19 +02:00
Jacob Valdez
6c2574848f Docs: Updating team sync availability (#107721) 2025-07-07 16:07:50 -05:00
Gabriel MABILLE
1244f5c53d AuthZ: Add CoreRoleStorageBackend to the extension set (#103912)
* Wiring

* Trigger CI

---------

Co-authored-by: mohammad-hamid <mohammad.hamid@grafana.com>
2025-07-07 20:08:44 +02:00
Kristina
0f2284d5e6 Transformations: Reduce > Reduce fields should not persist labels between reducers (#107590)
Reduce fields should not persist labels updates between reducers
2025-07-07 12:05:55 -05:00
Paul Marbach
7181f8d89d TableNG: Update description for wrapHeaderText (#107722) 2025-07-07 12:36:41 -04:00
renovate[bot]
34c7ea9c28 Update dependency marked to v16 (#107717)
* Update dependency marked to v16

* mark marked as esmodule for jest

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-07-07 16:18:37 +00:00
Yuri Tseretyan
c93fd3ee9e Alerting: idempotent decrypt\encrypt operations on extra configs (#107592)
* add prefix to encrypted string to distinguish between unencrypted and encrypted ones

---------

Co-authored-by: Alexander Akhmetov <me@alx.cx>
2025-07-07 12:17:41 -04:00
Yuri Tseretyan
d15e1ad8d0 Alerting: Fix route validation in provisioning service (#107550)
* introduce ExtraConfigsCrypto
* delete getLastConfiguration and move all code into method Get
* update legacy store to encrypt ExtraConfigs same way we do in MultiOrgAlertmanager
* update legacy store init
* delete PersistConfig
* remove unnecessary unmarshalling
* add better error

* add tests for legacy store

* add tests that cover extra config validation

* add integration test for conflicting routes

---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-07-07 12:16:31 -04:00
Ashley Harrison
757886c704 Chore: ignore /mocks/** from the betterer results (#107708)
ignore /mocks/** from the betterer results
2025-07-07 17:02:59 +01:00
renovate[bot]
381cd95932 Update dependency i18next to v25 (#107707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-07 16:48:05 +01:00
Ashley Harrison
31b71f79dd Internationalisation: Manual mark up following review (#107625)
* mark up and add confirmText to lint rule

* mark up and add ariaLabel to lint rule

* add confirmText to propertiesToCheck

* mark up and add body to propsToCheck

* mark up latest

* mark up 'Dashboard saved'

* mark up filterbyvalue options

* mark up tooltip options

* mark up and add lint rules for noOptionsMessage/loadingMessage

* mark up 'Convert field type'

* mark up placeholderText/noOptionsMessage

* mark up run query

* mark up variable editor fields

* mark up week start options

* mark up dashboard link options

* mark up prom options

* mark up builder/code toggles

* make CI happy

* kick CI
2025-07-07 16:43:19 +01:00
Yunwen Zheng
a2a28b207c KBARResults: Add Cmd+Enter/Ctrl+Enter to open links in new tab (#107537)
* KBARResults:add command+enter to open selected link in new tab
2025-07-07 11:37:35 -04:00
Todd Treece
37c480def4 K8s: Add support for stored subresources in app runner (#105481) 2025-07-07 11:25:23 -04:00
renovate[bot]
14eaa3975b Update scenes to v6.27.1 (#107703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-07 14:56:40 +00:00
6664 changed files with 450342 additions and 209421 deletions

View File

@@ -7,8 +7,7 @@ exclude_unchanged = true
follow_symlink = true
include_dir = ["apps", "conf", "devenv/dev-dashboards", "pkg", "public/views"]
include_ext = ["go", "ini", "toml", "html", "json"]
pre_cmd = ["make gen-go"]
stop_on_error = true
stop_on_error = false
send_interrupt = true
kill_delay = 500

View File

@@ -1,154 +0,0 @@
// @ts-check
const emotionPlugin = require('@emotion/eslint-plugin');
const importPlugin = require('eslint-plugin-import');
const jestPlugin = require('eslint-plugin-jest');
const jsxA11yPlugin = require('eslint-plugin-jsx-a11y');
const lodashPlugin = require('eslint-plugin-lodash');
const barrelPlugin = require('eslint-plugin-no-barrel-files');
const reactPlugin = require('eslint-plugin-react');
const testingLibraryPlugin = require('eslint-plugin-testing-library');
const grafanaConfig = require('@grafana/eslint-config/flat');
const grafanaPlugin = require('@grafana/eslint-plugin');
const grafanaI18nPlugin = require('@grafana/i18n/eslint-plugin');
// Include the Grafana config and remove the rules,
// as we just want to pull in all of the necessary configuration but not run the rules
// (this should only be concerned with checking rules that we want to improve,
// so there's no need to try and run the rules that will be linted properly anyway)
const { rules, ...baseConfig } = grafanaConfig;
/**
* @type {Array<import('eslint').Linter.Config>}
*/
module.exports = [
{
name: 'grafana/betterer-ignores',
ignores: [
'.github',
'.yarn',
'**/.*',
'**/*.gen.ts',
'**/build/',
'**/compiled/',
'**/dist/',
'data/',
'deployment_tools_config.json',
'devenv',
'e2e/test-plugins',
'e2e/tmp',
'packages/grafana-ui/src/components/Icon/iconBundle.ts',
'pkg',
'playwright-report',
'public/lib/monaco/',
'public/locales/_build',
'public/locales/**/*.js',
'public/vendor/',
'scripts/grafana-server/tmp',
'!.betterer.eslint.config.js',
],
},
{
name: 'react/jsx-runtime',
// @ts-ignore - not sure why but flat config is typed as a maybe?
...reactPlugin.configs.flat['jsx-runtime'],
},
{
files: ['**/*.{ts,tsx,js}'],
...baseConfig,
plugins: {
...baseConfig.plugins,
'@emotion': emotionPlugin,
lodash: lodashPlugin,
jest: jestPlugin,
import: importPlugin,
'jsx-a11y': jsxA11yPlugin,
'no-barrel-files': barrelPlugin,
'@grafana': grafanaPlugin,
'testing-library': testingLibraryPlugin,
'@grafana/i18n': grafanaI18nPlugin,
},
linterOptions: {
// This reports unused disable directives that we can clean up but
// it also conflicts with the betterer eslint rules so disabled
reportUnusedDisableDirectives: false,
},
},
{
files: ['**/*.{js,jsx,ts,tsx}'],
rules: {
'@typescript-eslint/no-explicit-any': 'error',
'@grafana/no-aria-label-selectors': 'error',
'no-restricted-imports': [
'error',
{
patterns: [
{
group: ['@grafana/ui*', '*/Layout/*'],
importNames: ['Layout', 'HorizontalGroup', 'VerticalGroup'],
message: 'Use Stack component instead.',
},
{
group: ['@grafana/ui/src/*', '@grafana/runtime/src/*', '@grafana/data/src/*'],
message: 'Import from the public export instead.',
},
],
},
],
},
},
{
files: ['**/*.{js,jsx,ts,tsx}'],
ignores: [
'**/*.{test,spec}.{ts,tsx}',
'**/__mocks__/**',
'**/public/test/**',
'**/mocks.{ts,tsx}',
'**/spec/**/*.{ts,tsx}',
],
rules: {
'@typescript-eslint/consistent-type-assertions': ['error', { assertionStyle: 'never' }],
},
},
{
files: ['**/*.{js,jsx,ts,tsx}'],
ignores: [
'**/*.{test,spec}.{ts,tsx}',
'**/__mocks__/**',
'**/public/test/**',
'**/mocks.{ts,tsx}',
'**/spec/**/*.{ts,tsx}',
],
rules: {
'no-restricted-syntax': [
'error',
{
selector: 'Identifier[name=localStorage]',
message: 'Direct usage of localStorage is not allowed. import store from @grafana/data instead',
},
{
selector: 'MemberExpression[object.name=localStorage]',
message: 'Direct usage of localStorage is not allowed. import store from @grafana/data instead',
},
{
selector:
'Program:has(ImportDeclaration[source.value="@grafana/ui"] ImportSpecifier[imported.name="Card"]) JSXOpeningElement[name.name="Card"]:not(:has(JSXAttribute[name.name="noMargin"]))',
message:
'Add noMargin prop to Card components to remove built-in margins. Use layout components like Stack or Grid with the gap prop instead for consistent spacing.',
},
{
selector:
'Program:has(ImportDeclaration[source.value="@grafana/ui"] ImportSpecifier[imported.name="Field"]) JSXOpeningElement[name.name="Field"]:not(:has(JSXAttribute[name.name="noMargin"]))',
message:
'Add noMargin prop to Field components to remove built-in margins. Use layout components like Stack or Grid with the gap prop instead for consistent spacing.',
},
],
},
},
{
files: ['public/app/**/*.{ts,tsx}'],
rules: {
'no-barrel-files/no-barrel-files': 'error',
},
},
];

File diff suppressed because it is too large Load Diff

View File

@@ -1,97 +0,0 @@
import { BettererFileTest } from '@betterer/betterer';
import { ESLint } from 'eslint';
import { promises as fs } from 'fs';
// Why are we ignoring these?
// They're all deprecated/being removed so doesn't make sense to fix types
const eslintPathsToIgnore = [
'packages/grafana-ui/src/graveyard', // will be removed alongside angular in Grafana 12
'public/app/angular', // will be removed in Grafana 12
'public/app/plugins/panel/graph', // will be removed alongside angular in Grafana 12
'public/app/plugins/panel/table-old', // will be removed alongside angular in Grafana 12
];
// Avoid using functions that report the position of the issues, as this causes a lot of merge conflicts
export default {
'better eslint': () =>
countEslintErrors()
.include('**/*.{ts,tsx}')
.exclude(new RegExp(eslintPathsToIgnore.join('|'))),
'no undocumented stories': () => countUndocumentedStories().include('**/!(*.internal).story.tsx'),
'no gf-form usage': () =>
regexp(/gf-form/gm, 'gf-form usage has been deprecated. Use a component from @grafana/ui or custom CSS instead.')
.include('**/*.{ts,tsx,html}')
.exclude(new RegExp('packages/grafana-ui/src/themes/GlobalStyles')),
};
function countUndocumentedStories() {
return new BettererFileTest(async (filePaths, fileTestResult) => {
await Promise.all(
filePaths.map(async (filePath) => {
// look for .mdx import in the story file
const mdxImportRegex = new RegExp("^import.*\\.mdx';$", 'gm');
// Looks for the "autodocs" string in the file
const autodocsStringRegex = /autodocs/;
const fileText = await fs.readFile(filePath, 'utf8');
const hasMdxImport = mdxImportRegex.test(fileText);
const hasAutodocsString = autodocsStringRegex.test(fileText);
// If both .mdx import and autodocs string are missing, add an issue
if (!hasMdxImport && !hasAutodocsString) {
// In this case the file contents don't matter:
const file = fileTestResult.addFile(filePath, '');
// Add the issue to the first character of the file:
file.addIssue(0, 0, 'No undocumented stories are allowed, please add an .mdx file with some documentation');
}
})
);
});
}
/**
* Generic regexp pattern matcher, similar to @betterer/regexp.
* The only difference is that the positions of the errors are not reported, as this may cause a lot of merge conflicts.
*/
function regexp(pattern: RegExp, issueMessage: string) {
return new BettererFileTest(async (filePaths, fileTestResult) => {
await Promise.all(
filePaths.map(async (filePath) => {
const fileText = await fs.readFile(filePath, 'utf8');
const matches = fileText.match(pattern);
if (matches) {
// File contents doesn't matter, since we're not reporting the position
const file = fileTestResult.addFile(filePath, '');
matches.forEach(() => {
file.addIssue(0, 0, issueMessage);
});
}
})
);
});
}
function countEslintErrors() {
return new BettererFileTest(async (filePaths, fileTestResult) => {
// Just bail early if there's no files to test. Prevents trying to get the base config from failing
if (filePaths.length === 0) {
return;
}
const runner = new ESLint({
overrideConfigFile: './.betterer.eslint.config.js',
warnIgnored: false,
});
const lintResults = await runner.lintFiles(Array.from(filePaths));
lintResults.forEach(({ messages, filePath }) => {
const file = fileTestResult.addFile(filePath, '');
messages
.sort((a, b) => (a.message > b.message ? 1 : -1))
.forEach((message, index) => {
file.addIssue(0, 0, message.message, `${index}`);
});
});
});
}

13
.bingo/.gitignore vendored
View File

@@ -1,13 +0,0 @@
# Ignore everything
*
# But not these files:
!.gitignore
!*.mod
!*.sum
!README.md
!Variables.mk
!variables.env
*tmp.mod

View File

@@ -1,14 +0,0 @@
# Project Development Dependencies.
This is directory which stores Go modules with pinned buildable package that is used within this repository, managed by https://github.com/bwplotka/bingo.
- Run `bingo get` to install all tools having each own module file in this directory.
- Run `bingo get <tool>` to install <tool> that have own module file in this directory.
- For Makefile: Make sure to put `include .bingo/Variables.mk` in your Makefile, then use $(<upper case tool name>) variable where <tool> is the .bingo/<tool>.mod.
- For shell: Run `source .bingo/variables.env` to source all environment variable for each tool.
- For go: Import `.bingo/variables.go` to for variable names.
- See https://github.com/bwplotka/bingo or -h on how to add, remove or change binaries dependencies.
## Requirements
- Go 1.14+

View File

@@ -1,25 +0,0 @@
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.9. DO NOT EDIT.
# All tools are designed to be build inside $GOBIN.
BINGO_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
GOPATH ?= $(shell go env GOPATH)
GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
GO ?= $(shell which go)
# Below generated variables ensure that every time a tool under each variable is invoked, the correct version
# will be used; reinstalling only if needed.
# For example for drone variable:
#
# In your main Makefile (for non array binaries):
#
#include .bingo/Variables.mk # Assuming -dir was set to .bingo .
#
#command: $(DRONE)
# @echo "Running drone"
# @$(DRONE) <flags/args..>
#
DRONE := $(GOBIN)/drone-v1.5.0
$(DRONE): $(BINGO_DIR)/drone.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/drone-v1.5.0"
@cd $(BINGO_DIR) && GOWORK=off CGO_ENABLED=0 $(GO) build -mod=mod -modfile=drone.mod -o=$(GOBIN)/drone-v1.5.0 "github.com/drone/drone-cli/drone"

View File

@@ -1,7 +0,0 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.17
replace github.com/docker/docker => github.com/docker/engine v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompatible
require github.com/drone/drone-cli v1.5.0 // drone CGO_ENABLED=0

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
module _ // Fake go.mod auto-created by 'bingo' for go -moddir compatibility with non-Go projects. Commit this file, together with other .mod files.

View File

@@ -1,12 +0,0 @@
# Auto generated binary variables helper managed by https://github.com/bwplotka/bingo v0.9. DO NOT EDIT.
# All tools are designed to be build inside $GOBIN.
# Those variables will work only until 'bingo get' was invoked, or if tools were installed via Makefile's Variables.mk.
GOBIN=${GOBIN:=$(go env GOBIN)}
if [ -z "$GOBIN" ]; then
GOBIN="$(go env GOPATH)/bin"
fi
DRONE="${GOBIN}/drone-v1.5.0"

View File

@@ -234,7 +234,6 @@ Grunt & Watch tasks:
- binary to `/usr/sbin/grafana-server`
- init.d script improvements, renamed to `/etc/init.d/grafana-server`
- added default file with environment variables,
- `/etc/default/grafana-server` (deb/ubuntu)
- `/etc/sysconfig/grafana-server` (centos/redhat)

View File

@@ -12,6 +12,9 @@ $(shell \
endef
# Tool: "air"
air = "$(call compile_tool,air,github.com/air-verse/air)"
# Tool: "bra"
bra = "$(call compile_tool,bra,github.com/unknwon/bra)"

28
.citools/src/air/go.mod Normal file
View File

@@ -0,0 +1,28 @@
module air
go 1.25.3
tool github.com/air-verse/air
require (
dario.cat/mergo v1.0.2 // indirect
github.com/air-verse/air v1.62.0 // indirect
github.com/bep/godartsass/v2 v2.5.0 // indirect
github.com/bep/golibsass v1.2.0 // indirect
github.com/creack/pty v1.1.24 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gohugoio/hugo v0.147.6 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/spf13/afero v1.14.0 // indirect
github.com/spf13/cast v1.8.0 // indirect
github.com/tdewolff/parse/v2 v2.8.1 // indirect
golang.org/x/net v0.45.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/text v0.29.0 // indirect
google.golang.org/protobuf v1.36.6 // indirect
)

190
.citools/src/air/go.sum Normal file
View File

@@ -0,0 +1,190 @@
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 h1:+tu3HOoMXB7RXEINRVIpxJCT+KdYiI7LAEAUrOw3dIU=
github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69/go.mod h1:L1AbZdiDllfyYH5l5OkAaZtk7VkWe89bPJFmnDBNHxg=
github.com/air-verse/air v1.62.0 h1:6CoXL4MAX9dc4xAzLfjMcDfbBoGmW5VjuuTV/1+bI+M=
github.com/air-verse/air v1.62.0/go.mod h1:EO+jWuetL10tS9raffwg8WEV0t0KUeucRRaf9ii86dA=
github.com/alecthomas/chroma/v2 v2.17.2 h1:Rm81SCZ2mPoH+Q8ZCc/9YvzPUN/E7HgPiPJD8SLV6GI=
github.com/alecthomas/chroma/v2 v2.17.2/go.mod h1:RVX6AvYm4VfYe/zsk7mjHueLDZor3aWCNE14TFlepBk=
github.com/armon/go-radix v1.0.1-0.20221118154546-54df44f2176c h1:651/eoCRnQ7YtSjAnSzRucrJz+3iGEFt+ysraELS81M=
github.com/armon/go-radix v1.0.1-0.20221118154546-54df44f2176c/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/bep/clocks v0.5.0 h1:hhvKVGLPQWRVsBP/UB7ErrHYIO42gINVbvqxvYTPVps=
github.com/bep/clocks v0.5.0/go.mod h1:SUq3q+OOq41y2lRQqH5fsOoxN8GbxSiT6jvoVVLCVhU=
github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
github.com/bep/gitmap v1.6.0 h1:sDuQMm9HoTL0LtlrfxjbjgAg2wHQd4nkMup2FInYzhA=
github.com/bep/gitmap v1.6.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
github.com/bep/goat v0.5.0 h1:S8jLXHCVy/EHIoCY+btKkmcxcXFd34a0Q63/0D4TKeA=
github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c=
github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg=
github.com/bep/godartsass/v2 v2.5.0/go.mod h1:rjsi1YSXAl/UbsGL85RLDEjRKdIKUlMQHr6ChUNYOFU=
github.com/bep/golibsass v1.2.0 h1:nyZUkKP/0psr8nT6GR2cnmt99xS93Ji82ZD9AgOK6VI=
github.com/bep/golibsass v1.2.0/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA=
github.com/bep/goportabletext v0.1.0 h1:8dqym2So1cEqVZiBa4ZnMM1R9l/DnC1h4ONg4J5kujw=
github.com/bep/goportabletext v0.1.0/go.mod h1:6lzSTsSue75bbcyvVc0zqd1CdApuT+xkZQ6Re5DzZFg=
github.com/bep/gowebp v0.4.0 h1:QihuVnvIKbRoeBNQkN0JPMM8ClLmD6V2jMftTFwSK3Q=
github.com/bep/gowebp v0.4.0/go.mod h1:95gtYkAA8iIn1t3HkAPurRCVGV/6NhgaHJ1urz0iIwc=
github.com/bep/imagemeta v0.12.0 h1:ARf+igs5B7pf079LrqRnwzQ/wEB8Q9v4NSDRZO1/F5k=
github.com/bep/imagemeta v0.12.0/go.mod h1:23AF6O+4fUi9avjiydpKLStUNtJr5hJB4rarG18JpN8=
github.com/bep/lazycache v0.8.0 h1:lE5frnRjxaOFbkPZ1YL6nijzOPPz6zeXasJq8WpG4L8=
github.com/bep/lazycache v0.8.0/go.mod h1:BQ5WZepss7Ko91CGdWz8GQZi/fFnCcyWupv8gyTeKwk=
github.com/bep/logg v0.4.0 h1:luAo5mO4ZkhA5M1iDVDqDqnBBnlHjmtZF6VAyTp+nCQ=
github.com/bep/logg v0.4.0/go.mod h1:Ccp9yP3wbR1mm++Kpxet91hAZBEQgmWgFgnXX3GkIV0=
github.com/bep/overlayfs v0.10.0 h1:wS3eQ6bRsLX+4AAmwGjvoFSAQoeheamxofFiJ2SthSE=
github.com/bep/overlayfs v0.10.0/go.mod h1:ouu4nu6fFJaL0sPzNICzxYsBeWwrjiTdFZdK4lI3tro=
github.com/bep/tmc v0.5.1 h1:CsQnSC6MsomH64gw0cT5f+EwQDcvZz4AazKunFwTpuI=
github.com/bep/tmc v0.5.1/go.mod h1:tGYHN8fS85aJPhDLgXETVKp+PR382OvFi2+q2GkGsq0=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=
github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc=
github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/evanw/esbuild v0.25.3 h1:4JKyUsm/nHDhpxis4IyWXAi8GiyTwG1WdEp6OhGVE8U=
github.com/evanw/esbuild v0.25.3/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/getkin/kin-openapi v0.132.0 h1:3ISeLMsQzcb5v26yeJrBcdTCEQTag36ZjaGk7MIRUwk=
github.com/getkin/kin-openapi v0.132.0/go.mod h1:3OlG51PCYNsPByuiMB0t4fjnNlIDnaEDsjiKUV8nL58=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/gobuffalo/flect v1.0.3 h1:xeWBM2nui+qnVvNM4S3foBhCAL2XgPU+a7FdpelbTq4=
github.com/gobuffalo/flect v1.0.3/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/gohugoio/go-i18n/v2 v2.1.3-0.20230805085216-e63c13218d0e h1:QArsSubW7eDh8APMXkByjQWvuljwPGAGQpJEFn0F0wY=
github.com/gohugoio/go-i18n/v2 v2.1.3-0.20230805085216-e63c13218d0e/go.mod h1:3Ltoo9Banwq0gOtcOwxuHG6omk+AwsQPADyw2vQYOJQ=
github.com/gohugoio/hashstructure v0.5.0 h1:G2fjSBU36RdwEJBWJ+919ERvOVqAg9tfcYp47K9swqg=
github.com/gohugoio/hashstructure v0.5.0/go.mod h1:Ser0TniXuu/eauYmrwM4o64EBvySxNzITEOLlm4igec=
github.com/gohugoio/httpcache v0.7.0 h1:ukPnn04Rgvx48JIinZvZetBfHaWE7I01JR2Q2RrQ3Vs=
github.com/gohugoio/httpcache v0.7.0/go.mod h1:fMlPrdY/vVJhAriLZnrF5QpN3BNAcoBClgAyQd+lGFI=
github.com/gohugoio/hugo v0.147.6 h1:rL4rnus/5qzj4+FoA+JMzsVvFJ2YZdVIH6pbuCB2P84=
github.com/gohugoio/hugo v0.147.6/go.mod h1:Sb2COQPDPYG+tRSpePtzKytiuVDqkBivEhgIew1QbNo=
github.com/gohugoio/hugo-goldmark-extensions/extras v0.3.0 h1:gj49kTR5Z4Hnm0ZaQrgPVazL3DUkppw+x6XhHCmh+Wk=
github.com/gohugoio/hugo-goldmark-extensions/extras v0.3.0/go.mod h1:IMMj7xiUbLt1YNJ6m7AM4cnsX4cFnnfkleO/lBHGzUg=
github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1 h1:nUzXfRTszLliZuN0JTKeunXTRaiFX6ksaWP0puLLYAY=
github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1/go.mod h1:Wy8ThAA8p2/w1DY05vEzq6EIeI2mzDjvHsu7ULBVwog=
github.com/gohugoio/locales v0.14.0 h1:Q0gpsZwfv7ATHMbcTNepFd59H7GoykzWJIxi113XGDc=
github.com/gohugoio/locales v0.14.0/go.mod h1:ip8cCAv/cnmVLzzXtiTpPwgJ4xhKZranqNqtoIu0b/4=
github.com/gohugoio/localescompressed v1.0.1 h1:KTYMi8fCWYLswFyJAeOtuk/EkXR/KPTHHNN9OS+RTxo=
github.com/gohugoio/localescompressed v1.0.1/go.mod h1:jBF6q8D7a0vaEmcWPNcAjUZLJaIVNiwvM3WlmTvooB0=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/hairyhenderson/go-codeowners v0.7.0 h1:s0W4wF8bdsBEjTWzwzSlsatSthWtTAF2xLgo4a4RwAo=
github.com/hairyhenderson/go-codeowners v0.7.0/go.mod h1:wUlNgQ3QjqC4z8DnM5nnCYVq/icpqXJyJOukKx5U8/Q=
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/jdkato/prose v1.2.1 h1:Fp3UnJmLVISmlc57BgKUzdjr0lOtjqTZicL3PaYy6cU=
github.com/jdkato/prose v1.2.1/go.mod h1:AiRHgVagnEx2JbQRQowVBKjG0bcs/vtkGCH1dYAL1rA=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kyokomi/emoji/v2 v2.2.13 h1:GhTfQa67venUUvmleTNFnb+bi7S3aocF7ZCXU9fSO7U=
github.com/kyokomi/emoji/v2 v2.2.13/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/makeworld-the-better-one/dither/v2 v2.4.0 h1:Az/dYXiTcwcRSe59Hzw4RI1rSnAZns+1msaCXetrMFE=
github.com/makeworld-the-better-one/dither/v2 v2.4.0/go.mod h1:VBtN8DXO7SNtyGmLiGA7IsFeKrBkQPze1/iAeM95arc=
github.com/marekm4/color-extractor v1.2.1 h1:3Zb2tQsn6bITZ8MBVhc33Qn1k5/SEuZ18mrXGUqIwn0=
github.com/marekm4/color-extractor v1.2.1/go.mod h1:90VjmiHI6M8ez9eYUaXLdcKnS+BAOp7w+NpwBdkJmpA=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE=
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/muesli/smartcrop v0.3.0 h1:JTlSkmxWg/oQ1TcLDoypuirdE8Y/jzNirQeLkxpA6Oc=
github.com/muesli/smartcrop v0.3.0/go.mod h1:i2fCI/UorTfgEpPPLWiFBv4pye+YAG78RwcQLUkocpI=
github.com/niklasfasching/go-org v1.7.0 h1:vyMdcMWWTe/XmANk19F4k8XGBYg0GQ/gJGMimOjGMek=
github.com/niklasfasching/go-org v1.7.0/go.mod h1:WuVm4d45oePiE0eX25GqTDQIt/qPW1T9DGkRscqLW5o=
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY=
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw=
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c=
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA=
github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo=
github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk=
github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tdewolff/minify/v2 v2.23.5 h1:/P548KcpTkIOUvNg22zN83/GiaYSOIrbqtoue4I7kYM=
github.com/tdewolff/minify/v2 v2.23.5/go.mod h1:2RI9tiIrzJU1Z5EasXEPaI1MqobRyxKHOOgrRkq5oEw=
github.com/tdewolff/parse/v2 v2.8.1 h1:J5GSHru6o3jF1uLlEKVXkDxxcVx6yzOlIVIotK4w2po=
github.com/tdewolff/parse/v2 v2.8.1/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo=
github.com/tdewolff/test v1.0.11 h1:FdLbwQVHxqG16SlkGveC0JVyrJN62COWTRyUFzfbtBE=
github.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8=
github.com/tetratelabs/wazero v1.9.0 h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I=
github.com/tetratelabs/wazero v1.9.0/go.mod h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM=
github.com/yuin/goldmark v1.7.11 h1:ZCxLyDMtz0nT2HFfsYG8WZ47Trip2+JyLysKcMYE5bo=
github.com/yuin/goldmark v1.7.11/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
github.com/yuin/goldmark-emoji v1.0.6 h1:QWfF2FYaXwL74tfGOW5izeiZepUDroDJfWubQI9HTHs=
github.com/yuin/goldmark-emoji v1.0.6/go.mod h1:ukxJDKFpdFb5x0a5HqbdlcKtebh086iJpI31LTKmWuA=
golang.org/x/exp v0.0.0-20250531010427-b6e5de432a8b h1:QoALfVG9rhQ/M7vYDScfPdWjGL9dlsVVM5VGh7aKoAA=
golang.org/x/exp v0.0.0-20250531010427-b6e5de432a8b/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ=
golang.org/x/image v0.27.0 h1:C8gA4oWU/tKkdCfYT6T2u4faJu3MeNS5O8UPWlPF61w=
golang.org/x/image v0.27.0/go.mod h1:xbdrClrAUway1MUTEZDq9mz/UpRwYAkFFNUslZtcB+g=
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM=
golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=

View File

@@ -1,6 +1,6 @@
module bra
go 1.24.4
go 1.25.3
tool github.com/unknwon/bra
@@ -17,6 +17,6 @@ require (
github.com/unknwon/com v1.0.1 // indirect
github.com/unknwon/log v0.0.0-20200308114134-929b1006e34a // indirect
github.com/urfave/cli v1.22.16 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/sys v0.36.0 // indirect
gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
)

View File

@@ -56,8 +56,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20191020152052-9984515f0562/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@@ -1,6 +1,6 @@
module cog
go 1.24.4
go 1.25.3
tool github.com/grafana/cog/cmd/cli
@@ -40,11 +40,11 @@ require (
github.com/spf13/pflag v1.0.6 // indirect
github.com/ugorji/go/codec v1.2.11 // indirect
github.com/yalue/merged_fs v1.3.0 // indirect
golang.org/x/mod v0.24.0 // indirect
golang.org/x/net v0.40.0 // indirect
golang.org/x/oauth2 v0.26.0 // indirect
golang.org/x/sync v0.14.0 // indirect
golang.org/x/text v0.25.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/net v0.45.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sync v0.17.0 // indirect
golang.org/x/text v0.29.0 // indirect
golang.org/x/tools v0.36.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@@ -85,20 +85,20 @@ github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4d
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/yalue/merged_fs v1.3.0 h1:qCeh9tMPNy/i8cwDsQTJ5bLr6IRxbs6meakNE5O+wyY=
github.com/yalue/merged_fs v1.3.0/go.mod h1:WqqchfVYQyclV2tnR7wtRhBddzBvLVR83Cjw9BKQw0M=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE=
golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM=
golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@@ -1,6 +1,6 @@
module cue
go 1.24.4
go 1.25.3
tool cuelang.org/go/cmd/cue
@@ -25,13 +25,13 @@ require (
github.com/spf13/pflag v1.0.6 // indirect
github.com/stretchr/testify v1.10.0 // indirect
github.com/tetratelabs/wazero v1.6.0 // indirect
golang.org/x/mod v0.24.0 // indirect
golang.org/x/net v0.40.0 // indirect
golang.org/x/oauth2 v0.26.0 // indirect
golang.org/x/sync v0.14.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/text v0.25.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/net v0.45.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sync v0.17.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/text v0.29.0 // indirect
golang.org/x/tools v0.36.0 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@@ -53,20 +53,20 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tetratelabs/wazero v1.6.0 h1:z0H1iikCdP8t+q341xqepY4EWvHEw8Es7tlqiVzlP3g=
github.com/tetratelabs/wazero v1.6.0/go.mod h1:0U0G41+ochRKoPKCJlh0jMg1CHkyfK8kDqiirMmKY8A=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE=
golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM=
golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@@ -1,41 +1,48 @@
module golangci-lint
go 1.24.4
go 1.25.3
tool github.com/golangci/golangci-lint/v2/cmd/golangci-lint
require (
4d63.com/gocheckcompilerdirectives v1.3.0 // indirect
4d63.com/gochecknoglobals v0.2.2 // indirect
github.com/4meepo/tagalign v1.4.2 // indirect
github.com/Abirdcfly/dupword v0.1.3 // indirect
github.com/Antonboom/errname v1.1.0 // indirect
github.com/Antonboom/nilnil v1.1.0 // indirect
github.com/Antonboom/testifylint v1.6.0 // indirect
codeberg.org/chavacava/garif v0.2.0 // indirect
dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect
dev.gaijin.team/go/golib v0.6.0 // indirect
github.com/4meepo/tagalign v1.4.3 // indirect
github.com/Abirdcfly/dupword v0.1.6 // indirect
github.com/AdminBenni/iota-mixing v1.0.0 // indirect
github.com/AlwxSin/noinlineerr v1.0.5 // indirect
github.com/Antonboom/errname v1.1.1 // indirect
github.com/Antonboom/nilnil v1.1.1 // indirect
github.com/Antonboom/testifylint v1.6.4 // indirect
github.com/BurntSushi/toml v1.5.0 // indirect
github.com/Crocmagnon/fatcontext v0.7.1 // indirect
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1 // indirect
github.com/Djarvur/go-err113 v0.1.1 // indirect
github.com/Masterminds/semver/v3 v3.3.1 // indirect
github.com/MirrexOne/unqueryvet v1.2.1 // indirect
github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect
github.com/alecthomas/chroma/v2 v2.20.0 // indirect
github.com/alecthomas/go-check-sumtype v0.3.1 // indirect
github.com/alexkohler/nakedret/v2 v2.0.5 // indirect
github.com/alexkohler/nakedret/v2 v2.0.6 // indirect
github.com/alexkohler/prealloc v1.0.0 // indirect
github.com/alfatraining/structtag v1.0.0 // indirect
github.com/alingse/asasalint v0.0.11 // indirect
github.com/alingse/nilnesserr v0.1.2 // indirect
github.com/ashanbrown/forbidigo v1.6.0 // indirect
github.com/ashanbrown/makezero v1.2.0 // indirect
github.com/alingse/nilnesserr v0.2.0 // indirect
github.com/ashanbrown/forbidigo/v2 v2.1.0 // indirect
github.com/ashanbrown/makezero/v2 v2.0.1 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bkielbasa/cyclop v1.2.3 // indirect
github.com/blizzy78/varnamelen v0.8.0 // indirect
github.com/bombsimon/wsl/v4 v4.6.0 // indirect
github.com/bombsimon/wsl/v4 v4.7.0 // indirect
github.com/bombsimon/wsl/v5 v5.2.0 // indirect
github.com/breml/bidichk v0.3.3 // indirect
github.com/breml/errchkjson v0.4.1 // indirect
github.com/butuzov/ireturn v0.3.1 // indirect
github.com/butuzov/ireturn v0.4.0 // indirect
github.com/butuzov/mirror v1.3.0 // indirect
github.com/catenacyber/perfsprint v0.9.1 // indirect
github.com/ccojocar/zxcvbn-go v1.0.2 // indirect
github.com/ccojocar/zxcvbn-go v1.0.4 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charithe/durationcheck v0.0.10 // indirect
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
@@ -43,20 +50,20 @@ require (
github.com/charmbracelet/x/ansi v0.8.0 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/chavacava/garif v0.1.0 // indirect
github.com/ckaznocha/intrange v0.3.1 // indirect
github.com/curioswitch/go-reassign v0.3.0 // indirect
github.com/daixiang0/gci v0.13.6 // indirect
github.com/daixiang0/gci v0.13.7 // indirect
github.com/dave/dst v0.27.3 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/denis-tingaikin/go-header v0.5.0 // indirect
github.com/dlclark/regexp2 v1.11.5 // indirect
github.com/ettle/strcase v0.2.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fatih/structtag v1.2.0 // indirect
github.com/firefart/nonamedreturns v1.0.5 // indirect
github.com/firefart/nonamedreturns v1.0.6 // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/fzipp/gocyclo v0.6.0 // indirect
github.com/ghostiam/protogetter v0.3.12 // indirect
github.com/ghostiam/protogetter v0.3.16 // indirect
github.com/go-critic/go-critic v0.13.0 // indirect
github.com/go-toolsmith/astcast v1.1.0 // indirect
github.com/go-toolsmith/astcopy v1.1.0 // indirect
@@ -65,49 +72,53 @@ require (
github.com/go-toolsmith/astp v1.1.0 // indirect
github.com/go-toolsmith/strparse v1.1.0 // indirect
github.com/go-toolsmith/typep v1.1.0 // indirect
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/go-xmlfmt/xmlfmt v1.1.3 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/godoc-lint/godoc-lint v0.10.0 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/golangci/asciicheck v0.5.0 // indirect
github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 // indirect
github.com/golangci/go-printf-func-name v0.1.0 // indirect
github.com/golangci/go-printf-func-name v0.1.1 // indirect
github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d // indirect
github.com/golangci/golangci-lint/v2 v2.0.2 // indirect
github.com/golangci/golangci-lint/v2 v2.5.0 // indirect
github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 // indirect
github.com/golangci/misspell v0.6.0 // indirect
github.com/golangci/plugin-module-register v0.1.1 // indirect
github.com/golangci/misspell v0.7.0 // indirect
github.com/golangci/nilerr v0.0.0-20250918000102-015671e622fe // indirect
github.com/golangci/plugin-module-register v0.1.2 // indirect
github.com/golangci/revgrep v0.8.0 // indirect
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e // indirect
github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e // indirect
github.com/gordonklaus/ineffassign v0.1.0 // indirect
github.com/gordonklaus/ineffassign v0.2.0 // indirect
github.com/gostaticanalysis/analysisutil v0.7.1 // indirect
github.com/gostaticanalysis/comment v1.5.0 // indirect
github.com/gostaticanalysis/forcetypeassert v0.2.0 // indirect
github.com/gostaticanalysis/nilerr v0.1.1 // indirect
github.com/hashicorp/go-immutable-radix/v2 v2.1.0 // indirect
github.com/hashicorp/go-version v1.7.0 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/hexops/gotextdiff v1.0.3 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jgautheron/goconst v1.7.1 // indirect
github.com/jgautheron/goconst v1.8.2 // indirect
github.com/jingyugao/rowserrcheck v1.1.1 // indirect
github.com/jjti/go-spancheck v0.6.4 // indirect
github.com/jjti/go-spancheck v0.6.5 // indirect
github.com/julz/importas v0.2.0 // indirect
github.com/karamaru-alpha/copyloopvar v1.2.1 // indirect
github.com/kisielk/errcheck v1.9.0 // indirect
github.com/kkHAIKE/contextcheck v1.1.6 // indirect
github.com/kulti/thelper v0.6.3 // indirect
github.com/kunwardeep/paralleltest v1.0.10 // indirect
github.com/kulti/thelper v0.7.1 // indirect
github.com/kunwardeep/paralleltest v1.0.14 // indirect
github.com/lasiar/canonicalheader v1.1.2 // indirect
github.com/ldez/exptostd v0.4.2 // indirect
github.com/ldez/gomoddirectives v0.6.1 // indirect
github.com/ldez/grignotin v0.9.0 // indirect
github.com/ldez/tagliatelle v0.7.1 // indirect
github.com/ldez/usetesting v0.4.2 // indirect
github.com/ldez/exptostd v0.4.4 // indirect
github.com/ldez/gomoddirectives v0.7.0 // indirect
github.com/ldez/grignotin v0.10.1 // indirect
github.com/ldez/tagliatelle v0.7.2 // indirect
github.com/ldez/usetesting v0.5.0 // indirect
github.com/leonklingele/grouper v1.1.2 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/macabu/inamedparam v0.2.0 // indirect
github.com/manuelarte/embeddedstructfieldcheck v0.4.0 // indirect
github.com/manuelarte/funcorder v0.5.0 // indirect
github.com/maratori/testableexamples v1.0.0 // indirect
github.com/maratori/testpackage v1.1.1 // indirect
github.com/matoous/godox v1.1.0 // indirect
@@ -115,7 +126,7 @@ require (
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mgechev/revive v1.7.0 // indirect
github.com/mgechev/revive v1.12.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/moricho/tparallel v0.3.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
@@ -123,11 +134,10 @@ require (
github.com/nakabonne/nestif v0.3.1 // indirect
github.com/nishanths/exhaustive v0.12.0 // indirect
github.com/nishanths/predeclared v0.2.2 // indirect
github.com/nunnatsa/ginkgolinter v0.19.1 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/nunnatsa/ginkgolinter v0.21.0 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/polyfloyd/go-errorlint v1.7.1 // indirect
github.com/polyfloyd/go-errorlint v1.8.0 // indirect
github.com/prometheus/client_golang v1.22.0 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.63.0 // indirect
@@ -144,58 +154,59 @@ require (
github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
github.com/sagikazarmark/locafero v0.7.0 // indirect
github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
github.com/sashamelentyev/usestdlibvars v1.28.0 // indirect
github.com/securego/gosec/v2 v2.22.2 // indirect
github.com/sashamelentyev/usestdlibvars v1.29.0 // indirect
github.com/securego/gosec/v2 v2.22.8 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/sivchari/containedctx v1.0.3 // indirect
github.com/sonatard/noctx v0.1.0 // indirect
github.com/sonatard/noctx v0.4.0 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/sourcegraph/go-diff v0.7.0 // indirect
github.com/spf13/afero v1.12.0 // indirect
github.com/spf13/afero v1.14.0 // indirect
github.com/spf13/cast v1.7.1 // indirect
github.com/spf13/cobra v1.9.1 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/spf13/cobra v1.10.1 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/spf13/viper v1.20.1 // indirect
github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
github.com/stbenjam/no-sprintf-host-port v0.2.0 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/stretchr/testify v1.10.0 // indirect
github.com/stretchr/testify v1.11.1 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/tdakkota/asciicheck v0.4.1 // indirect
github.com/tetafro/godot v1.5.0 // indirect
github.com/tetafro/godot v1.5.4 // indirect
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 // indirect
github.com/timonwong/loggercheck v0.10.1 // indirect
github.com/tomarrell/wrapcheck/v2 v2.10.0 // indirect
github.com/timonwong/loggercheck v0.11.0 // indirect
github.com/tomarrell/wrapcheck/v2 v2.11.0 // indirect
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
github.com/ultraware/funlen v0.2.0 // indirect
github.com/ultraware/whitespace v0.2.0 // indirect
github.com/uudashr/gocognit v1.2.0 // indirect
github.com/uudashr/iface v1.3.1 // indirect
github.com/uudashr/iface v1.4.1 // indirect
github.com/xen0n/gosmopolitan v1.3.0 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/yagipy/maintidx v1.0.0 // indirect
github.com/yeya24/promlinter v0.3.0 // indirect
github.com/ykadowak/zerologlint v0.1.5 // indirect
gitlab.com/bosi/decorder v0.4.2 // indirect
go-simpler.org/musttag v0.13.0 // indirect
go-simpler.org/sloglint v0.9.0 // indirect
go-simpler.org/musttag v0.14.0 // indirect
go-simpler.org/sloglint v0.11.1 // indirect
go.augendre.info/arangolint v0.2.0 // indirect
go.augendre.info/fatcontext v0.8.1 // indirect
go.uber.org/automaxprocs v1.6.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac // indirect
golang.org/x/mod v0.24.0 // indirect
golang.org/x/sync v0.14.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/text v0.25.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.org/x/exp/typeparams v0.0.0-20250911091902-df9299821621 // indirect
golang.org/x/mod v0.28.0 // indirect
golang.org/x/net v0.45.0 // indirect
golang.org/x/sync v0.17.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/text v0.29.0 // indirect
golang.org/x/tools v0.37.0 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
honnef.co/go/tools v0.6.1 // indirect
mvdan.cc/gofumpt v0.7.0 // indirect
mvdan.cc/gofumpt v0.9.1 // indirect
mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 // indirect
)

View File

@@ -2,46 +2,58 @@
4d63.com/gocheckcompilerdirectives v1.3.0/go.mod h1:ofsJ4zx2QAuIP/NO/NAh1ig6R1Fb18/GI7RVMwz7kAY=
4d63.com/gochecknoglobals v0.2.2 h1:H1vdnwnMaZdQW/N+NrkT1SZMTBmcwHe9Vq8lJcYYTtU=
4d63.com/gochecknoglobals v0.2.2/go.mod h1:lLxwTQjL5eIesRbvnzIP3jZtG140FnTdz+AlMa+ogt0=
github.com/4meepo/tagalign v1.4.2 h1:0hcLHPGMjDyM1gHG58cS73aQF8J4TdVR96TZViorO9E=
github.com/4meepo/tagalign v1.4.2/go.mod h1:+p4aMyFM+ra7nb41CnFG6aSDXqRxU/w1VQqScKqDARI=
github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE=
github.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw=
github.com/Antonboom/errname v1.1.0 h1:A+ucvdpMwlo/myWrkHEUEBWc/xuXdud23S8tmTb/oAE=
github.com/Antonboom/errname v1.1.0/go.mod h1:O1NMrzgUcVBGIfi3xlVuvX8Q/VP/73sseCaAppfjqZw=
github.com/Antonboom/nilnil v1.1.0 h1:jGxJxjgYS3VUUtOTNk8Z1icwT5ESpLH/426fjmQG+ng=
github.com/Antonboom/nilnil v1.1.0/go.mod h1:b7sAlogQjFa1wV8jUW3o4PMzDVFLbTux+xnQdvzdcIE=
github.com/Antonboom/testifylint v1.6.0 h1:6rdILVPt4+rqcvhid8w9wJNynKLUgqHNpFyM67UeXyc=
github.com/Antonboom/testifylint v1.6.0/go.mod h1:k+nEkathI2NFjKO6HvwmSrbzUcQ6FAnbZV+ZRrnXPLI=
codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY=
codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ=
dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y=
dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI=
dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo=
dev.gaijin.team/go/golib v0.6.0/go.mod h1:uY1mShx8Z/aNHWDyAkZTkX+uCi5PdX7KsG1eDQa2AVE=
github.com/4meepo/tagalign v1.4.3 h1:Bnu7jGWwbfpAie2vyl63Zup5KuRv21olsPIha53BJr8=
github.com/4meepo/tagalign v1.4.3/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c=
github.com/Abirdcfly/dupword v0.1.6 h1:qeL6u0442RPRe3mcaLcbaCi2/Y/hOcdtw6DE9odjz9c=
github.com/Abirdcfly/dupword v0.1.6/go.mod h1:s+BFMuL/I4YSiFv29snqyjwzDp4b65W2Kvy+PKzZ6cw=
github.com/AdminBenni/iota-mixing v1.0.0 h1:Os6lpjG2dp/AE5fYBPAA1zfa2qMdCAWwPMCgpwKq7wo=
github.com/AdminBenni/iota-mixing v1.0.0/go.mod h1:i4+tpAaB+qMVIV9OK3m4/DAynOd5bQFaOu+2AhtBCNY=
github.com/AlwxSin/noinlineerr v1.0.5 h1:RUjt63wk1AYWTXtVXbSqemlbVTb23JOSRiNsshj7TbY=
github.com/AlwxSin/noinlineerr v1.0.5/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc=
github.com/Antonboom/errname v1.1.1 h1:bllB7mlIbTVzO9jmSWVWLjxTEbGBVQ1Ff/ClQgtPw9Q=
github.com/Antonboom/errname v1.1.1/go.mod h1:gjhe24xoxXp0ScLtHzjiXp0Exi1RFLKJb0bVBtWKCWQ=
github.com/Antonboom/nilnil v1.1.1 h1:9Mdr6BYd8WHCDngQnNVV0b554xyisFioEKi30sksufQ=
github.com/Antonboom/nilnil v1.1.1/go.mod h1:yCyAmSw3doopbOWhJlVci+HuyNRuHJKIv6V2oYQa8II=
github.com/Antonboom/testifylint v1.6.4 h1:gs9fUEy+egzxkEbq9P4cpcMB6/G0DYdMeiFS87UiqmQ=
github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9qpVy7nXGbxDD4=
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/Crocmagnon/fatcontext v0.7.1 h1:SC/VIbRRZQeQWj/TcQBS6JmrXcfA+BU4OGSVUt54PjM=
github.com/Crocmagnon/fatcontext v0.7.1/go.mod h1:1wMvv3NXEBJucFGfwOJBxSVWcoIO6emV215SMkW9MFU=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1 h1:Sz1JIXEcSfhz7fUi7xHnhpIE0thVASYjvosApmHuD2k=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1/go.mod h1:n/LSCXNuIYqVfBlVXyHfMQkZDdp1/mmxfSjADd3z1Zg=
github.com/Djarvur/go-err113 v0.1.1 h1:eHfopDqXRwAi+YmCUas75ZE0+hoBHJ2GQNLYRSxao4g=
github.com/Djarvur/go-err113 v0.1.1/go.mod h1:IaWJdYFLg76t2ihfflPZnM1LIQszWOsFDh2hhhAVF6k=
github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4=
github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/MirrexOne/unqueryvet v1.2.1 h1:M+zdXMq84g+E1YOLa7g7ExN3dWfZQrdDSTCM7gC+m/A=
github.com/MirrexOne/unqueryvet v1.2.1/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg=
github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsuj3piCMx4=
github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo=
github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
github.com/alecthomas/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw=
github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA=
github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU=
github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E=
github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/alexkohler/nakedret/v2 v2.0.5 h1:fP5qLgtwbx9EJE8dGEERT02YwS8En4r9nnZ71RK+EVU=
github.com/alexkohler/nakedret/v2 v2.0.5/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
github.com/alecthomas/repr v0.5.1 h1:E3G4t2QbHTSNpPKBgMTln5KLkZHLOcU7r37J4pXBuIg=
github.com/alecthomas/repr v0.5.1/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/alexkohler/nakedret/v2 v2.0.6 h1:ME3Qef1/KIKr3kWX3nti3hhgNxw6aqN5pZmQiFSsuzQ=
github.com/alexkohler/nakedret/v2 v2.0.6/go.mod h1:l3RKju/IzOMQHmsEvXwkqMDzHHvurNQfAgE1eVmT40Q=
github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=
github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE=
github.com/alfatraining/structtag v1.0.0 h1:2qmcUqNcCoyVJ0up879K614L9PazjBSFruTB0GOFjCc=
github.com/alfatraining/structtag v1.0.0/go.mod h1:p3Xi5SwzTi+Ryj64DqjLWz7XurHxbGsq6y3ubePJPus=
github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw=
github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I=
github.com/alingse/nilnesserr v0.1.2 h1:Yf8Iwm3z2hUUrP4muWfW83DF4nE3r1xZ26fGWUKCZlo=
github.com/alingse/nilnesserr v0.1.2/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg=
github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY=
github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU=
github.com/ashanbrown/makezero v1.2.0 h1:/2Lp1bypdmK9wDIq7uWBlDF1iMUpIIS4A+pF6C9IEUU=
github.com/ashanbrown/makezero v1.2.0/go.mod h1:dxlPhHbDMC6N6xICzFBSK+4njQDdK8euNO0qjQMtGY4=
github.com/alingse/nilnesserr v0.2.0 h1:raLem5KG7EFVb4UIDAXgrv3N2JIaffeKNtcEXkEWd/w=
github.com/alingse/nilnesserr v0.2.0/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg=
github.com/ashanbrown/forbidigo/v2 v2.1.0 h1:NAxZrWqNUQiDz19FKScQ/xvwzmij6BiOw3S0+QUQ+Hs=
github.com/ashanbrown/forbidigo/v2 v2.1.0/go.mod h1:0zZfdNAuZIL7rSComLGthgc/9/n2FqspBOH90xlCHdA=
github.com/ashanbrown/makezero/v2 v2.0.1 h1:r8GtKetWOgoJ4sLyUx97UTwyt2dO7WkGFHizn/Lo8TY=
github.com/ashanbrown/makezero/v2 v2.0.1/go.mod h1:kKU4IMxmYW1M4fiEHMb2vc5SFoPzXvgbMR9gIp5pjSw=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -50,20 +62,22 @@ github.com/bkielbasa/cyclop v1.2.3 h1:faIVMIGDIANuGPWH031CZJTi2ymOQBULs9H21HSMa5
github.com/bkielbasa/cyclop v1.2.3/go.mod h1:kHTwA9Q0uZqOADdupvcFJQtp/ksSnytRMe8ztxG8Fuo=
github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M=
github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=
github.com/bombsimon/wsl/v4 v4.6.0 h1:ew2R/N42su553DKTYqt3HSxaQN+uHQPv4xZ2MBmwaW4=
github.com/bombsimon/wsl/v4 v4.6.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg=
github.com/bombsimon/wsl/v4 v4.7.0 h1:1Ilm9JBPRczjyUs6hvOPKvd7VL1Q++PL8M0SXBDf+jQ=
github.com/bombsimon/wsl/v4 v4.7.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg=
github.com/bombsimon/wsl/v5 v5.2.0 h1:PyCCwd3Q7abGs3e34IW4jLYlBS+FbsU6iK+Tb3NnDp4=
github.com/bombsimon/wsl/v5 v5.2.0/go.mod h1:Gp8lD04z27wm3FANIUPZycXp+8huVsn0oxc+n4qfV9I=
github.com/breml/bidichk v0.3.3 h1:WSM67ztRusf1sMoqH6/c4OBCUlRVTKq+CbSeo0R17sE=
github.com/breml/bidichk v0.3.3/go.mod h1:ISbsut8OnjB367j5NseXEGGgO/th206dVa427kR8YTE=
github.com/breml/errchkjson v0.4.1 h1:keFSS8D7A2T0haP9kzZTi7o26r7kE3vymjZNeNDRDwg=
github.com/breml/errchkjson v0.4.1/go.mod h1:a23OvR6Qvcl7DG/Z4o0el6BRAjKnaReoPQFciAl9U3s=
github.com/butuzov/ireturn v0.3.1 h1:mFgbEI6m+9W8oP/oDdfA34dLisRFCj2G6o/yiI1yZrY=
github.com/butuzov/ireturn v0.3.1/go.mod h1:ZfRp+E7eJLC0NQmk1Nrm1LOrn/gQlOykv+cVPdiXH5M=
github.com/butuzov/ireturn v0.4.0 h1:+s76bF/PfeKEdbG8b54aCocxXmi0wvYdOVsWxVO7n8E=
github.com/butuzov/ireturn v0.4.0/go.mod h1:ghI0FrCmap8pDWZwfPisFD1vEc56VKH4NpQUxDHta70=
github.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc=
github.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI=
github.com/catenacyber/perfsprint v0.9.1 h1:5LlTp4RwTooQjJCvGEFV6XksZvWE7wCOUvjD2z0vls0=
github.com/catenacyber/perfsprint v0.9.1/go.mod h1:q//VWC2fWbcdSLEY1R3l8n0zQCDPdE4IjZwyY1HMunM=
github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg=
github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60=
github.com/ccojocar/zxcvbn-go v1.0.4 h1:FWnCIRMXPj43ukfX000kvBZvV6raSxakYr1nzyNrUcc=
github.com/ccojocar/zxcvbn-go v1.0.4/go.mod h1:3GxGX+rHmueTUMvm5ium7irpyjmm7ikxYFOSJB21Das=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4=
@@ -78,15 +92,13 @@ github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0G
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc=
github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww=
github.com/ckaznocha/intrange v0.3.1 h1:j1onQyXvHUsPWujDH6WIjhyH26gkRt/txNlV7LspvJs=
github.com/ckaznocha/intrange v0.3.1/go.mod h1:QVepyz1AkUoFQkpEqksSYpNpUo3c5W7nWh/s6SHIJJk=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+fbBAhrQPs=
github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88=
github.com/daixiang0/gci v0.13.6 h1:RKuEOSkGpSadkGbvZ6hJ4ddItT3cVZ9Vn9Rybk6xjl8=
github.com/daixiang0/gci v0.13.6/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
github.com/daixiang0/gci v0.13.7 h1:+0bG5eK9vlI08J+J/NWGbWPTNiXPG4WhNLJOkSxWITQ=
github.com/daixiang0/gci v0.13.7/go.mod h1:812WVN6JLFY9S6Tv76twqmNqevN0pa3SX3nih0brVzQ=
github.com/dave/dst v0.27.3 h1:P1HPoMza3cMEquVf9kKy8yXsFirry4zEnWOdYPOoIzY=
github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc=
github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo=
@@ -97,28 +109,28 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8=
github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY=
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q=
github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA=
github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw=
github.com/firefart/nonamedreturns v1.0.6 h1:vmiBcKV/3EqKY3ZiPxCINmpS431OcE1S47AQUwhrg8E=
github.com/firefart/nonamedreturns v1.0.6/go.mod h1:R8NisJnSIpvPWheCq0mNRXJok6D8h7fagJTF8EMEwCo=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=
github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA=
github.com/ghostiam/protogetter v0.3.12 h1:xTPjH97iKph27vXRRKV0OCke5sAMoHPbVeVstdzmCLE=
github.com/ghostiam/protogetter v0.3.12/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA=
github.com/ghostiam/protogetter v0.3.16 h1:UkrisuJBYLnZW6FcYUNBDJOqY3X22RtoYMlCsiNlFFA=
github.com/ghostiam/protogetter v0.3.16/go.mod h1:4SRRIv6PcjkIMpUkRUsP4TsUTqO/N3Fmvwivuc/sCHA=
github.com/go-critic/go-critic v0.13.0 h1:kJzM7wzltQasSUXtYyTl6UaPVySO6GkaR1thFnJ6afY=
github.com/go-critic/go-critic v0.13.0/go.mod h1:M/YeuJ3vOCQDnP2SU+ZhjgRzwzcBW87JqLpMJLrZDLI=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
@@ -142,53 +154,56 @@ github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQi
github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ=
github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus=
github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig=
github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk=
github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=
github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUWY=
github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/godoc-lint/godoc-lint v0.10.0 h1:OcyrziBi18sQSEpib6NesVHEJ/Xcng97NunePBA48g4=
github.com/godoc-lint/godoc-lint v0.10.0/go.mod h1:KleLcHu/CGSvkjUH2RvZyoK1MBC7pDQg4NxMYLcBBsw=
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
github.com/golangci/asciicheck v0.5.0 h1:jczN/BorERZwK8oiFBOGvlGPknhvq0bjnysTj4nUfo0=
github.com/golangci/asciicheck v0.5.0/go.mod h1:5RMNAInbNFw2krqN6ibBxN/zfRFa9S6tA1nPdM0l8qQ=
github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 h1:WUvBfQL6EW/40l6OmeSBYQJNSif4O11+bmWEz+C7FYw=
github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32/go.mod h1:NUw9Zr2Sy7+HxzdjIULge71wI6yEg1lWQr7Evcu8K0E=
github.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU=
github.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s=
github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarogrvjO9AfiW3B4U=
github.com/golangci/go-printf-func-name v0.1.1/go.mod h1:Es64MpWEZbh0UBtTAICOZiB+miW53w/K9Or/4QogJss=
github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0aiOTsLKO2aZQAPT4nlQCsimGcSGE=
github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY=
github.com/golangci/golangci-lint/v2 v2.0.2 h1:dMCC8ikPiLDvHMFy3+XypSAuGDBOLzwWqqamer+bWsY=
github.com/golangci/golangci-lint/v2 v2.0.2/go.mod h1:ptNNMeGBQrbves0Qq38xvfdJg18PzxmT+7KRCOpm6i8=
github.com/golangci/golangci-lint/v2 v2.5.0 h1:BDRg4ASm4J1y/DSRY6zwJ5tr5Yy8ZqbZ79XrCeFxaQo=
github.com/golangci/golangci-lint/v2 v2.5.0/go.mod h1:IJtWJBZkLbx7AVrIUzLd8Oi3ADtwaNpWbR3wthVWHcc=
github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 h1:AkK+w9FZBXlU/xUmBtSJN1+tAI4FIvy5WtnUnY8e4p8=
github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95/go.mod h1:k9mmcyWKSTMcPPvQUCfRWWQ9VHJ1U9Dc0R7kaXAgtnQ=
github.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs=
github.com/golangci/misspell v0.6.0/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo=
github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c=
github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc=
github.com/golangci/misspell v0.7.0 h1:4GOHr/T1lTW0hhR4tgaaV1WS/lJ+ncvYCoFKmqJsj0c=
github.com/golangci/misspell v0.7.0/go.mod h1:WZyyI2P3hxPY2UVHs3cS8YcllAeyfquQcKfdeE9AFVg=
github.com/golangci/nilerr v0.0.0-20250918000102-015671e622fe h1:F1pK9tBy41i7eesBFkSNMldwtiAaWiU+3fT/24sTnNI=
github.com/golangci/nilerr v0.0.0-20250918000102-015671e622fe/go.mod h1:CtTxAluxD2ng9aIT9bPrVoMuISFWCD+SaxtvYtdWA2k=
github.com/golangci/plugin-module-register v0.1.2 h1:e5WM6PO6NIAEcij3B053CohVp3HIYbzSuP53UAYgOpg=
github.com/golangci/plugin-module-register v0.1.2/go.mod h1:1+QGTsKBvAIvPvoY/os+G5eoqxWn70HYDm2uvUyGuVw=
github.com/golangci/revgrep v0.8.0 h1:EZBctwbVd0aMeRnNUsFogoyayvKHyxlV3CdUA46FX2s=
github.com/golangci/revgrep v0.8.0/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k=
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs=
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ=
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e h1:ai0EfmVYE2bRA5htgAG9r7s3tHsfjIhN98WshBTJ9jM=
github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e/go.mod h1:Vrn4B5oR9qRwM+f54koyeH3yzphlecwERs0el27Fr/s=
github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e h1:gD6P7NEo7Eqtt0ssnqSJNNndxe69DOQ24A5h7+i3KpM=
github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e/go.mod h1:h+wZwLjUTJnm/P2rwlbJdRPZXOzaT36/FwnPnY2inzc=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s=
github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0=
github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18=
github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA=
github.com/gordonklaus/ineffassign v0.2.0 h1:Uths4KnmwxNJNzq87fwQQDDnbNb7De00VOk9Nu0TySs=
github.com/gordonklaus/ineffassign v0.2.0/go.mod h1:TIpymnagPSexySzs7F9FnO1XFTy8IT3a59vmZp5Y9Lw=
github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk=
github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc=
github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado=
github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM=
github.com/gostaticanalysis/comment v1.5.0 h1:X82FLl+TswsUMpMh17srGRuKaaXprTaytmEpgnKIDu8=
github.com/gostaticanalysis/comment v1.5.0/go.mod h1:V6eb3gpCv9GNVqb6amXzEUX3jXLVK/AdA+IrAMSqvEc=
github.com/gostaticanalysis/forcetypeassert v0.2.0 h1:uSnWrrUEYDr86OCxWa4/Tp2jeYDlogZiZHzGkWFefTk=
github.com/gostaticanalysis/forcetypeassert v0.2.0/go.mod h1:M5iPavzE9pPqWyeiVXSFghQjljW1+l/Uke3PXHS6ILY=
github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk=
github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A=
github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M=
github.com/gostaticanalysis/testutil v0.5.0 h1:Dq4wT1DdTwTGCQQv3rl3IvD5Ld0E6HiY+3Zh0sUGqw8=
github.com/gostaticanalysis/testutil v0.5.0/go.mod h1:OLQSbuM6zw2EvCcXTz1lVq5unyoNft372msDY0nY5Hs=
@@ -205,12 +220,12 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk=
github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
github.com/jgautheron/goconst v1.8.2 h1:y0XF7X8CikZ93fSNT6WBTb/NElBu9IjaY7CCYQrCMX4=
github.com/jgautheron/goconst v1.8.2/go.mod h1:A0oxgBCHy55NQn6sYpO7UdnA9p+h7cPtoOZUmvNIako=
github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs=
github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c=
github.com/jjti/go-spancheck v0.6.4 h1:Tl7gQpYf4/TMU7AT84MN83/6PutY21Nb9fuQjFTpRRc=
github.com/jjti/go-spancheck v0.6.4/go.mod h1:yAEYdKJ2lRkDA8g7X+oKUHXOWVAXSBJRv04OhF+QUjk=
github.com/jjti/go-spancheck v0.6.5 h1:lmi7pKxa37oKYIMScialXUK6hP3iY5F1gu+mLBPgYB8=
github.com/jjti/go-spancheck v0.6.5/go.mod h1:aEogkeatBrbYsyW6y5TgDfihCulDYciL1B7rG2vSsrU=
github.com/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ=
github.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY=
github.com/karamaru-alpha/copyloopvar v1.2.1 h1:wmZaZYIjnJ0b5UoKDjUHrikcV0zuPyyxI4SVplLd2CI=
@@ -226,28 +241,32 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs=
github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I=
github.com/kunwardeep/paralleltest v1.0.10 h1:wrodoaKYzS2mdNVnc4/w31YaXFtsc21PCTdvWJ/lDDs=
github.com/kunwardeep/paralleltest v1.0.10/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY=
github.com/kulti/thelper v0.7.1 h1:fI8QITAoFVLx+y+vSyuLBP+rcVIB8jKooNSCT2EiI98=
github.com/kulti/thelper v0.7.1/go.mod h1:NsMjfQEy6sd+9Kfw8kCP61W1I0nerGSYSFnGaxQkcbs=
github.com/kunwardeep/paralleltest v1.0.14 h1:wAkMoMeGX/kGfhQBPODT/BL8XhK23ol/nuQ3SwFaUw8=
github.com/kunwardeep/paralleltest v1.0.14/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk=
github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4=
github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI=
github.com/ldez/exptostd v0.4.2 h1:l5pOzHBz8mFOlbcifTxzfyYbgEmoUqjxLFHZkjlbHXs=
github.com/ldez/exptostd v0.4.2/go.mod h1:iZBRYaUmcW5jwCR3KROEZ1KivQQp6PHXbDPk9hqJKCQ=
github.com/ldez/gomoddirectives v0.6.1 h1:Z+PxGAY+217f/bSGjNZr/b2KTXcyYLgiWI6geMBN2Qc=
github.com/ldez/gomoddirectives v0.6.1/go.mod h1:cVBiu3AHR9V31em9u2kwfMKD43ayN5/XDgr+cdaFaKs=
github.com/ldez/grignotin v0.9.0 h1:MgOEmjZIVNn6p5wPaGp/0OKWyvq42KnzAt/DAb8O4Ow=
github.com/ldez/grignotin v0.9.0/go.mod h1:uaVTr0SoZ1KBii33c47O1M8Jp3OP3YDwhZCmzT9GHEk=
github.com/ldez/tagliatelle v0.7.1 h1:bTgKjjc2sQcsgPiT902+aadvMjCeMHrY7ly2XKFORIk=
github.com/ldez/tagliatelle v0.7.1/go.mod h1:3zjxUpsNB2aEZScWiZTHrAXOl1x25t3cRmzfK1mlo2I=
github.com/ldez/usetesting v0.4.2 h1:J2WwbrFGk3wx4cZwSMiCQQ00kjGR0+tuuyW0Lqm4lwA=
github.com/ldez/usetesting v0.4.2/go.mod h1:eEs46T3PpQ+9RgN9VjpY6qWdiw2/QmfiDeWmdZdrjIQ=
github.com/ldez/exptostd v0.4.4 h1:58AtQjnLcT/tI5W/1KU7xE/O7zW9RAWB6c/ScQAnfus=
github.com/ldez/exptostd v0.4.4/go.mod h1:QfdzPw6oHjFVdNV7ILoPu5sw3OZ3OG1JS0I5JN3J4Js=
github.com/ldez/gomoddirectives v0.7.0 h1:EOx8Dd56BZYSez11LVgdj025lKwlP0/E5OLSl9HDwsY=
github.com/ldez/gomoddirectives v0.7.0/go.mod h1:wR4v8MN9J8kcwvrkzrx6sC9xe9Cp68gWYCsda5xvyGc=
github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o=
github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas=
github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk=
github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI=
github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc=
github.com/ldez/usetesting v0.5.0/go.mod h1:Spnb4Qppf8JTuRgblLrEWb7IE6rDmUpGvxY3iRrzvDQ=
github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY=
github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/macabu/inamedparam v0.2.0 h1:VyPYpOc10nkhI2qeNUdh3Zket4fcZjEWe35poddBCpE=
github.com/macabu/inamedparam v0.2.0/go.mod h1:+Pee9/YfGe5LJ62pYXqB89lJ+0k5bsR8Wgz/C0Zlq3U=
github.com/manuelarte/embeddedstructfieldcheck v0.4.0 h1:3mAIyaGRtjK6EO9E73JlXLtiy7ha80b2ZVGyacxgfww=
github.com/manuelarte/embeddedstructfieldcheck v0.4.0/go.mod h1:z8dFSyXqp+fC6NLDSljRJeNQJJDWnY7RoWFzV3PC6UM=
github.com/manuelarte/funcorder v0.5.0 h1:llMuHXXbg7tD0i/LNw8vGnkDTHFpTnWqKPI85Rknc+8=
github.com/manuelarte/funcorder v0.5.0/go.mod h1:Yt3CiUQthSBMBxjShjdXMexmzpP8YGvGLjrxJNkO2hA=
github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI=
github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE=
github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04=
@@ -261,11 +280,10 @@ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHP
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mgechev/revive v1.7.0 h1:JyeQ4yO5K8aZhIKf5rec56u0376h8AlKNQEmjfkjKlY=
github.com/mgechev/revive v1.7.0/go.mod h1:qZnwcNhoguE58dfi96IJeSTPeZQejNeoMQLUZGi4SW4=
github.com/mgechev/revive v1.12.0 h1:Q+/kkbbwerrVYPv9d9efaPGmAO/NsxwW/nE6ahpQaCU=
github.com/mgechev/revive v1.12.0/go.mod h1:VXsY2LsTigk8XU9BpZauVLjVrhICMOV3k1lpB3CXrp8=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/moricho/tparallel v0.3.2 h1:odr8aZVFA3NZrNybggMkYO3rgPRcqjeQUlBBFVxKHTI=
@@ -280,14 +298,12 @@ github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhK
github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs=
github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk=
github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c=
github.com/nunnatsa/ginkgolinter v0.19.1 h1:mjwbOlDQxZi9Cal+KfbEJTCz327OLNfwNvoZ70NJ+c4=
github.com/nunnatsa/ginkgolinter v0.19.1/go.mod h1:jkQ3naZDmxaZMXPWaS9rblH+i+GWXQCaS/JFIWcOH2s=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU=
github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk=
github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
github.com/nunnatsa/ginkgolinter v0.21.0 h1:IYwuX+ajy3G1MezlMLB1BENRtFj16+Evyi4uki1NOOQ=
github.com/nunnatsa/ginkgolinter v0.21.0/go.mod h1:QlzY9UP9zaqu58FjYxhp9bnjuwXwG1bfW5rid9ChNMw=
github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus=
github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8=
github.com/onsi/gomega v1.38.0 h1:c/WX+w8SLAinvuKKQFh77WEucCnPk4j2OTUr7lt7BeY=
github.com/onsi/gomega v1.38.0/go.mod h1:OcXcwId0b9QsE7Y49u+BTrL4IdKOBOKnD6VQNTJEB6o=
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU=
github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w=
@@ -295,13 +311,13 @@ github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJ
github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs=
github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=
github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/polyfloyd/go-errorlint v1.7.1 h1:RyLVXIbosq1gBdk/pChWA8zWYLsq9UEw7a1L5TVMCnA=
github.com/polyfloyd/go-errorlint v1.7.1/go.mod h1:aXjNb1x2TNhoLsk26iv1yl7a+zTnXPhwEMtEXukiLR8=
github.com/polyfloyd/go-errorlint v1.8.0 h1:DL4RestQqRLr8U4LygLw8g2DX6RN1eBJOpa2mzsrl1Q=
github.com/polyfloyd/go-errorlint v1.8.0/go.mod h1:G2W0Q5roxbLCt0ZQbdoxQxXktTjwNyDbEaj3n7jvl4s=
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
@@ -338,14 +354,14 @@ github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsF
github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k=
github.com/sanposhiho/wastedassign/v2 v2.1.0 h1:crurBF7fJKIORrV85u9UUpePDYGWnwvv3+A96WvwXT0=
github.com/sanposhiho/wastedassign/v2 v2.1.0/go.mod h1:+oSmSC+9bQ+VUAxA66nBb0Z7N8CK7mscKTDYC6aIek4=
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw=
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw=
github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ=
github.com/sashamelentyev/usestdlibvars v1.28.0 h1:jZnudE2zKCtYlGzLVreNp5pmCdOxXUzwsMDBkR21cyQ=
github.com/sashamelentyev/usestdlibvars v1.28.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8=
github.com/securego/gosec/v2 v2.22.2 h1:IXbuI7cJninj0nRpZSLCUlotsj8jGusohfONMrHoF6g=
github.com/securego/gosec/v2 v2.22.2/go.mod h1:UEBGA+dSKb+VqM6TdehR7lnQtIIMorYJ4/9CW1KVQBE=
github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iMf7Knkq057v4XOQ=
github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8=
github.com/securego/gosec/v2 v2.22.8 h1:3NMpmfXO8wAVFZPNsd3EscOTa32Jyo6FLLlW53bexMI=
github.com/securego/gosec/v2 v2.22.8/go.mod h1:ZAw8K2ikuH9qDlfdV87JmNghnVfKB1XC7+TVzk6Utto=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
@@ -354,21 +370,22 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE=
github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4=
github.com/sonatard/noctx v0.1.0 h1:JjqOc2WN16ISWAjAk8M5ej0RfExEXtkEyExl2hLW+OM=
github.com/sonatard/noctx v0.1.0/go.mod h1:0RvBxqY8D4j9cTTTWE8ylt2vqj2EPI8fHmrxHdsaZ2c=
github.com/sonatard/noctx v0.4.0 h1:7MC/5Gg4SQ4lhLYR6mvOP6mQVSxCrdyiExo7atBs27o=
github.com/sonatard/noctx v0.4.0/go.mod h1:64XdbzFb18XL4LporKXp8poqZtPKbCrqQ402CV+kJas=
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0=
github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=
github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs=
github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4=
github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA=
github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo=
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4=
github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4=
github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0=
@@ -376,35 +393,27 @@ github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRk
github.com/stbenjam/no-sprintf-host-port v0.2.0 h1:i8pxvGrt1+4G0czLr/WnmyH7zbZ8Bg8etvARQ1rpyl4=
github.com/stbenjam/no-sprintf-host-port v0.2.0/go.mod h1:eL0bQ9PasS0hsyTyfTjjG+E80QIyPnBVQbYZyv20Jfk=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
github.com/tdakkota/asciicheck v0.4.1 h1:bm0tbcmi0jezRA2b5kg4ozmMuGAFotKI3RZfrhfovg8=
github.com/tdakkota/asciicheck v0.4.1/go.mod h1:0k7M3rCfRXb0Z6bwgvkEIMleKH3kXNz9UqJ9Xuqopr8=
github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA=
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag=
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
github.com/tetafro/godot v1.5.0 h1:aNwfVI4I3+gdxjMgYPus9eHmoBeJIbnajOyqZYStzuw=
github.com/tetafro/godot v1.5.0/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=
github.com/tetafro/godot v1.5.4 h1:u1ww+gqpRLiIA16yF2PV1CV1n/X3zhyezbNXC3E14Sg=
github.com/tetafro/godot v1.5.4/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU=
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk=
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460=
github.com/timonwong/loggercheck v0.10.1 h1:uVZYClxQFpw55eh+PIoqM7uAOHMrhVcDoWDery9R8Lg=
github.com/timonwong/loggercheck v0.10.1/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8=
github.com/tomarrell/wrapcheck/v2 v2.10.0 h1:SzRCryzy4IrAH7bVGG4cK40tNUhmVmMDuJujy4XwYDg=
github.com/tomarrell/wrapcheck/v2 v2.10.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=
github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M=
github.com/timonwong/loggercheck v0.11.0/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8=
github.com/tomarrell/wrapcheck/v2 v2.11.0 h1:BJSt36snX9+4WTIXeJ7nvHBQBcm1h2SjQMSlmQ6aFSU=
github.com/tomarrell/wrapcheck/v2 v2.11.0/go.mod h1:wFL9pDWDAbXhhPZZt+nG8Fu+h29TtnZ2MW6Lx4BRXIU=
github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw=
github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=
github.com/ultraware/funlen v0.2.0 h1:gCHmCn+d2/1SemTdYMiKLAHFYxTYz7z9VIDRaTGyLkI=
@@ -413,8 +422,8 @@ github.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSW
github.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8=
github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYRA=
github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU=
github.com/uudashr/iface v1.3.1 h1:bA51vmVx1UIhiIsQFSNq6GZ6VPTk3WNMZgRiCe9R29U=
github.com/uudashr/iface v1.3.1/go.mod h1:4QvspiRd3JLPAEXBQ9AiZpLbJlrWWgRChOKDJEuQTdg=
github.com/uudashr/iface v1.4.1 h1:J16Xl1wyNX9ofhpHmQ9h9gk5rnv2A6lX/2+APLTo0zU=
github.com/uudashr/iface v1.4.1/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg=
github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM=
github.com/xen0n/gosmopolitan v1.3.0/go.mod h1:rckfr5T6o4lBtM1ga7mLGKZmLxswUoH1zxHgNXOsEt4=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
@@ -435,10 +444,14 @@ gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo=
gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8=
go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ=
go-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28=
go-simpler.org/musttag v0.13.0 h1:Q/YAW0AHvaoaIbsPj3bvEI5/QFP7w696IMUpnKXQfCE=
go-simpler.org/musttag v0.13.0/go.mod h1:FTzIGeK6OkKlUDVpj0iQUXZLUO1Js9+mvykDQy9C5yM=
go-simpler.org/sloglint v0.9.0 h1:/40NQtjRx9txvsB/RN022KsUJU+zaaSb/9q9BSefSrE=
go-simpler.org/sloglint v0.9.0/go.mod h1:G/OrAF6uxj48sHahCzrbarVMptL2kjWTaUeC8+fOGww=
go-simpler.org/musttag v0.14.0 h1:XGySZATqQYSEV3/YTy+iX+aofbZZllJaqwFWs+RTtSo=
go-simpler.org/musttag v0.14.0/go.mod h1:uP8EymctQjJ4Z1kUnjX0u2l60WfUdQxCwSNKzE1JEOE=
go-simpler.org/sloglint v0.11.1 h1:xRbPepLT/MHPTCA6TS/wNfZrDzkGvCCqUv4Bdwc3H7s=
go-simpler.org/sloglint v0.11.1/go.mod h1:2PowwiCOK8mjiF+0KGifVOT8ZsCNiFzvfyJeJOIt8MQ=
go.augendre.info/arangolint v0.2.0 h1:2NP/XudpPmfBhQKX4rMk+zDYIj//qbt4hfZmSSTcpj8=
go.augendre.info/arangolint v0.2.0/go.mod h1:Vx4KSJwu48tkE+8uxuf0cbBnAPgnt8O1KWiT7bljq7w=
go.augendre.info/fatcontext v0.8.1 h1:/T4+cCjpL9g71gJpcFAgVo/K5VFpqlN+NPU7QXxD5+A=
go.augendre.info/fatcontext v0.8.1/go.mod h1:r3Qz4ZOzex66wfyyj5VZ1xUcl81vzvHQ6/GWzzlMEwA=
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -457,21 +470,19 @@ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac h1:TSSpLIG4v+p0rPv1pNOQtl1I8knsO4S9trOxNMOLVP4=
golang.org/x/exp/typeparams v0.0.0-20250210185358-939b2ce775ac/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20250911091902-df9299821621 h1:Yl4H5w2RV7L/dvSHp2GerziT5K2CORgFINPaMFxWGWw=
golang.org/x/exp/typeparams v0.0.0-20250911091902-df9299821621/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U=
golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -481,14 +492,12 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM=
golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -498,8 +507,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -515,19 +524,16 @@ golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
@@ -536,33 +542,29 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU=
golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE=
golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w=
golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM=
golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=
golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=
golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -574,14 +576,13 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.6.1 h1:R094WgE8K4JirYjBaOpz/AvTyUu/3wbmAoskKN/pxTI=
honnef.co/go/tools v0.6.1/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4=
mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=
mvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo=
mvdan.cc/gofumpt v0.9.1 h1:p5YT2NfFWsYyTieYgwcQ8aKV3xRvFH4uuN/zB2gBbMQ=
mvdan.cc/gofumpt v0.9.1/go.mod h1:3xYtNemnKiXaTh6R4VtlqDATFwBbdXI8lJvH/4qk7mw=
mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 h1:WjUu4yQoT5BHT1w8Zu56SP8367OuBV5jvo+4Ulppyf8=
mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4/go.mod h1:rthT7OuvRbaGcd5ginj6dA2oLE7YNlta9qhBNNdCaLE=

View File

@@ -1,6 +1,6 @@
module jb
go 1.24.4
go 1.25.3
tool github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
@@ -15,6 +15,6 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/stretchr/testify v1.10.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/sys v0.36.0 // indirect
gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect
)

View File

@@ -54,8 +54,8 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@@ -1,6 +1,6 @@
module lefthook
go 1.24.4
go 1.25.3
tool github.com/evilmartians/lefthook
@@ -18,7 +18,7 @@ require (
github.com/evilmartians/lefthook v1.4.8 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -43,10 +43,9 @@ require (
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/term v0.32.0 // indirect
golang.org/x/text v0.25.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/term v0.35.0 // indirect
golang.org/x/text v0.29.0 // indirect
gopkg.in/alessio/shellescape.v1 v1.0.0-20170105083845-52074bc9df61 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect

View File

@@ -29,8 +29,8 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk=
github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=
github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
@@ -91,14 +91,14 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
gopkg.in/alessio/shellescape.v1 v1.0.0-20170105083845-52074bc9df61 h1:8ajkpB4hXVftY5ko905id+dOnmorcS2CHNxxHLLDcFM=
gopkg.in/alessio/shellescape.v1 v1.0.0-20170105083845-52074bc9df61/go.mod h1:IfMagxm39Ys4ybJrDb7W3Ob8RwxftP0Yy+or/NVz1O8=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@@ -1,6 +1,6 @@
module swagger
go 1.24.4
go 1.25.3
tool github.com/go-swagger/go-swagger/cmd/swagger
@@ -24,7 +24,7 @@ require (
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-openapi/validate v0.24.0 // indirect
github.com/go-swagger/go-swagger v0.30.6-0.20240310114303-db51e79a0e37 // indirect
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/handlers v1.5.2 // indirect
@@ -51,12 +51,12 @@ require (
github.com/toqueteos/webbrowser v1.2.0 // indirect
go.mongodb.org/mongo-driver v1.16.1 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.38.0 // indirect
golang.org/x/mod v0.24.0 // indirect
golang.org/x/sync v0.14.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/text v0.25.0 // indirect
golang.org/x/tools v0.33.0 // indirect
golang.org/x/crypto v0.42.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/sync v0.17.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/text v0.29.0 // indirect
golang.org/x/tools v0.36.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@@ -41,8 +41,8 @@ github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3Bum
github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ=
github.com/go-swagger/go-swagger v0.30.6-0.20240310114303-db51e79a0e37 h1:KFcZmKdZmapAog2+eL1buervAYrYolBZk7fMecPPDmo=
github.com/go-swagger/go-swagger v0.30.6-0.20240310114303-db51e79a0e37/go.mod h1:i1/E+d8iPNReSE7y04FaVu5OPKB3il5cn+T1Egogg3I=
github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk=
github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=
github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
@@ -101,19 +101,19 @@ go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4
go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@@ -1,42 +0,0 @@
# To generate the .drone.yml file:
# 1. Modify the *.star definitions
# 2. Login to drone and export the env variables (token and server) shown here: https://drone.grafana.net/account
# 3. Run `make drone`
# More information about this process here: https://github.com/grafana/deployment_tools/blob/master/docs/infrastructure/drone/signing.md
"""
This module returns a Drone configuration including pipelines and secrets.
"""
load("scripts/drone/events/cron.star", "cronjobs")
load("scripts/drone/events/main.star", "main_pipelines")
load("scripts/drone/events/pr.star", "pr_pipelines")
load(
"scripts/drone/events/release.star",
"publish_artifacts_pipelines",
"publish_npm_pipelines",
"publish_packages_pipeline",
)
load("scripts/drone/events/rrc-patch.star", "rrc_patch_pipelines")
load(
"scripts/drone/pipelines/publish_images.star",
"publish_image_pipelines_public",
)
load(
"scripts/drone/rgm.star",
"rgm",
)
load("scripts/drone/vault.star", "secrets")
def main(_ctx):
return (
pr_pipelines() +
main_pipelines() +
rrc_patch_pipelines() +
publish_image_pipelines_public() +
publish_artifacts_pipelines("public") +
publish_npm_pipelines() +
publish_packages_pipeline() +
rgm() +
cronjobs() +
secrets()
)

2991
.drone.yml

File diff suppressed because it is too large Load Diff

523
.github/CODEOWNERS vendored
View File

@@ -39,14 +39,18 @@
/docs/sources/ @irenerl24
/docs/sources/alerting/ @JohnnyK-Grafana
/docs/sources/dashboards/ @imatwawana
/docs/sources/as-code/ @urbiz-grafana
/docs/sources/developer-resources/ @urbiz-grafana
/docs/sources/datasources/ @lwandz13
/docs/sources/panels-visualizations/ @imatwawana
/docs/sources/release-notes/ @irenerl24 @GrafanaWriter
/docs/sources/upgrade-guide/ @imatwawana
/docs/sources/whatsnew/ @imatwawana
/docs/sources/upgrade-guide/ @jtvdez
/docs/sources/whatsnew/ @jtvdez
/docs/sources/developers/plugins/ @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/developer-resources/plugins/ @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/visualizations/dashboards/ @imatwawana
/docs/sources/visualizations/panels-visualizations/ @imatwawana
/docs/sources/dashboards/share-dashboards-panels/_index.md @imatwawana @jtvdez
/docs/sources/dashboards/share-dashboards-panels/shared-dashboards/index.md @jtvdez
@@ -59,7 +63,6 @@
/go.sum @grafana/grafana-backend-group
/go.work @grafana/grafana-app-platform-squad
/go.work.sum @grafana/grafana-app-platform-squad
/.bingo/ @grafana/grafana-backend-group
/.citools @grafana/grafana-developer-enablement-squad
/pkg/README.md @grafana/grafana-backend-group
/pkg/ruleguard.rules.go @grafana/grafana-backend-group
@@ -72,23 +75,32 @@
/hack/ @grafana/grafana-app-platform-squad
/.air.toml @macabu
/pkg/apis/provisioning @grafana/grafana-git-ui-sync-team
# Git Sync / App Platform Provisioning
/apps/provisioning/ @grafana/grafana-git-ui-sync-team
/pkg/operators @grafana/grafana-git-ui-sync-team
/public/app/features/provisioning @grafana/grafana-git-ui-sync-team
/pkg/registry/apis/provisioning @grafana/grafana-git-ui-sync-team
/pkg/tests/apis/provisioning @grafana/grafana-git-ui-sync-team
# Git Sync frontend owned by frontend team as a whole.
/apps/alerting/ @grafana/alerting-backend
/apps/dashboard/ @grafana/grafana-app-platform-squad @grafana/dashboards-squad
/apps/folder/ @grafana/grafana-app-platform-squad
/apps/playlist/ @grafana/grafana-app-platform-squad
/apps/plugins/ @grafana/plugins-platform-backend
/apps/preferences/ @grafana/grafana-app-platform-squad @grafana/grafana-frontend-platform
/apps/shorturl/ @grafana/sharing-squad
/apps/secret/ @grafana/grafana-operator-experience-squad
/apps/investigations/ @fcjack @matryer @svennergr
/apps/advisor/ @grafana/plugins-platform-backend
/apps/iam/ @grafana/access-squad
/apps/sdk.mk @grafana/grafana-app-platform-squad
/pkg/api/ @grafana/grafana-backend-group
/pkg/apis/ @grafana/grafana-app-platform-squad
/pkg/apis/query @grafana/grafana-datasources-core-services
/pkg/apis/userstorage @grafana/grafana-app-platform-squad @grafana/plugins-platform-backend
/pkg/apis/secret @grafana/grafana-operator-experience-squad
/pkg/bus/ @grafana/grafana-search-and-storage
/pkg/clientauth/ @grafana/grafana-app-platform-squad
/pkg/cmd/ @grafana/grafana-backend-group
/pkg/cmd/grafana-cli/commands/install_command.go @grafana/plugins-platform-backend
/pkg/cmd/grafana-cli/commands/install_command_test.go @grafana/plugins-platform-backend
@@ -107,6 +119,7 @@
/pkg/components/loki/ @grafana/grafana-backend-group
/pkg/components/null/ @grafana/grafana-backend-group
/pkg/components/simplejson/ @grafana/grafana-backend-group
/pkg/configprovider/ @grafana/grafana-backend-services-squad
/pkg/events/ @grafana/grafana-backend-group
/pkg/extensions/ @grafana/grafana-backend-group
/pkg/ifaces/ @grafana/grafana-backend-group
@@ -131,6 +144,7 @@
/pkg/apimachinery @grafana/grafana-app-platform-squad
/pkg/apimachinery/identity/ @grafana/identity-squad
/pkg/apimachinery/errutil/ @grafana/grafana-backend-group
/pkg/operators/iam @grafana/access-squad
/pkg/promlib @grafana/oss-big-tent
/pkg/storage/ @grafana/grafana-search-and-storage
/pkg/storage/secret/ @grafana/grafana-operator-experience-squad
@@ -149,6 +163,7 @@
/pkg/services/hooks/ @grafana/grafana-backend-group
/pkg/services/kmsproviders/ @grafana/grafana-operator-experience-squad
/pkg/services/licensing/ @grafana/grafana-operator-experience-squad
/pkg/services/dsquerierclient/ @grafana/grafana-datasources-core-services
/pkg/services/navtree/ @grafana/grafana-backend-group
/pkg/services/notifications/ @grafana/grafana-backend-group
/pkg/services/org/ @grafana/grafana-backend-group
@@ -156,7 +171,7 @@
/pkg/services/preference/ @grafana/grafana-backend-group
/pkg/services/provisioning/ @grafana/grafana-search-and-storage
/pkg/services/provisioning/alerting/ @grafana/alerting-backend
/pkg/services/query/ @grafana/grafana-app-platform-squad
/pkg/services/query/ @grafana/grafana-datasources-core-services
/pkg/services/queryhistory/ @grafana/observability-traces-and-profiling
/pkg/services/quota/ @grafana/grafana-search-and-storage
/pkg/services/screenshot/ @grafana/grafana-backend-group
@@ -177,8 +192,10 @@
/pkg/setting/ @grafana/grafana-backend-services-squad
/pkg/tests/ @grafana/grafana-backend-services-squad
/pkg/tests/apis/ @grafana/grafana-app-platform-squad
/pkg/tests/apis/query @grafana/grafana-datasources-core-services
/pkg/tests/apis/alerting @grafana/grafana-app-platform-squad @grafana/alerting-backend
/pkg/tests/apis/features @grafana/grafana-backend-services-squad
/pkg/tests/apis/folder @grafana/grafana-search-and-storage
/pkg/tests/apis/iam @grafana/identity-access-team
/pkg/tests/api/correlations/ @grafana/datapro
/pkg/tsdb/grafanads/ @grafana/grafana-backend-group
/pkg/tsdb/opentsdb/ @grafana/partner-datasources
@@ -291,7 +308,7 @@
/devenv/docker/blocks/sensugo/ @grafana/grafana-backend-group
/devenv/docker/blocks/slow_proxy/ @bergquist
/devenv/docker/blocks/smtp/ @bergquist
/devenv/docker/blocks/tempo/ @grafana/observability-traces-and-profiling
/devenv/docker/blocks/tempo/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/devenv/docker/blocks/traefik/ @mckn
/devenv/docker/blocks/zipkin/ @grafana/oss-big-tent
/devenv/docker/blocks/webdav/ @grafana/alerting-backend
@@ -305,6 +322,7 @@
/devenv/jsonnet/ @grafana/dataviz-squad
/devenv/local_cdn/ @grafana/frontend-ops
/devenv/local-npm/ @grafana/frontend-ops
/devenv/frontend-service/ @grafana/grafana-frontend-platform
/devenv/setup.sh @grafana/grafana-backend-services-squad
/devenv/plugins.yaml @grafana/plugins-platform-frontend
@@ -316,9 +334,6 @@
# Continuous Integration
.drone.yml @grafana/grafana-developer-enablement-squad
.drone.star @grafana/grafana-developer-enablement-squad
/scripts/drone/ @grafana/grafana-developer-enablement-squad
/pkg/build/ @grafana/grafana-developer-enablement-squad
/.dockerignore @grafana/grafana-developer-enablement-squad
/Dockerfile @grafana/grafana-developer-enablement-squad
@@ -337,7 +352,7 @@
/pkg/tsdb/prometheus/ @grafana/oss-big-tent
/pkg/tsdb/elasticsearch/ @grafana/partner-datasources
/pkg/tsdb/loki/ @grafana/oss-big-tent
/pkg/tsdb/tempo/ @grafana/observability-traces-and-profiling
/pkg/tsdb/tempo/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/pkg/tsdb/grafana-pyroscope-datasource/ @grafana/observability-traces-and-profiling
/pkg/tsdb/parca/ @grafana/oss-big-tent
@@ -399,34 +414,304 @@
/public/locales/i18next-parser-enterprise.config.cjs @grafana/grafana-frontend-platform
/public/app/core/internationalization/ @grafana/grafana-frontend-platform
/e2e/ @grafana/grafana-frontend-platform
/e2e/cloud-plugins-suite/ @grafana/partner-datasources
/e2e/plugin-e2e/plugin-e2e-api-tests/ @grafana/plugins-platform-frontend
/e2e/test-plugins/grafana-extensionstest-app/ @grafana/plugins-platform-frontend
/e2e-playwright/cloud-plugins-suite/ @grafana/partner-datasources
/e2e-playwright/dashboard-new-layouts/ @grafana/dashboards-squad
/e2e-playwright/dashboard-cujs/ @grafana/dashboards-squad
/e2e-playwright/dashboards-search-suite/ @grafana/dashboards-squad
/e2e-playwright/dashboards/cujs/ @grafana/dashboards-squad
/e2e-playwright/dashboards/DashboardForConditionalRendering.json @grafana/dashboards-squad
/e2e-playwright/dashboards/DashboardWithAllConditionalRendering.json @grafana/dashboards-squad
/e2e-playwright/dashboards/README.md @grafana/dashboards-squad
/e2e-playwright/dashboards/AdHocFilterTest.json @grafana/datapro
/e2e-playwright/dashboards/DashboardLiveTest.json @grafana/dashboards-squad
/e2e-playwright/dashboards/DataLinkWithoutSlugTest.json @grafana/dashboards-squad
/e2e-playwright/dashboards/PanelSandboxDashboard.json @grafana/plugins-platform-frontend
/e2e-playwright/dashboards/TestDashboard.json @grafana/dashboards-squad @grafana/grafana-search-navigate-organise
/e2e-playwright/dashboards/TestV2Dashboard.json @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/adhoc-filter-from-panel.spec.ts @grafana/datapro
/e2e-playwright/dashboards-suite/dashboard-browse-nested.spec.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/dashboards-suite/dashboard-browse.spec.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/dashboards-suite/dashboard-export-image.spec.ts @grafana/sharing-squad
/e2e-playwright/dashboards-suite/dashboard-export-json.spec.ts @grafana/sharing-squad
/e2e-playwright/dashboards-suite/dashboard-keybindings.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/dashboard-links-without-slug.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/dashboard-live-streaming.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/dashboard-public-create.spec.ts @grafana/grafana-operator-experience-squad
/e2e-playwright/dashboards-suite/dashboard-public-templating.spec.ts @grafana/grafana-operator-experience-squad
/e2e-playwright/dashboards-suite/dashboard-share-externally-create.spec.ts @grafana/sharing-squad
/e2e-playwright/dashboards-suite/dashboard-share-internally.spec.ts @grafana/sharing-squad
/e2e-playwright/dashboards-suite/dashboard-share-snapshot-create.spec.ts @grafana/sharing-squad
/e2e-playwright/dashboards-suite/dashboard-templating.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/dashboard-time-zone.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/dashboard-timepicker.spec.ts @grafana/grafana-frontend-platform
/e2e-playwright/dashboards-suite/embedded-dashboard.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/general-dashboards.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/import-dashboard.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/load-options-from-url.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/new-constant-variable.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/new-custom-variable.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/new-datasource-variable.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/new-interval-variable.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/new-query-variable.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/new-text-box-variable.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/repeating-a-panel-horizontally.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/repeating-a-panel-vertically.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/repeating-an-empty-row.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/set-options-from-ui.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/snapshot-create.spec.ts @grafana/sharing-squad
/e2e-playwright/dashboards-suite/templating-dashboard-links-and-variables.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/textbox-variables.spec.ts @grafana/dashboards-squad
/e2e-playwright/dashboards-suite/utils/makeDashboard.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/fixtures/exemplars-query-response.json @grafana/observability-traces-and-profiling
/e2e-playwright/fixtures/long-trace-response.json @grafana/observability-traces-and-profiling
/e2e-playwright/fixtures/tempo-response.json @grafana/oss-big-tent
/e2e-playwright/fixtures/prometheus-response.json @grafana/datapro
/e2e-playwright/panels-suite/canvas-scene.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/dashlist.spec.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/panels-suite/datagrid-data-change.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/datagrid-editing-features.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/frontend-sandbox-panel.spec.ts @grafana/plugins-platform-frontend
/e2e-playwright/panels-suite/geomap-layer-types.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/geomap-map-controls.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/geomap-spatial-operations-transform.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/panelEdit_base.spec.ts @grafana/dashboards-squad
/e2e-playwright/panels-suite/panelEdit_queries.spec.ts @grafana/dashboards-squad
/e2e-playwright/panels-suite/panelEdit_transforms.spec.ts @grafana/datapro
/e2e-playwright/panels-suite/table-footer.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/table-kitchenSink.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/table-markdown.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/table-sparkline.spec.ts @grafana/dataviz-squad
/e2e-playwright/panels-suite/table-utils.ts @grafana/dataviz-squad
/e2e-playwright/plugin-e2e/ @grafana/oss-big-tent @grafana/partner-datasources
/e2e-playwright/plugin-e2e/plugin-e2e-api-tests/ @grafana/plugins-platform-frontend
/e2e-playwright/smoke-tests-suite/ @grafana/grafana-frontend-platform
/e2e-playwright/start-server @grafana/grafana-frontend-platform
/e2e-playwright/storybook/ @grafana/grafana-frontend-platform
/e2e-playwright/test-plugins/ @grafana/plugins-platform-frontend
/e2e-playwright/unauthenticated/login.spec.ts @grafana/grafana-frontend-platform
/e2e-playwright/utils/ @grafana/grafana-frontend-platform
/e2e-playwright/various-suite/bar-gauge.spec.ts @grafana/dataviz-squad
/e2e-playwright/various-suite/bookmarks.spec.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/various-suite/exemplars.spec.ts @grafana/observability-traces-and-profiling
/e2e-playwright/various-suite/explore.spec.ts @grafana/observability-traces-and-profiling
/e2e-playwright/various-suite/filter-annotations.spec.ts @grafana/dashboards-squad
/e2e-playwright/various-suite/frontend-sandbox-app.spec.ts @grafana/plugins-platform-frontend
/e2e-playwright/various-suite/frontend-sandbox-datasource.spec.ts @grafana/plugins-platform-frontend
/e2e-playwright/various-suite/gauge.spec.ts @grafana/dataviz-squad
/e2e-playwright/various-suite/graph-auto-migrate.spec.ts @grafana/dataviz-squad
/e2e-playwright/various-suite/inspect-drawer.spec.ts @grafana/dashboards-squad
/e2e-playwright/various-suite/keybinds.spec.ts @grafana/grafana-frontend-platform
/e2e-playwright/various-suite/loki-query-builder.spec.ts @grafana/oss-big-tent
/e2e-playwright/various-suite/loki-table-explore-to-dash.spec.ts @grafana/oss-big-tent
/e2e-playwright/various-suite/migrate-to-cloud.spec.ts @grafana/grafana-operator-experience-squad
/e2e-playwright/various-suite/navigation.spec.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/various-suite/pie-chart.spec.ts @grafana/dataviz-squad
/e2e-playwright/various-suite/prometheus-annotations.spec.ts @grafana/oss-big-tent
/e2e-playwright/various-suite/prometheus-config.spec.ts @grafana/oss-big-tent
/e2e-playwright/various-suite/prometheus-editor.spec.ts @grafana/oss-big-tent
/e2e-playwright/various-suite/prometheus-variable-editor.spec.ts @grafana/oss-big-tent
/e2e-playwright/various-suite/query-editor.spec.ts @grafana/observability-traces-and-profiling
/e2e-playwright/various-suite/return-to-previous.spec.ts @grafana/grafana-search-navigate-organise
/e2e-playwright/various-suite/solo-route.spec.ts @grafana/dashboards-squad
/e2e-playwright/various-suite/trace-view-scrolling.spec.ts @grafana/observability-traces-and-profiling
/e2e-playwright/various-suite/verify-i18n.spec.ts @grafana/grafana-frontend-platform
/e2e-playwright/various-suite/visualization-suggestions.spec.ts @grafana/dashboards-squad
/e2e-playwright/various-suite/perf-test.spec.ts @grafana/grafana-frontend-platform
# Packages
/packages/ @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/README.md @grafana/grafana-frontend-platform
/packages/rollup.config.parts.ts @grafana/frontend-ops
# @grafana/alerting
/packages/grafana-alerting/ @grafana/alerting-frontend
# @grafana/data
/packages/grafana-data/CHANGELOG.md @grafana/grafana-frontend-platform
/packages/grafana-data/LICENSE_APACHE2 @grafana/grafana-frontend-platform
/packages/grafana-data/README.md @grafana/grafana-frontend-platform
/packages/grafana-data/package.json @grafana/grafana-frontend-platform
/packages/grafana-data/project.json @grafana/grafana-frontend-platform
/packages/grafana-data/rollup.config.ts @grafana/grafana-frontend-platform
/packages/grafana-data/src/index.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-data/src/internal/index.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-data/src/unstable.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-data/tsconfig.build.json @grafana/grafana-frontend-platform
/packages/grafana-data/tsconfig.json @grafana/grafana-frontend-platform
/packages/grafana-data/test/ @grafana/grafana-frontend-platform
/packages/grafana-data/typings/ @grafana/grafana-frontend-platform
/packages/grafana-data/src/**/*logs* @grafana/observability-logs
/packages/grafana-data/src/context/plugins/ @grafana/plugins-platform-frontend
/packages/grafana-data/src/dataframe/ @grafana/dataviz-squad
/packages/grafana-data/src/datetime/ @grafana/grafana-frontend-platform
/packages/grafana-data/src/events/ @grafana/grafana-frontend-platform
/packages/grafana-data/src/field/ @grafana/dashboards-squad
/packages/grafana-data/src/geo/ @grafana/dataviz-squad
/packages/grafana-data/src/monaco/ @grafana/partner-datasources
/packages/grafana-data/src/panel/ @grafana/dashboards-squad
/packages/grafana-data/src/query/ @grafana/grafana-datasources-core-services
/packages/grafana-data/src/rbac/ @grafana/access-squad
/packages/grafana-data/src/table/ @grafana/dataviz-squad
/packages/grafana-data/src/text/ @grafana/dataviz-squad
/packages/grafana-data/src/themes/ @grafana/grafana-frontend-platform
/packages/grafana-data/src/transformations/ @grafana/datapro
/packages/grafana-data/src/types/ @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/__snapshots__/ @grafanabot
/packages/grafana-data/src/utils/anyToNumber.ts @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/arrayUtils* @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/binaryOperators.ts @grafana/datapro
/packages/grafana-data/src/utils/csv* @grafana/dataviz-squad
/packages/grafana-data/src/utils/dataLinks* @grafana/dashboards-squad
/packages/grafana-data/src/utils/datasource* @grafana/grafana-datasources-core-services
/packages/grafana-data/src/utils/docs.ts @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/deprecationWarning* @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/featureToggles.ts @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/fieldParser.ts @grafana/dataviz-squad
/packages/grafana-data/src/utils/flotPairs* @grafana/dataviz-squad
/packages/grafana-data/src/utils/fuzzySearch* @grafana/grafana-search-navigate-organise
/packages/grafana-data/src/utils/labels* @grafana/observability-logs
/packages/grafana-data/src/utils/legend* @grafana/oss-big-tent
/packages/grafana-data/src/utils/location* @grafana/grafana-search-navigate-organise
/packages/grafana-data/src/utils/LocalStorageValueProvider.tsx @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/makeClassES5Compatible.ts @grafana/plugins-platform-frontend
/packages/grafana-data/src/utils/matchPluginId* @grafana/plugins-platform-frontend
/packages/grafana-data/src/utils/namedColorsPalette* @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/nodeGraph.ts @grafana/observability-traces-and-profiling
/packages/grafana-data/src/utils/numbers.ts @grafana/dataviz-squad
/packages/grafana-data/src/utils/object.ts @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/OptionsUIBuilders.ts @grafana/dashboards-squad
/packages/grafana-data/src/utils/Registry* @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/selectUtils.ts @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/series* @grafana/dataviz-squad
/packages/grafana-data/src/utils/store* @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/testdata/ @grafana/dataviz-squad
/packages/grafana-data/src/utils/tests/ @grafana/grafana-frontend-platform
/packages/grafana-data/src/utils/throwIfAngular* @grafana/plugins-platform-frontend
/packages/grafana-data/src/utils/unaryOperators.ts @grafana/datapro
/packages/grafana-data/src/utils/url* @grafana/grafana-search-navigate-organise
/packages/grafana-data/src/utils/valueMappings* @grafana/dashboards-squad
/packages/grafana-data/src/utils/variables.ts @grafana/plugins-platform-frontend
/packages/grafana-data/src/utils/withLoadingIndicator.ts @grafana/access-squad @grafana/alerting-frontend
/packages/grafana-data/src/valueFormats/ @grafana/dashboards-squad
/packages/grafana-data/src/vector/ @grafana/dataviz-squad
# @grafana/e2e-selectors
/packages/grafana-e2e-selectors/ @grafana/grafana-frontend-platform
# @grafana/eslint-plugin
/packages/grafana-eslint-rules/ @grafana/grafana-frontend-platform
# @grafana/flamegraph
/packages/grafana-flamegraph/ @grafana/observability-traces-and-profiling
# @grafana/o11y-ds-frontend
/packages/grafana-o11y-ds-frontend/ @grafana/observability-logs
/packages/grafana-o11y-ds-frontend/src/IntervalInput/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/NodeGraph/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/pyroscope/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/SpanBar/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToLogs/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToMetrics/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToProfiles/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/SpanBar/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToLogs/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToMetrics/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToProfiles/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
# @grafana/plugin-configs
/packages/grafana-plugin-configs/ @grafana/plugins-platform-frontend
# @grafana/prometheus
/packages/grafana-prometheus/ @grafana/oss-big-tent
/packages/grafana-schema/src/**/*canvas* @grafana/dataviz-squad
/packages/grafana-schema/src/**/*tempo* @grafana/observability-traces-and-profiling
# @grafana/runtime
/packages/grafana-runtime/CHANGELOG.md @grafana/grafana-frontend-platform
/packages/grafana-runtime/LICENSE_APACHE2 @grafana/grafana-frontend-platform
/packages/grafana-runtime/README.md @grafana/grafana-frontend-platform
/packages/grafana-runtime/package.json @grafana/grafana-frontend-platform
/packages/grafana-runtime/project.json @grafana/grafana-frontend-platform
/packages/grafana-runtime/rollup.config.ts @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/index.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-runtime/src/internal/index.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-runtime/src/unstable.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/packages/grafana-runtime/tsconfig.build.json @grafana/grafana-frontend-platform
/packages/grafana-runtime/tsconfig.json @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/analytics @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/analytics/plugins @grafana/plugins-platform-frontend
/packages/grafana-runtime/src/components/DataSourcePicker* @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/components/EmbeddedDashboard.tsx @grafana/dashboards-squad
/packages/grafana-runtime/src/components/FolderPicker.tsx @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/components/PanelRenderer.tsx @grafana/dashboards-squad
/packages/grafana-runtime/src/components/PanelDataErrorView.tsx @grafana/dashboards-squad
/packages/grafana-runtime/src/components/PluginPage.tsx @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/components/QueryEditorWithMigration* @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/packages/grafana-runtime/src/config.ts @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/services/ @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/services/pluginExtensions @grafana/plugins-platform-frontend
/packages/grafana-runtime/src/services/CorrelationsService.ts @grafana/datapro
/packages/grafana-runtime/src/services/LocationService.test.tsx @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/services/LocationService.tsx @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/services/LocationSrv.ts @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/services/live.ts @grafana/dashboards-squad
/packages/grafana-runtime/src/utils/chromeHeaderHeight.ts @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/utils/DataSourceWithBackend* @grafana/grafana-datasources-core-services
/packages/grafana-runtime/src/utils/licensing.ts @grafana/grafana-operator-experience-squad
/packages/grafana-runtime/src/utils/logging.ts @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/utils/megaMenuOpen.ts @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/utils/migrationHandler* @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/packages/grafana-runtime/src/utils/plugin.ts @grafana/plugins-platform-frontend
/packages/grafana-runtime/src/utils/publicDashboardQueryHandler.ts @grafana/grafana-operator-experience-squad
/packages/grafana-runtime/src/utils/queryResponse* @grafana/grafana-datasources-core-services
/packages/grafana-runtime/src/utils/rbac.ts @grafana/identity-access-team
/packages/grafana-runtime/src/utils/returnToPrevious.ts @grafana/grafana-search-navigate-organise
/packages/grafana-runtime/src/utils/toDataQueryError.ts @grafana/grafana-datasources-core-services
/packages/grafana-runtime/src/utils/userStorage* @grafana/plugins-platform-frontend @grafana/grafana-frontend-platform
/packages/grafana-runtime/src/utils/useFavoriteDatasources* @grafana/plugins-platform-frontend
# @grafana/schema
/packages/grafana-schema/ @grafana/grafana-app-platform-squad
/packages/grafana-schema/src/**/annotationslist @grafana/dashboards-squad
/packages/grafana-schema/src/**/azuremonitor @grafana/partner-datasources
/packages/grafana-schema/src/**/barchart @grafana/dataviz-squad
/packages/grafana-schema/src/**/bargauge @grafana/dataviz-squad
/packages/grafana-schema/src/**/candlestick @grafana/dataviz-squad
/packages/grafana-schema/src/**/canvas @grafana/dataviz-squad
/packages/grafana-schema/src/**/cloudwatch @grafana/aws-datasources
/packages/grafana-schema/src/**/dashboard @grafana/dashboards-squad
/packages/grafana-schema/src/**/dashboardlist @grafana/grafana-search-navigate-organise
/packages/grafana-schema/src/**/datagrid @grafana/dataviz-squad
/packages/grafana-schema/src/**/debug @ryantxu
/packages/grafana-schema/src/**/elasticsearch @grafana/partner-datasources
/packages/grafana-schema/src/**/gauge @grafana/dataviz-squad
/packages/grafana-schema/src/**/geomap @grafana/dataviz-squad
/packages/grafana-schema/src/**/googlecloudmonitoring @grafana/partner-datasources
/packages/grafana-schema/src/**/grafanapyroscope @grafana/observability-traces-and-profiling
/packages/grafana-schema/src/**/heatmap @grafana/dataviz-squad
/packages/grafana-schema/src/**/histogram @grafana/dataviz-squad
/packages/grafana-schema/src/**/librarypanel @grafana/sharing-squad
/packages/grafana-schema/src/**/logs @grafana/observability-logs
/packages/grafana-schema/src/**/logsnew @grafana/observability-logs
/packages/grafana-schema/src/**/loki @grafana/oss-big-tent @grafana/observability-logs
/packages/grafana-schema/src/**/news @grafana/dataviz-squad
/packages/grafana-schema/src/**/nodegraph @grafana/observability-traces-and-profiling @grafana/app-o11y-visualizations
/packages/grafana-schema/src/**/parca @grafana/oss-big-tent
/packages/grafana-schema/src/**/piechart @grafana/dataviz-squad
/packages/grafana-schema/src/**/stat @grafana/dataviz-squad
/packages/grafana-schema/src/**/statetimeline @grafana/dataviz-squad
/packages/grafana-schema/src/**/statushistory @grafana/dataviz-squad
/packages/grafana-schema/src/**/table @grafana/dataviz-squad
/packages/grafana-schema/src/**/tempo @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/packages/grafana-schema/src/**/text @grafana/dataviz-squad
/packages/grafana-schema/src/**/timeseries @grafana/dataviz-squad
/packages/grafana-schema/src/**/trend @grafana/dataviz-squad
/packages/grafana-schema/src/**/xychart @grafana/dataviz-squad
/packages/grafana-schema/src/**/xychart2 @grafana/dataviz-squad
# @grafana/sql
/packages/grafana-sql/ @grafana/partner-datasources @grafana/oss-big-tent
/packages/grafana-ui/.storybook/ @grafana/grafana-frontend-platform
/packages/grafana-ui/src/components/ @grafana/grafana-frontend-platform
# @grafana/ui
/packages/grafana-ui/ @grafana/grafana-frontend-platform
/packages/grafana-ui/src/components/BarGauge/ @grafana/dataviz-squad
/packages/grafana-ui/src/components/DataLinks/ @grafana/dataviz-squad
/packages/grafana-ui/src/components/DateTimePickers/ @grafana/grafana-frontend-platform
/packages/grafana-ui/src/components/Gauge/ @grafana/dataviz-squad
/packages/grafana-ui/src/components/PluginSignatureBadge/ @grafana/plugins-platform-frontend
/packages/grafana-ui/src/components/Sparkline/ @grafana/grafana-frontend-platform @grafana/app-o11y-visualizations
@@ -441,9 +726,13 @@
/packages/grafana-ui/src/graveyard/Graph/ @grafana/dataviz-squad
/packages/grafana-ui/src/graveyard/GraphNG/ @grafana/dataviz-squad
/packages/grafana-ui/src/graveyard/TimeSeries/ @grafana/dataviz-squad
/packages/grafana-ui/src/utils/storybook/ @grafana/grafana-frontend-platform
/packages/grafana-alerting/ @grafana/alerting-frontend
/packages/grafana-ui/tsconfig.build.json @grafana/frontend-ops
/packages/grafana-ui/tsconfig.json @grafana/frontend-ops
# @grafana/i18n
/packages/grafana-i18n/ @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
# @grafana/test-utils
/packages/grafana-test-utils @grafana/grafana-frontend-platform
# root files, mostly frontend
@@ -453,9 +742,9 @@
/project.json @grafana/frontend-ops
/.nxignore @grafana/frontend-ops
/tsconfig.json @grafana/frontend-ops
/scripts/tsconfig.base.json @grafana/frontend-ops
/.editorconfig @grafana/frontend-ops
/eslint.config.js @grafana/frontend-ops
/.betterer.eslint.config.js @grafana/frontend-ops
/.gitattributes @grafana/frontend-ops
/.gitignore @grafana/frontend-ops
/.ignore @grafana/frontend-ops
@@ -477,26 +766,147 @@
/cypress.config.js @grafana/grafana-frontend-platform
/.levignore.js @grafana/plugins-platform-frontend
playwright.config.ts @grafana/plugins-platform-frontend
playwright.storybook.config.ts @grafana/grafana-frontend-platform
# public folder
/public/app/api/ @grafana/grafana-frontend-platform
/public/app/core/ @grafana/grafana-frontend-platform
/public/app/core/components/TimePicker/ @grafana/grafana-frontend-platform
/public/app/core/components/Layers/ @grafana/dataviz-squad
/public/app/core/components/GraphNG/ @grafana/dataviz-squad
/public/app/core/components/TimeSeries/ @grafana/dataviz-squad
/public/app/core/components/TimelineChart/ @grafana/dataviz-squad
/public/app/api/clients/folder/ @grafana/grafana-search-navigate-organise
/public/app/core/actions/ @grafana/grafana-frontend-platform
/public/app/core/app_events.ts @grafana/grafana-frontend-platform
/public/app/core/components/AccessControl/ @grafana/identity-access-team
/public/app/core/components/Animations/ @grafana/grafana-frontend-platform
/public/app/core/components/AppNotifications/ @grafana/grafana-search-navigate-organise
/public/app/core/components/AppChrome/ @grafana/grafana-search-navigate-organise
/public/app/core/components/Branding/ @grafana/grafana-frontend-platform
/public/app/core/components/Breadcrumbs/ @grafana/grafana-search-navigate-organise
/public/app/core/components/BouncingLoader/ @grafana/grafana-frontend-platform
/public/app/core/components/CardButton.tsx @grafana/dashboards-squad
/public/app/core/components/CloseButton/ @grafana/grafana-frontend-platform
/public/app/core/components/ColorScale/ @grafana/dataviz-squad
/public/app/core/components/DynamicImports/ @grafana/grafana-search-navigate-organise
/public/app/core/components/EmptyListCTA/ @grafana/grafana-frontend-platform
/public/app/core/components/FolderFilter/ @grafana/sharing-squad
/public/app/core/components/Footer/ @grafana/grafana-search-navigate-organise
/public/app/core/components/ForgottenPassword/ @grafana/grafana-search-navigate-organise
/public/app/core/components/Form/ @grafana/grafana-frontend-platform
/public/app/core/components/FormPrompt/ @grafana/grafana-frontend-platform
/public/app/core/components/GraphNG/ @grafana/dataviz-squad
/public/app/core/components/help/ @grafana/grafana-search-navigate-organise
/public/app/core/components/Indent/ @grafana/grafana-search-navigate-organise
/public/app/core/components/Layers/ @grafana/dataviz-squad
/public/app/core/components/Login/ @grafana/grafana-search-navigate-organise
/public/app/core/components/NativeScrollbar.tsx @grafana/grafana-search-navigate-organise
/public/app/core/components/NavLandingPage/ @grafana/grafana-search-navigate-organise
/public/app/core/components/NestedFolderPicker/ @grafana/grafana-search-navigate-organise
/public/app/core/components/OptionsUI/ @grafana/dashboards-squad @grafana/dataviz-squad
/public/app/core/components/Page/ @grafana/grafana-search-navigate-organise
/public/app/core/components/PageActionBar/ @grafana/grafana-search-navigate-organise
/public/app/core/components/PageInfo/ @grafana/grafana-search-navigate-organise
/public/app/core/components/PageLoader/ @grafana/grafana-search-navigate-organise
/public/app/core/components/PageNotFound/ @grafana/grafana-search-navigate-organise
/public/app/core/components/PanelTypeFilter/ @grafana/sharing-squad
/public/app/core/components/PasswordField/ @grafana/grafana-frontend-platform
/public/app/core/components/PluginHelp/ @grafana/plugins-platform-frontend
/public/app/core/components/QueryOperationRow/ @grafana/dashboards-squad
/public/app/core/components/RolePickerDrawer/ @grafana/identity-access-team
/public/app/core/components/Select/ @grafana/grafana-frontend-platform
/public/app/core/components/SharedPreferences/ @grafana/grafana-frontend-platform
/public/app/core/components/Signup/ @grafana/grafana-search-navigate-organise
/public/app/core/components/SplitPaneWrapper/ @grafana/observability-traces-and-profiling
/public/app/core/components/SVG/ @grafana/dataviz-squad
/public/app/core/components/TagFilter/ @grafana/grafana-frontend-platform
/public/app/core/components/Theme/ @grafana/grafana-frontend-platform
/public/app/core/components/ThemeSelector/ @grafana/grafana-frontend-platform
/public/app/core/components/TimelineChart/ @grafana/dataviz-squad
/public/app/core/components/TimePicker/ @grafana/grafana-frontend-platform
/public/app/core/components/TimeSeries/ @grafana/dataviz-squad
/public/app/core/components/Upgrade/ @grafana/grafana-operator-experience-squad
/public/app/core/components/ValidationLabels/ @grafana/grafana-search-navigate-organise
/public/app/core/components/VersionHistory/ @grafana/dashboards-squad
/public/app/core/config.ts @grafana/grafana-frontend-platform
/public/app/core/constants.ts @grafana/grafana-frontend-platform
/public/app/core/context/ @grafana/grafana-frontend-platform
/public/app/core/copy/appNotification.ts @grafana/grafana-search-navigate-organise
/public/app/core/core.ts @grafana/grafana-frontend-platform
/public/app/core/crash/ @grafana/observability-traces-and-profiling
/public/app/core/history/ @grafana/observability-traces-and-profiling
/public/app/core/hooks/useBusEvent.ts @grafana/grafana-frontend-platform
/public/app/core/hooks/useCleanup.ts @grafana/grafana-frontend-platform
/public/app/core/hooks/useMediaQueryMinWidth.ts @grafana/grafana-frontend-platform
/public/app/core/hooks/useNavModel.ts @grafana/grafana-search-navigate-organise
/public/app/core/hooks/useQueryParams.ts @grafana/grafana-frontend-platform
/public/app/core/icons/ @grafana/grafana-frontend-platform
/public/app/core/lifecycle-hooks.ts @grafana/grafana-frontend-platform
/public/app/core/log_events.ts @grafana/dashboards-squad
/public/app/core/monacoEnv.ts @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend
/public/app/core/navigation/ @grafana/grafana-search-navigate-organise
/public/app/core/profiler.ts @grafana/dashboards-squad
/public/app/core/reducers/ @grafana/grafana-frontend-platform
/public/app/core/selectors/ @grafana/grafana-frontend-platform
/public/app/core/services/__mocks__/backend_srv.ts @grafana/grafana-frontend-platform
/public/app/core/services/backend_srv.ts @grafana/grafana-frontend-platform
/public/app/core/services/context_srv.ts @grafana/grafana-frontend-platform
/public/app/core/services/CorrelationsService.ts @grafana/datapro
/public/app/core/services/echo/ @grafana/grafana-frontend-platform
/public/app/core/services/FetchQueue* @grafana/grafana-frontend-platform
/public/app/core/services/impression_srv.ts @grafana/grafana-frontend-platform
/public/app/core/services/KeybindingSet* @grafana/grafana-frontend-platform
/public/app/core/services/keybindingSrv.ts @grafana/grafana-frontend-platform
/public/app/core/services/mocks/subscribeTester.ts @grafana/grafana-frontend-platform
/public/app/core/services/mousetrap/ @grafana/grafana-frontend-platform
/public/app/core/services/NewFrontendAssetsChecker* @grafana/grafana-frontend-platform
/public/app/core/services/PreferencesService.ts @grafana/grafana-frontend-platform
/public/app/core/services/ResponseQueue* @grafana/grafana-frontend-platform
/public/app/core/services/StateManagerBase.ts @grafana/grafana-frontend-platform
/public/app/core/services/theme.ts @grafana/grafana-frontend-platform
/public/app/core/specs/backend_srv.test.ts @grafana/grafana-frontend-platform
/public/app/core/specs/factors.test.ts @grafana/dashboards-squad
/public/app/core/specs/flatten.test.ts @grafana/grafana-frontend-platform
/public/app/core/specs/impression_srv.test.ts @grafana/grafana-frontend-platform
/public/app/core/specs/rangeutil.test.ts @grafana/grafana-frontend-platform
/public/app/core/specs/store.test.ts @grafana/grafana-frontend-platform
/public/app/core/specs/TableModel.test.ts @grafana/partner-datasources
/public/app/core/specs/ticks.test.ts @grafana/plugins-platform-frontend
/public/app/core/specs/time_series.test.ts @grafana/dataviz-squad
/public/app/core/store.ts @grafana/grafana-frontend-platform
/public/app/core/TableModel.ts @grafana/partner-datasources
/public/app/core/time_series2.ts @grafana/dataviz-squad
/public/app/core/trustedTypePolicies.ts @grafana/grafana-frontend-platform
/public/app/core/utils/accessControl.ts @grafana/identity-access-team
/public/app/core/utils/applyStateChanges.ts @grafana/dashboards-squad
/public/app/core/utils/arrayMove.ts @grafana/grafana-frontend-platform
/public/app/core/utils/auth.ts @grafana/identity-access-team
/public/app/core/utils/browser* @grafana/grafana-frontend-platform
/public/app/core/utils/colors.ts @grafana/grafana-frontend-platform
/public/app/core/utils/ConfigProvider.tsx @grafana/grafana-frontend-platform
/public/app/core/utils/CorsSharedWorker.ts @grafana/grafana-frontend-platform
/public/app/core/utils/CorsWorker.ts @grafana/grafana-frontend-platform
/public/app/core/utils/connectWithReduxStore.tsx @grafana/grafana-frontend-platform
/public/app/core/utils/dag* @grafana/grafana-frontend-platform
/public/app/core/utils/deferred.ts @grafana/grafana-frontend-platform
/public/app/core/utils/docsLinks.ts @grafana/grafana-frontend-platform
/public/app/core/utils/errors* @grafana/grafana-frontend-platform
/public/app/core/utils/explore* @grafana/observability-traces-and-profiling
/public/app/core/utils/factors.ts @grafana/dashboards-squad
/public/app/core/utils/fetch* @grafana/grafana-frontend-platform
/public/app/core/utils/flatten.ts @grafana/grafana-frontend-platform
/public/app/core/utils/isShallowEqual.ts @grafana/grafana-frontend-platform
/public/app/core/utils/kbn* @grafana/grafana-frontend-platform
/public/app/core/utils/navBarItem-translations.ts @grafana/grafana-search-navigate-organise
/public/app/core/utils/object* @grafana/grafana-frontend-platform
/public/app/core/utils/query* @grafana/grafana-datasources-core-services
/public/app/core/utils/richHistory* @grafana/observability-traces-and-profiling
/public/app/core/utils/set.ts @grafana/grafana-frontend-platform
/public/app/core/utils/shortLinks* @grafana/sharing-squad
/public/app/core/utils/ticks.ts @grafana/plugins-platform-frontend
/public/app/core/utils/timePicker* @grafana/grafana-frontend-platform
/public/app/core/utils/timeRegions* @grafana/dataviz-squad
/public/app/core/utils/urlToken.ts @grafana/identity-access-team
/public/app/core/utils/version.ts @grafana/partner-datasources
/public/app/dev-utils.ts @grafana/grafana-frontend-platform
/public/app/core/history/ @grafana/observability-traces-and-profiling
/public/app/features/admin/ @grafana/identity-access-team
# Temp owners until Enterprise team takes over
/public/app/features/migrate-to-cloud @grafana/grafana-frontend-platform
/public/app/features/actions/ @grafana/dataviz-squad
/public/app/features/admin/ @grafana/identity-access-team
/public/app/features/auth-config/ @grafana/identity-squad
/public/app/features/annotations/ @grafana/dashboards-squad
/public/app/features/canvas/ @grafana/dataviz-squad
@@ -520,6 +930,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/live/ @grafana/dashboards-squad
/public/app/features/apiserver/ @grafana/grafana-app-platform-squad
/public/app/features/manage-dashboards/ @grafana/dashboards-squad
/public/app/features/migrate-to-cloud @grafana/grafana-operator-experience-squad
/public/app/features/notifications/ @grafana/grafana-search-navigate-organise
/public/app/features/org/ @grafana/grafana-search-navigate-organise
/public/app/features/panel/ @grafana/dashboards-squad
@@ -553,7 +964,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/plugins/panel/heatmap/ @grafana/dataviz-squad
/public/app/plugins/panel/histogram/ @grafana/dataviz-squad
/public/app/plugins/panel/logs/ @grafana/observability-logs
/public/app/plugins/panel/logs-new/ @grafana/observability-logs
/public/app/plugins/panel/nodeGraph/ @grafana/observability-traces-and-profiling @grafana/app-o11y-visualizations
/public/app/plugins/panel/traces/ @grafana/observability-traces-and-profiling
/public/app/plugins/panel/flamegraph/ @grafana/observability-traces-and-profiling
@@ -576,7 +986,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/routes/ @grafana/grafana-search-navigate-organise
/public/app/store/ @grafana/grafana-frontend-platform
/public/app/types/ @grafana/grafana-frontend-platform
/public/app/types/alerting.ts @grafana/alerting-frontend
/public/app/types/unified-alerting-dto.ts @grafana/alerting-frontend
/public/app/types/unified-alerting.ts @grafana/alerting-frontend
/public/dashboards/ @grafana/dashboards-squad
@@ -611,7 +1020,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/index.ts @grafana/frontend-ops
/public/app/initApp.ts @grafana/frontend-ops
/public/app/AppWrapper.tsx @grafana/frontend-ops
/public/app/partials/ @grafana/grafana-frontend-platform
/scripts/benchmark-access-control.sh @grafana/access-squad
/scripts/check-breaking-changes.sh @grafana/plugins-platform-frontend
@@ -619,10 +1027,11 @@ playwright.config.ts @grafana/plugins-platform-frontend
/scripts/circle-* @grafana/grafana-developer-enablement-squad
/scripts/publish-npm-packages.sh @grafana/grafana-developer-enablement-squad @grafana/plugins-platform-frontend
/scripts/validate-npm-packages.sh @grafana/grafana-developer-enablement-squad @grafana/plugins-platform-frontend
/scripts/ci-frontend-metrics.sh @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend @grafana/dataviz-squad @grafana/datapro
/scripts/ci-frontend-metrics.sh @grafana/grafana-frontend-platform @grafana/frontend-ops
/scripts/cli/ @grafana/grafana-frontend-platform
/scripts/clean-git-or-error.sh @grafana/grafana-as-code
/scripts/grafana-server/ @grafana/grafana-frontend-platform
/scripts/check-frontend-dev.sh @grafana/grafana-frontend-platform
/scripts/helpers/ @grafana/grafana-developer-enablement-squad
/scripts/import_many_dashboards.sh @torkelo
/scripts/mixin-check.sh @bergquist
@@ -647,8 +1056,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/scripts/**/generate-transformations* @grafana/datapro
/scripts/webpack/ @grafana/frontend-ops
/scripts/generate-a11y-report.sh @grafana/grafana-frontend-platform
.betterer.results @grafanabot
.betterer.ts @grafana/grafana-frontend-platform
eslint-suppressions.json @grafanabot
# Design system
/public/img/icons/unicons/ @grafana/design-system
@@ -672,7 +1080,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/plugins/datasource/prometheus/ @grafana/oss-big-tent
/public/app/plugins/datasource/cloud-monitoring/ @grafana/partner-datasources
/public/app/plugins/datasource/zipkin/ @grafana/oss-big-tent
/public/app/plugins/datasource/tempo/ @grafana/observability-traces-and-profiling
/public/app/plugins/datasource/tempo/ @grafana/oss-big-tent @grafana/observability-traces-and-profiling
/public/app/plugins/datasource/grafana-pyroscope-datasource/ @grafana/observability-traces-and-profiling
/public/app/plugins/datasource/parca/ @grafana/oss-big-tent
/public/app/plugins/datasource/alertmanager/ @grafana/alerting-squad
@@ -736,6 +1144,8 @@ playwright.config.ts @grafana/plugins-platform-frontend
# Feature toggles
/pkg/services/featuremgmt/ @grafana/grafana-backend-services-squad
# Data source migrations
/pkg/services/promtypemigration/ @grafana/partner-datasources @grafana/aws-datasources
# Kind definitions
/kinds/dashboard @grafana/dashboards-squad
@@ -747,11 +1157,13 @@ embed.go @grafana/grafana-as-code
/pkg/kinds/ @grafana/grafana-as-code
/pkg/registry/ @grafana/grafana-as-code
/pkg/registry/apis/ @grafana/grafana-app-platform-squad
/pkg/registry/apis/folders @grafana/grafana-search-and-storage
/pkg/registry/apis/query @grafana/grafana-datasources-core-services
/pkg/registry/apis/secret @grafana/grafana-operator-experience-squad
/pkg/registry/apis/userstorage @grafana/grafana-app-platform-squad @grafana/plugins-platform-backend
/pkg/registry/apps/advisor @grafana/plugins-platform-backend
/pkg/registry/apps/alerting @grafana/alerting-backend
/pkg/registry/apps/plugins @grafana/plugins-platform-backend
/pkg/codegen/ @grafana/grafana-as-code
/pkg/codegen/generators @grafana/grafana-as-code
/pkg/kinds/*/*_gen.go @grafana/grafana-as-code
@@ -770,10 +1182,12 @@ embed.go @grafana/grafana-as-code
/.github/pr-checks.json @tolzhabayev
/.github/pr-commands.json @tolzhabayev
/.github/renovate.json5 @grafana/frontend-ops
/.github/actions/check-jobs/action.yml @grafana/grafana-frontend-platform
/.github/actions/setup-enterprise/action.yml @grafana/grafana-backend-group
/.github/actions/setup-grafana-bench/ @Proximyst
/.github/actions/build-package @grafana/grafana-developer-enablement-squad
/.github/actions/change-detection @grafana/grafana-developer-enablement-squad
/.github/actions/setup-node @grafana/grafana-frontend-platform
/.github/workflows/actionlint-format.txt @grafana/grafana-developer-enablement-squad
/.github/workflows/actionlint.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/add-to-whats-new.yml @grafana/docs-tooling
@@ -796,6 +1210,7 @@ embed.go @grafana/grafana-as-code
/.github/workflows/commands.yml @torkelo
/.github/workflows/community-release.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/detect-breaking-changes-* @grafana/plugins-platform-frontend
/.github/workflows/detect-plugin-extension-changes.yml @grafana/plugins-platform-frontend
/.github/workflows/documentation-ci.yml @grafana/docs-tooling
/.github/workflows/deploy-pr-preview.yml @grafana/docs-tooling
/.github/workflows/feature-toggles-ci.yml @grafana/docs-tooling
@@ -816,7 +1231,7 @@ embed.go @grafana/grafana-as-code
/.github/workflows/publish-technical-documentation-release.yml @grafana/docs-tooling
/.github/workflows/scripts/json-file-to-job-output.js @grafana/plugins-platform-frontend
/.github/workflows/stale.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/storybook-verification.yml @grafana/grafana-frontend-platform
/.github/workflows/storybook-a11y.yml @grafana/grafana-frontend-platform
/.github/workflows/update-make-docs.yml @grafana/docs-tooling
/.github/workflows/scripts/kinds/verify-kinds.go @grafana/platform-monitoring
/.github/workflows/scripts/create-security-branch/create-security-branch.sh @grafana/grafana-developer-enablement-squad
@@ -825,7 +1240,6 @@ embed.go @grafana/grafana-as-code
/.github/workflows/verify-kinds.yml @grafana/platform-monitoring
/.github/workflows/dashboards-issue-add-label.yml @grafana/dashboards-squad
/.github/workflows/run-schema-v2-e2e.yml @grafana/dashboards-squad
/.github/workflows/e2e-dashboard-new-layouts.yml @grafana/dashboards-squad
/.github/workflows/run-dashboard-search-e2e.yml @grafana/grafana-search-and-storage
/.github/workflows/trigger-dashboard-search-e2e.yml @grafana/grafana-search-and-storage
/.github/workflows/ephemeral-instances-pr-comment.yml @grafana/grafana-operator-experience-squad
@@ -837,6 +1251,7 @@ embed.go @grafana/grafana-as-code
/.github/workflows/i18n-verify.yml @grafana/grafana-frontend-platform
/.github/workflows/deploy-storybook-preview.yml @grafana/grafana-frontend-platform
/.github/workflows/scripts/crowdin/create-tasks.ts @grafana/grafana-frontend-platform
/.github/workflows/scripts/publish-frontend-metrics.mts @grafana/grafana-frontend-platform
/.github/workflows/pr-go-workspace-check.yml @grafana/grafana-app-platform-squad
/.github/workflows/pr-dependabot-update-go-workspace.yml @grafana/grafana-app-platform-squad
/.github/workflows/pr-k8s-codegen-check.yml @grafana/grafana-app-platform-squad
@@ -854,9 +1269,11 @@ embed.go @grafana/grafana-as-code
/.github/workflows/analytics-events-report.yml @grafana/grafana-frontend-platform
/.github/workflows/pr-e2e-tests.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/skye-add-to-project.yml @grafana/grafana-frontend-platform
/.github/workflows/frontend-perf-tests.yaml @grafana/grafana-frontend-platform
/.github/zizmor.yml @grafana/grafana-developer-enablement-squad
/.github/license_finder.yaml @bergquist
/.github/actionlint.yaml @grafana/grafana-developer-enablement-squad
/.github/workflows/pr-test-docker.yml @grafana/grafana-developer-enablement-squad
# Generated files not requiring owner approval
/packages/grafana-data/src/types/featureToggles.gen.ts @grafanabot
@@ -876,3 +1293,7 @@ embed.go @grafana/grafana-as-code
/conf/provisioning/datasources/ @grafana/plugins-platform-backend
/conf/provisioning/plugins/ @grafana/plugins-platform-backend
/conf/provisioning/sample/ @grafana/grafana-git-ui-sync-team
# Security
/relyance.yaml @grafana/security-team
/.github/workflows/relyance-scan.yml @grafana/security-team

View File

@@ -6,3 +6,23 @@ self-hosted-runner:
- github-hosted-ubuntu-x64-small
- github-hosted-ubuntu-x64-large
- github-hosted-windows-x64-large
- ubuntu-x64
- ubuntu-x64-io
- ubuntu-x64-small
- ubuntu-x64-small-io
- ubuntu-x64-large
- ubuntu-x64-large-io
- ubuntu-x64-xlarge
- ubuntu-x64-xlarge-io
- ubuntu-x64-2xlarge
- ubuntu-x64-2xlarge-io
- ubuntu-arm64
- ubuntu-arm64-io
- ubuntu-arm64-small
- ubuntu-arm64-small-io
- ubuntu-arm64-large
- ubuntu-arm64-large-io
- ubuntu-arm64-xlarge
- ubuntu-arm64-xlarge-io
- ubuntu-arm64-2xlarge
- ubuntu-arm64-2xlarge-io

View File

@@ -139,6 +139,7 @@ runs:
with:
verb: run
dagger-flags: --verbose=0
version: 0.18.8
args: go run -C ${GRAFANA_PATH} ./pkg/build/cmd artifacts --artifacts ${ARTIFACTS} --grafana-dir=${GRAFANA_PATH} --alpine-base=${ALPINE_BASE} --ubuntu-base=${UBUNTU_BASE} --enterprise-dir=${ENTERPRISE_PATH} --version=${VERSION} --patches-repo=${PATCHES_REPO} --patches-ref=${PATCHES_REF} --patches-path=${PATCHES_PATH} --build-id=${BUILD_ID} --tag-format="${TAG_FORMAT}" --ubuntu-tag-format="${UBUNTU_TAG_FORMAT}" --org=${DOCKER_ORG} --registry=${DOCKER_REGISTRY} --checksum=${CHECKSUM} --verify=${VERIFY} > $OUTFILE
- id: output
shell: bash

View File

@@ -19,12 +19,18 @@ outputs:
value: ${{ steps.changed-files.outputs.e2e_any_changed == 'true' ||
steps.changed-files.outputs.backend_any_changed == 'true' ||
steps.changed-files.outputs.frontend_any_changed == 'true' || 'true' }}
e2e-cloud-plugins:
description: Whether the cloud plugins code or tests have changed in any way
value: ${{ steps.changed-files.outputs.e2e_cloud_plugins_any_changed || 'true' }}
dev-tooling:
description: Whether the dev tooling or self have changed in any way
value: ${{ steps.changed-files.outputs.dev_tooling_any_changed || 'true' }}
docs:
description: Whether the docs or self have changed in any way
value: ${{ steps.changed-files.outputs.docs_any_changed || 'true' }}
dockerfile:
description: Whether the dockerfile or self have changed in any way
value: ${{ steps.changed-files.outputs.dockerfile_any_changed || 'true' }}
runs:
using: composite
steps:
@@ -39,6 +45,8 @@ runs:
self:
- '.github/actions/change-detection/**'
- '${{ inputs.self }}'
dockerfile:
- 'Dockerfile'
backend:
- '!*.md'
- '!docs/**'
@@ -47,6 +55,10 @@ runs:
- '.github/actions/checkout/**'
- '**/go.mod'
- '**/go.sum'
- 'go.mod'
- 'go.sum'
- 'go.work'
- 'go.work.sum'
- '**.go'
- 'pkg/**'
- '!pkg/**.md'
@@ -74,7 +86,6 @@ runs:
- '.github/actions/change-detection/**'
- '**.cue'
- '.prettier*'
- '.betterer*'
- '.yarnrc.yml'
- 'eslint.config.js'
- 'jest.config.js'
@@ -91,13 +102,17 @@ runs:
- 'proto/**'
- '**/Makefile'
- 'scripts/**'
- '!scripts/drone/**'
- '!**.md'
- '.github/actions/change-detection/**'
- '**.cue'
- 'conf/**'
- 'cypress.config.js'
- '${{ inputs.self }}'
e2e_cloud_plugins:
- 'pkg/tsdb/azuremonitor/**'
- 'public/app/plugins/datasource/azuremonitor/**'
- 'e2e-playwright/cloud-plugins-suite/azure-monitor.spec.ts'
- '${{ inputs.self }}'
dev_tooling:
- '.github/actions/setup-enterprise/**'
- '.github/actions/checkout/**'
@@ -111,7 +126,6 @@ runs:
- 'scripts/**'
- '!**.md'
- '.citools/**'
- '.bingo/**'
- '.github/actions/change-detection/**'
- '${{ inputs.self }}'
docs:
@@ -135,7 +149,11 @@ runs:
echo " --> ${{ steps.changed-files.outputs.e2e_all_changed_files }}"
echo " --> ${{ steps.changed-files.outputs.backend_all_changed_files }}"
echo " --> ${{ steps.changed-files.outputs.frontend_all_changed_files }}"
echo "E2E cloud plugins: ${{ steps.changed-files.outputs.e2e_cloud_plugins_any_changed || 'true' }}"
echo " --> ${{ steps.changed-files.outputs.e2e_cloud_plugins_all_changed_files }}"
echo "Dev Tooling: ${{ steps.changed-files.outputs.dev_tooling_any_changed || 'true' }}"
echo " --> ${{ steps.changed-files.outputs.dev_tooling_all_changed_files }}"
echo "Docs: ${{ steps.changed-files.outputs.docs_any_changed || 'true' }}"
echo " --> ${{ steps.changed-files.outputs.docs_all_changed_files }}"
echo "Dockerfile: ${{ steps.changed-files.outputs.dockerfile_any_changed || 'true' }}"
echo " --> ${{ steps.changed-files.outputs.dockerfile_all_changed_files }}"

48
.github/actions/check-jobs/action.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Check jobs results
description: Checks if any jobs have failed and exits with error if failures are found. Use to check the results of matrix test runs.
inputs:
needs:
description: JSON string containing the needs context from the workflow
required: true
failure-message:
description: Custom message to display when failures are found
required: false
default: "One or more jobs have failed"
success-message:
description: Custom message to display when all jobs pass
required: false
default: "All jobs passed successfully"
outputs:
any-failed:
description: Whether any jobs failed
value: ${{ steps.check-jobs.outputs.any-failed }}
runs:
using: "composite"
steps:
- name: Check test suites
id: check-jobs
shell: bash
env:
NEEDS: ${{ inputs.needs }}
FAILURE_MSG: ${{ inputs.failure-message }}
SUCCESS_MSG: ${{ inputs.success-message }}
run: |
set -euo pipefail
# Print the needs context, debugging
echo "$NEEDS" | jq
# Extract failures
FAILURES="$(echo "$NEEDS" | jq 'with_entries(select(.value.result == "failure")) | map_values(.result)')"
# Check if there are any failures
if [ "$(echo "$FAILURES" | jq '. | length')" != "0" ]; then
echo "❌ $FAILURE_MSG"
echo "Failed suites:"
echo "$FAILURES" | jq -r 'to_entries[] | "- \(.key): \(.value)"'
echo "any-failed=true" >> "$GITHUB_OUTPUT"
exit 1
fi
echo "✅ $SUCCESS_MSG"

11
.github/actions/setup-node/action.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
name: Setup Node.js
description: Sets up a node.js environment with presets for the Grafana repository.
runs:
using: "composite"
steps:
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'

28
.github/commands.json vendored
View File

@@ -136,7 +136,7 @@
"name": "datasource/Tempo",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/221"
"url": "https://github.com/orgs/grafana/projects/457"
}
},
{
@@ -152,7 +152,7 @@
"name": "datasource/Parca",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/221"
"url": "https://github.com/orgs/grafana/projects/457"
}
},
{
@@ -168,7 +168,7 @@
"name": "datasource/Jaeger",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/221"
"url": "https://github.com/orgs/grafana/projects/457"
}
},
{
@@ -176,7 +176,7 @@
"name": "datasource/Zipkin",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/221"
"url": "https://github.com/orgs/grafana/projects/457"
}
},
{
@@ -584,7 +584,7 @@
"name": "area/public-dashboards",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/482"
"url": "https://github.com/orgs/grafana/projects/467"
}
},
{
@@ -696,7 +696,7 @@
"name": "area/navigation",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/78"
"url": "https://github.com/orgs/grafana/projects/911"
}
},
{
@@ -704,7 +704,7 @@
"name": "area/search",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/78"
"url": "https://github.com/orgs/grafana/projects/911"
}
},
{
@@ -752,7 +752,7 @@
"name": "area/image-rendering",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/482"
"url": "https://github.com/orgs/grafana/projects/467"
}
},
{
@@ -947,6 +947,14 @@
"url": "https://github.com/orgs/grafana/projects/202"
}
},
{
"type": "label",
"name": "area/gitsync",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/792"
}
},
{
"type": "label",
"name": "area/backend/db/sqlite",
@@ -1000,7 +1008,7 @@
"name": "area/frontend/login",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/78"
"url": "https://github.com/orgs/grafana/projects/911"
}
},
{
@@ -1032,7 +1040,7 @@
"name": "area/panel/dashboard-list",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/202"
"url": "https://github.com/orgs/grafana/projects/911"
}
},
{

View File

@@ -8,11 +8,11 @@ updates:
directories:
- "/"
- "/apps/playlist"
- "/apps/secret"
- "/apps/investigations"
- "/pkg/aggregator"
- "/pkg/apimachinery"
- "/pkg/apis/folder"
- "/pkg/apis/secret"
- "/pkg/apiserver"
- "/pkg/build"
- "/pkg/build/wire"

View File

@@ -4,8 +4,7 @@
"memberOf": {
"org": "grafana"
},
"noLabels": true,
"addLabel": "internal",
"noLabels": true,
"comment": " please add one or more appropriate labels. Here are some tips:\r\n\r\n- if you are making an issue, TODO, or reminder for yourself or your team, please add one label that best describes the product or feature area. Please also add the issue to your project board. :rocket:\r\n\r\n- if you are making an issue for any other reason (docs typo, you found a bug, etc), please add at least one label that best describes the product or feature that you are discussing (e.g. `area/alerting`, `datasource/loki`, `type/docs`, `type/bug`, etc). [Our issue triage](https://github.com/grafana/grafana/blob/main/contribute/ISSUE_TRIAGE.md#3-categorize-an-issue) doc also provides additional guidance on labeling. :rocket:\r\n\r\n Thank you! :heart:"
}
]

View File

@@ -99,7 +99,7 @@
:versions: []
:when: 2025-05-03 13:10:00.000000000 Z
- - :license
- github.com/grafana/grafana/pkg/apis/secret
- github.com/grafana/grafana/apps/secret
- unknown
- :who: Carl Bergquist
:why: repository is owned by Grafana Labs

View File

@@ -71,16 +71,6 @@
"action": "updateLabel",
"addLabel": "type/build-packaging"
},
{
"type": "changedfiles",
"matches": [
"scripts/*.star",
".drone.star",
".drone.yml"
],
"action": "updateLabel",
"addLabel": "type/ci"
},
{
"type": "changedfiles",
"matches": [

View File

@@ -12,6 +12,7 @@
'react-refresh',
"@types/history", // this can be removed entirely when we upgrade history since v5 exposes types directly
"cypress", // cypress use is deprecated, we should not bump it anymore
"history", // we should bump this together with react-router-dom (see https://github.com/grafana/grafana/issues/76744)
"react-router", // we should bump this together with history and react-router-dom
"react-router-dom", // we should bump this together with history (see https://github.com/grafana/grafana/issues/76744)
@@ -31,29 +32,41 @@
automerge: true,
matchCurrentVersion: "!/^0/",
matchUpdateTypes: ["patch"],
matchPackageNames: ["!/^@?storybook/", "!/^@locker/"],
matchPackageNames: ["!/^@?storybook/", "!/^@locker/", "!/^@grafana/"],
minimumReleaseAge: "7 days",
},
{
automerge: true,
matchCurrentVersion: "!/^0/",
matchUpdateTypes: ["patch"],
matchPackageNames: ["/^@grafana/"],
},
{
extends: ["schedule:monthly"],
groupName: "Storybook updates",
matchPackageNames: ["/^@?storybook/"],
rangeStrategy: "bump",
minimumReleaseAge: "7 days",
},
{
groupName: "React Aria",
matchPackageNames: ["@react-aria/{/,}**", "@react-stately/{/,}**"],
minimumReleaseAge: "7 days",
},
{
groupName: "Moveable",
matchPackageNames: ["moveable", "react-moveable"],
minimumReleaseAge: "7 days",
},
{
groupName: "Slate",
matchPackageNames: ["@types/slate", "@types/slate-react", "slate", "slate-react"],
minimumReleaseAge: "7 days",
},
{
groupName: "d3",
matchPackageNames: ["d3{/,}**", "@types/d3{/,}**"],
minimumReleaseAge: "7 days",
},
{
groupName: "scenes",
@@ -66,21 +79,25 @@
{
groupName: "visx",
matchPackageNames: ["@visx/{/,}**"],
minimumReleaseAge: "7 days",
},
{
groupName: "uLibraries",
matchPackageNames: ["@leeoniya/**", "uplot"],
reviewers: ["leeoniya"],
minimumReleaseAge: "7 days",
},
{
groupName: "locker",
reviewers: ["team:grafana/plugins-platform-frontend"],
matchPackageNames: ["@locker/{/,}**"],
minimumReleaseAge: "7 days",
},
{
groupName: "augurs",
matchPackageNames: ["@bsull/augurs"],
reviewers: ["sd2k"],
minimumReleaseAge: "7 days",
},
{
"matchDepTypes": ["devDependencies"],

View File

@@ -10,7 +10,7 @@ jobs:
permissions:
pull-requests: write
steps:
- uses: marocchino/sticky-pull-request-comment@52423e01640425a022ef5fd42c6fb5f633a02728 # v2.9.1
- uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2.9.4
with:
message: |
Since you've added the `Add to what's new` label, consider drafting a [What's new note](https://admin.grafana.com/content-admin/#/collections/whats-new/new) for this feature.

View File

@@ -15,7 +15,7 @@ jobs:
fetch-depth: 2
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
with:
go-version-file: go.mod
- name: Build swagger

View File

@@ -29,7 +29,7 @@ jobs:
fi
- name: Setup Go
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # 5.3.0
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # 5.5.0
with:
"go-version-file": "go.mod"
@@ -51,7 +51,7 @@ jobs:
run: |
TO_COMMIT="$(gh api repos/grafana/alerting/commits/"$BRANCH" --jq '.sha')"
if [ -z "$TO_COMMIT" ]; then
echo "Branch $BRANCH not found in alerting repo, falling back to main branch"
echo "Branch $BRANCH not found in alerting repo"
exit 1
fi
echo "to_commit=$TO_COMMIT" >> "$GITHUB_OUTPUT"
@@ -85,7 +85,7 @@ jobs:
printf "%s\n" "$ALERTING_COMMITS"
# make the list for markdown and replace PR numbers with links
ALERTING_COMMITS_FORMATTED="$(echo "$ALERTING_COMMITS" | while read -r line; do echo "- $line" | sed -E 's/\(#([0-9]+)\)/[#\1](https:\/\/github.com\/grafana\/grafana\/pull\/\1)/g'; done)"
ALERTING_COMMITS_FORMATTED="$(echo "$ALERTING_COMMITS" | while read -r line; do echo "- $line" | sed -E 's/\(#([0-9]+)\)/[#\1](https:\/\/github.com\/grafana\/alerting\/pull\/\1)/g'; done)"
{
echo "alerting_commits<<EOF"
@@ -123,6 +123,9 @@ jobs:
title: 'Alerting: Update alerting module to ${{ steps.latest-commit.outputs.to_commit }}'
branch: alerting/update-alerting-module
delete-branch: true
labels: |
no-changelog
no-backport
body: |
Updates Grafana Alerting module to latest version.
@@ -144,3 +147,14 @@ jobs:
echo "## Pull Request Created"
echo "🔗 [View Pull Request]($PR_URL)"
} >> "$GITHUB_STEP_SUMMARY"
- name: Send Slack Message
uses: grafana/shared-workflows/actions/send-slack-message@send-slack-message/v2.0.3
with:
method: 'chat.postMessage'
# send to alerting-reviews channel
payload-templated: true
payload: |
{
"channel": "C076RNRRZ2N",
"text": "Update alerting module in Grafana ${{ steps.create-pr.outputs.pull-request-url }}"
}

View File

@@ -14,6 +14,7 @@ area/backend/db/mysql
area/backend/db/postgres
area/backend/db/sql
area/backend/db/sqlite
area/gitsync
area/configuration
area/dashboard/annotations
area/dashboard/data-links

View File

@@ -14,12 +14,31 @@ on:
- 'docs/**'
- 'latest.json'
permissions:
contents: read
id-token: write
jobs:
detect-changes:
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.backend }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/backend-code-checks.yml
validate-configs:
permissions:
contents: read
id-token: write
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
name: Validate Backend Configs
runs-on: ubuntu-latest
steps:
@@ -27,7 +46,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
# Explicitly set Go version to 1.24.1 to ensure consistent OpenAPI spec generation
# The crypto/x509 package has additional fields in Go 1.24.1 that affect the generated specs
@@ -39,7 +58,7 @@ jobs:
run: |
CODEGEN_VERIFY=1 make gen-cue
CODEGEN_VERIFY=1 make gen-jsonnet
- name: Validate go.mod
run: go run scripts/modowners/modowners.go check go.mod
@@ -48,7 +67,7 @@ jobs:
- name: Setup Grafana Enterprise
if: github.event.pull_request.head.repo.fork == false
uses: ./.github/actions/setup-enterprise
- name: Generate and Validate OpenAPI Specs
run: |
# For PRs from forks, we'll just run the basic swagger-gen without validation
@@ -57,10 +76,10 @@ jobs:
make swagger-gen
exit 0
fi
# Clean and regenerate OpenAPI specs
make swagger-clean && make openapi3-gen
# Check if the generated specs differ from what's in the repository
for f in public/api-merged.json public/openapi3.json; do git add $f; done
if [ -z "$(git diff --name-only --cached)" ]; then

View File

@@ -16,6 +16,8 @@ permissions: {}
jobs:
detect-changes:
name: Detect whether code changed
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
runs-on: ubuntu-latest
permissions:
contents: read
@@ -46,7 +48,7 @@ jobs:
fail-fast: false
name: Grafana (${{ matrix.shard }})
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-latest
continue-on-error: true
permissions:
contents: read
@@ -57,7 +59,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
- name: Run unit tests
@@ -66,7 +68,7 @@ jobs:
run: |
set -euo pipefail
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/shard.sh -N"$SHARD")"
go test -short -timeout=30m "${PACKAGES[@]}"
CGO_ENABLED=0 go test -short -timeout=30m "${PACKAGES[@]}"
grafana-enterprise:
# Run this workflow for non-PR events (like pushes to `main` or `release-*`) OR for internal PRs (PRs not from forks)
@@ -81,7 +83,7 @@ jobs:
fail-fast: false
name: Grafana Enterprise (${{ matrix.shard }})
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-x64-large
permissions:
contents: read
id-token: write
@@ -92,7 +94,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
- name: Setup Enterprise
@@ -116,7 +118,7 @@ jobs:
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/shard.sh -N"$SHARD")"
# This tee requires pipefail to be set, otherwise `go test`'s exit code is thrown away.
# That means having no `-o pipefail` => failing tests => exit code 0, which is wrong.
go test -short -timeout=30m "${PACKAGES[@]}"
CGO_ENABLED=0 go test -short -timeout=30m "${PACKAGES[@]}"
# This is the job that is actually required by rulesets.
# We need to require EITHER the OSS or the Enterprise job to pass.

View File

@@ -13,7 +13,7 @@ permissions: {}
jobs:
backport:
# Only run this job if the triggering workflow was not skipped (and on grafana repo)
if: github.repository == 'grafana/grafana' && github.event.workflow_run.conclusion == 'success'
if: github.event.workflow_run.head_repository.fork == false && github.repository == 'grafana/grafana' && github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
permissions:
id-token: write

View File

@@ -13,17 +13,29 @@ on:
required: false
permissions:
contents: write
pull-requests: write
id-token: write
contents: read
jobs:
bump-version:
runs-on: ubuntu-latest
steps:
- name: Checkout Grafana
uses: actions/checkout@v4
- uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
persist-credentials: false
repo_secrets: |
GRAFANA_DELIVERY_BOT_APP_PEM=delivery-bot-app:PRIVATE_KEY
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
app_id: ${{ vars.DELIVERY_BOT_APP_ID }}
private_key: ${{ env.GRAFANA_DELIVERY_BOT_APP_PEM }}
repositories: '["grafana"]'
permissions: '{"contents": "write", "pull_requests": "write", "workflows": "write"}'
- name: Checkout Grafana
uses: actions/checkout@v5
with:
token: ${{ steps.generate_token.outputs.token }}
- name: Update package.json versions
uses: ./pkg/build/actions/bump-version
with:
@@ -35,10 +47,10 @@ jobs:
DRY_RUN: ${{ inputs.dry_run }}
REF_NAME: ${{ github.ref_name }}
RUN_ID: ${{ github.run_id }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "grafana-delivery-bot[bot]"
git config --local user.email "grafana-delivery-bot[bot]@users.noreply.github.com"
git config --local --add --bool push.autoSetupRemote true
git checkout -b "bump-version/${RUN_ID}/${VERSION}"
git add .

View File

@@ -23,7 +23,28 @@ permissions:
security-events: write
jobs:
detect-changes:
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
javascript: ${{ steps.detect-changes.outputs.frontend }}
go: ${{ steps.detect-changes.outputs.backend }}
actions: 'true'
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/codeql-analysis.yml
analyze:
needs: detect-changes
name: Analyze
runs-on: ubuntu-latest
continue-on-error: true # doesn't block PRs from being merged if this fails
@@ -41,6 +62,7 @@ jobs:
steps:
- name: Checkout repository
if: needs.detect-changes.outputs[matrix.language] == 'true'
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
@@ -48,14 +70,15 @@ jobs:
fetch-depth: 2
persist-credentials: false
- if: matrix.language == 'go'
- if: matrix.language == 'go' && needs.detect-changes.outputs.go == 'true'
name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
with:
go-version-file: go.mod
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
if: needs.detect-changes.outputs[matrix.language] == 'true'
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
@@ -64,7 +87,7 @@ jobs:
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- if: matrix.language == 'go'
- if: matrix.language == 'go' && needs.detect-changes.outputs.go == 'true'
name: Build go files
run: |
go mod verify

View File

@@ -62,7 +62,7 @@ jobs:
with:
credentials_json: '${{ env.PLUGINS_GOOGLE_CREDENTIALS }}'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a'
uses: 'google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db'
- name: Setup nodejs environment
uses: actions/setup-node@v4
with:
@@ -101,7 +101,7 @@ jobs:
echo "has_backend=false" >> "$GITHUB_OUTPUT"
fi
- name: Setup golang environment
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
if: steps.check_backend.outputs.has_backend == 'true'
with:
go-version-file: go.mod

View File

@@ -25,4 +25,5 @@ jobs:
patch_ref: "${{ github.base_ref }}" # this is the target branch name, Ex: "main"
patch_repo: "grafana/grafana-security-patches"
patch_prefix: "${{ github.event.pull_request.number }}"
sender: "${{ github.event.pull_request.user.login }}"
secrets: inherit # zizmor: ignore[secrets-inherit]

View File

@@ -32,19 +32,7 @@ jobs:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Cache node_modules
uses: actions/cache@v4
with:
path: |
node_modules
key: node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
node_modules-
uses: ./.github/actions/setup-node
- name: Install dependencies
env:

View File

@@ -158,13 +158,15 @@ jobs:
- id: 'auth'
uses: 'google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f'
if: github.event.pull_request.head.repo.full_name == github.repository
with:
workload_identity_provider: projects/304398677251/locations/global/workloadIdentityPools/github/providers/github-provider
service_account: github-plugins-data-levitate@grafanalabs-workload-identity.iam.gserviceaccount.com
project_id: 'grafanalabs-global'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a'
uses: 'google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db'
if: github.event.pull_request.head.repo.full_name == github.repository
with:
version: '>= 363.0.0'
project_id: 'grafanalabs-global'
@@ -175,6 +177,7 @@ jobs:
run: ./scripts/check-breaking-changes.sh
env:
FORCE_COLOR: 3
IS_FORK: ${{ github.event.pull_request.head.repo.full_name != github.repository }} # used in check-breaking-changes.sh and levitate-parse-json-report.js
- name: Persisting the check output
run: |
@@ -199,6 +202,7 @@ jobs:
permissions:
contents: read
id-token: write
if: github.event.pull_request.head.repo.full_name == github.repository
steps:
- id: get-secrets
@@ -267,7 +271,7 @@ jobs:
# Comment on the PR
- name: Comment on PR
if: steps.levitate-run.outputs.exit_code == 1
uses: marocchino/sticky-pull-request-comment@52423e01640425a022ef5fd42c6fb5f633a02728
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405
with:
header: levitate-breaking-change-comment
number: ${{ github.event.pull_request.number }}
@@ -284,7 +288,7 @@ jobs:
# Remove comment from the PR (no more breaking changes)
- name: Remove comment from PR
if: steps.levitate-run.outputs.exit_code == 0
uses: marocchino/sticky-pull-request-comment@52423e01640425a022ef5fd42c6fb5f633a02728
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405
with:
header: levitate-breaking-change-comment
number: ${{ github.event.pull_request.number }}

View File

@@ -0,0 +1,156 @@
---
name: Detect Plugin Extension Changes
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
on:
pull_request:
branches:
- 'main'
paths:
- 'packages/**'
- 'public/**'
env:
# Space-separated list of keywords referring to plugin extensions
PLUGIN_EXTENSION_KEYWORDS: "usePluginLinks, usePluginComponent, usePluginComponents, usePluginFunctions, PluginExtensionPoints"
jobs:
detect-plugin-extension-changes:
name: Detect Plugin Extension Changes
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
if: github.event.pull_request.head.repo.full_name == github.repository
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: Check for plugin extension changes
id: check-changes
uses: actions/github-script@v7
with:
script: |
const { execSync } = require('child_process');
const fs = require('fs');
// Plugin extension keywords from environment
const keywords = process.env.PLUGIN_EXTENSION_KEYWORDS.split(',');
const baseSha = '${{ github.event.pull_request.base.sha }}';
const headSha = '${{ github.event.pull_request.head.sha }}';
console.log('Checking for plugin extension changes...');
console.log('Keywords:', keywords);
// Get changed files in packages/ and public/ directories
let changedFiles = [];
const diffOutput = execSync(
`git diff --name-only ${baseSha}...${headSha} -- packages/ public/`,
{ encoding: 'utf8' }
).trim();
if (diffOutput) {
changedFiles = diffOutput.split('\n').filter(file => {
// Validate file path and ensure it's in target directories
return file.match(/^(packages\/|public\/)/) &&
file.match(/^[a-zA-Z0-9._/-]+$/) &&
fs.existsSync(file);
});
}
console.log('Changed files to check:', changedFiles);
// Check each file for plugin extension keywords
const filesWithChanges = new Set();
let hasPluginExtensionChanges = false;
for (const file of changedFiles) {
try {
// Get the diff for this specific file
const fileDiff = execSync(
`git diff ${baseSha}...${headSha} -- "${file}"`,
{ encoding: 'utf8' }
);
// Check if any keywords are in the diff
for (const keyword of keywords) {
if (fileDiff.includes(keyword)) {
console.log(`Found ${keyword} in ${file}`);
filesWithChanges.add(file);
hasPluginExtensionChanges = true;
break; // Found at least one keyword, move to next file
}
}
} catch (error) {
console.log(`Error checking file ${file}:`, error.message);
}
}
// Set outputs
const filesArray = Array.from(filesWithChanges);
const formattedFiles = filesArray.length > 0
? '`' + filesArray.join('`\\n- `') + '`'
: '';
core.setOutput('plugin_extension_changes', hasPluginExtensionChanges.toString());
core.setOutput('formatted_changed_files', formattedFiles);
if (hasPluginExtensionChanges) {
console.log('The following files have changes that may affect plugin extensions:');
console.log(filesArray);
} else {
console.log('No changes detected in core Grafana extensions or extension points.');
}
- name: Send Slack Message via Payload
id: slack
if: steps.check-changes.outputs.plugin_extension_changes == 'true'
uses: grafana/shared-workflows/actions/send-slack-message@0941e3408fa4789fec9062c44a2a9e1832146ba6 #v2.0.1
with:
method: chat.postMessage
payload-templated: true
payload: |
{
"channel": "C031SLFH6G0",
"text": "Plugin Extension changes in core Grafana *PR:* <${{ github.event.pull_request.html_url }}|#${{ github.event.pull_request.number }} :information_source:",
"icon_emoji": ":grot:",
"username": "Plugin Extension Bot",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Plugin Extensions:* possible changes to extension points in core Grafana."
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*PR:* <${{ github.event.pull_request.html_url }}|#${{ github.event.pull_request.number }}>\n*Job:* <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Job>\n*Author:* ${{ github.event.pull_request.user.login }}"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*File(s) with changes:*\n- ${{ steps.check-changes.outputs.formatted_changed_files }}"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*What to do?*\nMake sure that:\n- All extension point ids start with `grafana/`\n- All extension point ids are exposed via <https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/types/pluginExtensions.ts#L183|the `PluginExtensionPoints` enum in grafana-data>\n- Core Grafana is not registering extensions to extension points offered by plugins"
}
}
]
}

View File

@@ -1,42 +0,0 @@
name: Run e2e for dashboardNewLayouts
on:
pull_request:
branches:
- '**'
paths:
- 'e2e/dashboard-new-layouts/**'
- 'public/app/features/dashboard-scene/**'
env:
ARCH: linux-amd64
jobs:
dashboard-new-layouts-e2e:
runs-on: ubuntu-latest
continue-on-error: true
if: github.event.pull_request.draft == false
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Pin Go version to mod file
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
- run: go version
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: yarn install --immutable
- name: Build grafana
run: make build
- name: Install Cypress dependencies
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f
with:
runTests: false
- name: Run dashboardNewLayouts e2e
run: yarn e2e:dashboard-new-layouts

View File

@@ -10,9 +10,9 @@ permissions: {}
jobs:
handle-ephemeral-instances:
if: ${{ github.event.issue.pull_request && (startsWith(github.event.comment.body, '/deploy-to-hg') || github.event.action == 'closed') && github.repository_owner == 'grafana' }}
if: ${{ github.repository_owner == 'grafana' && ((github.event.issue.pull_request && startsWith(github.event.comment.body, '/deploy-to-hg')) || github.event.action == 'closed') }}
runs-on:
labels: ubuntu-latest-16-cores
labels: ubuntu-x64-xlarge
continue-on-error: true
permissions:
# For commenting.

View File

@@ -22,7 +22,7 @@ jobs:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: 'go.mod'
cache: true

View File

@@ -16,6 +16,7 @@ jobs:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.frontend }}
prettier: ${{ steps.detect-changes.outputs.frontend == 'true' || steps.detect-changes.outputs.docs == 'true' }}
steps:
- uses: actions/checkout@v4
with:
@@ -34,7 +35,7 @@ jobs:
id-token: write
# Run this workflow only for PRs from forks; if it gets merged into `main` or `release-*`,
# the `lint-frontend-prettier-enterprise` workflow will run instead
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true && needs.detect-changes.outputs.changed == 'true'
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true && needs.detect-changes.outputs.prettier == 'true'
name: Lint
runs-on: ubuntu-latest
steps:
@@ -55,7 +56,7 @@ jobs:
contents: read
id-token: write
# Run this workflow for non-PR events (like pushes to `main` or `release-*`) OR for internal PRs (PRs not from forks)
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false && needs.detect-changes.outputs.changed == 'true'
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false && needs.detect-changes.outputs.prettier == 'true'
name: Lint
runs-on: ubuntu-latest
steps:
@@ -119,13 +120,14 @@ jobs:
github-app-name: 'grafana-ci-bot'
- run: yarn install --immutable --check-cache
- run: yarn run typecheck
lint-frontend-betterer:
needs: detect-changes
lint-frontend-api-clients:
permissions:
contents: read
id-token: write
if: needs.detect-changes.outputs.changed == 'true'
name: Betterer
# Run this workflow only for PRs from forks; if it gets merged into `main` or `release-*`,
# the `lint-frontend-api-clients-enterprise` workflow will run instead
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true
name: Verify API clients
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -137,4 +139,51 @@ jobs:
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- run: yarn install --immutable --check-cache
- run: yarn run betterer:ci
- name: Generate API clients
run: |
extract_error_message='ERROR! API client generation failed!'
yarn generate-apis || (echo "${extract_error_message}" && false)
- name: Verify generated clients
run: |
uncommited_error_message="ERROR! API client generation has not been committed. Please run 'yarn generate-apis', commit the changes and push again."
file_diff="$(git diff ':!conf')"
if [ -n "$file_diff" ]; then
echo "$file_diff"
echo "${uncommited_error_message}"
exit 1
fi
lint-frontend-api-clients-enterprise:
permissions:
contents: read
id-token: write
# Run this workflow for non-PR events (like pushes to `main` or `release-*`) OR for internal PRs (PRs not from forks)
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
name: Verify API clients (enterprise)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- name: Setup Enterprise
uses: ./.github/actions/setup-enterprise
with:
github-app-name: 'grafana-ci-bot'
- run: yarn install --immutable --check-cache
- name: Generate API clients
run: |
extract_error_message='ERROR! API client generation failed!'
yarn generate-apis || (echo "${extract_error_message}" && false)
- name: Verify generated clients
run: |
uncommited_error_message="ERROR! API client generation has not been committed. Please run 'yarn generate-apis', commit the changes and push again."
file_diff="$(git diff ':!conf')"
if [ -n "$file_diff" ]; then
echo "$file_diff"
echo "${uncommited_error_message}"
exit 1
fi

View File

@@ -0,0 +1,133 @@
name: Frontend performance tests
on:
schedule:
- cron: "0 * * * *" # Run hourly
workflow_dispatch: # Allow manual triggering
jobs:
performance-tests:
permissions:
contents: read
id-token: write
runs-on: ubuntu-x64-large
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
persist-credentials: false
- id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@62722333225a1fae03ae27a63d638f9bc2176edb #get-vault-secrets-v1.2.0
with:
repo_secrets: |
PROMETHEUS_URL=frontend_perf_tests:prometheus_push_url
PROMETHEUS_USER=frontend_perf_tests:prometheus_user
PROMETHEUS_TOKEN=frontend_perf_tests:prometheus_token
FSPERFBASELINE_USERNAME=frontend_perf_tests:fsperfbaseline_username
FSPERFBASELINE_PASSWORD=frontend_perf_tests:fsperfbaseline_password
FSPERF_USERNAME=frontend_perf_tests:fsperf_username
FSPERF_PASSWORD=frontend_perf_tests:fsperf_password
- name: Authenticate Docker
uses: grafana/shared-workflows/actions/login-to-gar@main
id: login-to-gar
with:
registry: 'us-docker.pkg.dev'
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Yarn install
run: yarn install --immutable
env:
PUPPETEER_SKIP_DOWNLOAD: true
CYPRESS_INSTALL_BINARY: 0
- name: Install Playwright browsers
run: yarn playwright install chromium --with-deps
- name: Run Playwright tests (fsperfbaseline)
id: pw-fsperfbaseline
continue-on-error: true
env:
PLAYWRIGHT_JSON_OUTPUT_NAME: ./fsperfbaseline-pw-results.json
METRICS_OUTPUT_PATH: ./fsperfbaseline-metrics.txt
GRAFANA_URL: https://fsperfbaseline.grafana-dev.net
GRAFANA_ADMIN_USER: ${{ env.FSPERFBASELINE_USERNAME }}
GRAFANA_ADMIN_PASSWORD: ${{ env.FSPERFBASELINE_PASSWORD }}
run: yarn e2e:playwright --grep @performance --reporter json
- name: Run Playwright tests (fsperf)
id: pw-fsperf
continue-on-error: true
env:
PLAYWRIGHT_JSON_OUTPUT_NAME: ./fsperf-pw-results.json
METRICS_OUTPUT_PATH: ./fsperf-metrics.txt
GRAFANA_URL: https://fsperf.grafana-dev.net
GRAFANA_ADMIN_USER: ${{ env.FSPERF_USERNAME }}
GRAFANA_ADMIN_PASSWORD: ${{ env.FSPERF_PASSWORD }}
run: yarn e2e:playwright --grep @performance --reporter json
- name: Bench report (fsperfbaseline)
id: bench-fsperfbaseline
if: always()
continue-on-error: true
run: |
docker run \
--rm \
--volume="./fsperfbaseline-pw-results.json:/pw-results.json" \
--volume="./fsperfbaseline-metrics.txt:/metrics.txt" \
-e PROMETHEUS_URL="$PROMETHEUS_URL" \
-e PROMETHEUS_USER="$PROMETHEUS_USER" \
-e PROMETHEUS_PASSWORD="$PROMETHEUS_TOKEN" \
us-docker.pkg.dev/grafanalabs-global/docker-grafana-bench-prod/grafana-bench:v0.6.1 report \
--grafana-url "http://fsperfbaseline.grafana-dev.net" \
--test-suite-name "FrontendPerfTests" \
--report-input playwright \
--report-output log \
--prometheus-metrics \
--run-metrics-file "/metrics.txt" \
--log-level DEBUG \
/pw-results.json
- name: Bench report (fsperf)
id: bench-fsperf
if: always()
continue-on-error: true
run: |
docker run \
--rm \
--volume="./fsperf-pw-results.json:/pw-results.json" \
--volume="./fsperf-metrics.txt:/metrics.txt" \
-e PROMETHEUS_URL="$PROMETHEUS_URL" \
-e PROMETHEUS_USER="$PROMETHEUS_USER" \
-e PROMETHEUS_PASSWORD="$PROMETHEUS_TOKEN" \
us-docker.pkg.dev/grafanalabs-global/docker-grafana-bench-prod/grafana-bench:v0.6.1 report \
--grafana-url "http://fsperf.grafana-dev.net" \
--test-suite-name "FrontendPerfTests" \
--report-input playwright \
--report-output log \
--prometheus-metrics \
--run-metrics-file "/metrics.txt" \
--log-level DEBUG \
/pw-results.json
- name: Check status
env:
FSPERF_PW_OUTCOME: ${{ steps.pw-fsperf.outcome }}
FSPERF_PW_BASELINE_OUTCOME: ${{ steps.pw-fsperfbaseline.outcome }}
FSPERF_BENCH_OUTCOME: ${{ steps.bench-fsperf.outcome }}
FSPERF_BENCH_BASELINE_OUTCOME: ${{ steps.bench-fsperfbaseline.outcome }}
run: |
echo "FSPERF_PW_OUTCOME: $FSPERF_PW_OUTCOME"
echo "FSPERF_PW_BASELINE_OUTCOME: $FSPERF_PW_BASELINE_OUTCOME"
echo "FSPERF_BENCH_OUTCOME: $FSPERF_BENCH_OUTCOME"
echo "FSPERF_BENCH_BASELINE_OUTCOME: $FSPERF_BENCH_BASELINE_OUTCOME"
if [[ "$FSPERF_PW_OUTCOME" != "success" || "$FSPERF_PW_BASELINE_OUTCOME" != "success" || "$FSPERF_BENCH_OUTCOME" != "success" || "$FSPERF_BENCH_BASELINE_OUTCOME" != "success" ]]; then
echo "One or more test steps failed."
exit 1
fi

View File

@@ -13,19 +13,62 @@ permissions:
contents: read
jobs:
lint-go:
detect-changes:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.backend }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/go-lint.yml
go-fmt:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-go@v5
- uses: actions/setup-go@v5.5.0
with:
go-version-file: ./go.mod
- name: Run gofmt
run: |
GOFMT="$(go list -m -f '{{.Dir}}' | xargs -I{} sh -c 'test ! -f {}/.nolint && echo {}' | xargs gofmt -s -e -l 2>&1 | grep -v '/pkg/build/' || true)"
if [ -n "$GOFMT" ]; then
echo "Found files that are not gofmt'ed"
echo "Run 'gofmt -s -w .' or 'make gofmt' or install the pre-commit hook with 'make lefthook-install'"
echo "${GOFMT}"
exit 1
fi
lint-go:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-go@v5.5.0
with:
go-version-file: ./go.mod
- name: golangci-lint
uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd
with:
version: v2.0.2
version: v2.5.0
args: |
--verbose $(go list -m -f '{{.Dir}}' | xargs -I{} sh -c 'test ! -f {}/.nolint && echo {}/...')
install-mode: binary

View File

@@ -7,6 +7,7 @@ on:
jobs:
download-sources-from-crowdin:
if: github.repository == 'grafana/grafana'
uses: grafana/grafana-github-actions/.github/workflows/crowdin-download.yml@main
with:
crowdin_project_id: 5

View File

@@ -14,6 +14,7 @@ on:
jobs:
upload-sources-to-crowdin:
if: github.repository == 'grafana/grafana'
uses: grafana/grafana-github-actions/.github/workflows/crowdin-upload.yml@main
with:
crowdin_project_id: 5

View File

@@ -12,4 +12,6 @@ on:
jobs:
verify-i18n:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
uses: grafana/grafana-github-actions/.github/workflows/verify-i18n.yml@main

View File

@@ -39,7 +39,7 @@ jobs:
- name: "Get vault secrets"
id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main # zizmor: ignore[unpinned-uses]
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets/v1.2.1 # zizmor: ignore[unpinned-uses]
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_commands_github_bot path in Vault
repo_secrets: |
@@ -48,10 +48,11 @@ jobs:
- name: Generate token
id: generate_token
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
with:
app-id: ${{ env.GITHUB_APP_ID }}
private-key: ${{ env.GITHUB_APP_PRIVATE_KEY }}
permission-issues: write
- name: Run Commands
uses: ./actions/commands
@@ -64,13 +65,13 @@ jobs:
permissions:
contents: read
id-token: write
if: github.repository == 'grafana/grafana' && github.event.issue.author_association != 'MEMBER' && github.event.issue.author_association != 'OWNER'
if: github.repository == 'grafana/grafana'
runs-on: ubuntu-latest
steps:
- name: "Get vault secrets"
id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main # zizmor: ignore[unpinned-uses]
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets/v1.2.1 # zizmor: ignore[unpinned-uses]
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_triager path in Vault
repo_secrets: |
@@ -81,18 +82,29 @@ jobs:
- name: Generate token
id: generate_token
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
with:
app-id: ${{ env.GITHUB_APP_ID }}
private-key: ${{ env.GITHUB_APP_PRIVATE_KEY }}
permission-members: read
permission-issues: write
- name: Check if member of grafana org
id: check-if-grafana-org-member
continue-on-error: true
run: gh api https://api.github.com/orgs/grafana/members/${{ env.ACTOR }} >/dev/null 2>&1 && echo "is_grafana_org_member=true" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
ACTOR: ${{ github.actor }}
- name: Checkout
if: steps.check-if-grafana-org-member.outputs.is_grafana_org_member != 'true' && github.event.issue.author_association != 'MEMBER' && github.event.issue.author_association != 'OWNER'
uses: actions/checkout@v4 # v4.2.2
with:
persist-credentials: false
sparse-checkout: |
.github/workflows/auto-triager
- name: Send issue to the auto triager action
id: auto_triage
if: steps.check-if-grafana-org-member.outputs.is_grafana_org_member != 'true' && github.event.issue.author_association != 'MEMBER' && github.event.issue.author_association != 'OWNER'
uses: grafana/auto-triager@main # zizmor: ignore[unpinned-uses]
with:
token: ${{ steps.generate_token.outputs.token }}
@@ -117,3 +129,41 @@ jobs:
}
env:
SLACK_WEBHOOK_URL: ${{ env.AUTOTRIAGER_SLACK_WEBHOOK_URL }}
auto-label-internal-issues:
needs: [main]
if: github.repository == 'grafana/grafana'
runs-on: ubuntu-latest
permissions:
issues: write
id-token: write
steps:
- name: "Get vault secrets"
id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets/v1.2.1 # zizmor: ignore[unpinned-uses]
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_triager path in Vault
repo_secrets: |
GITHUB_APP_ID=plugins_platform_issue_triager_github_bot:app_id
GITHUB_APP_PRIVATE_KEY=plugins_platform_issue_triager_github_bot:app_pem
- name: Generate token
id: generate_token
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
with:
app-id: ${{ env.GITHUB_APP_ID }}
private-key: ${{ env.GITHUB_APP_PRIVATE_KEY }}
permission-members: read
- name: Check if member of grafana org
id: check-if-grafana-org-member
continue-on-error: true
run: gh api https://api.github.com/orgs/grafana/members/${{ env.ACTOR }} >/dev/null 2>&1 && echo "is_grafana_org_member=true" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
ACTOR: ${{ github.actor }}
- name: "Auto label internal issues"
if: steps.check-if-grafana-org-member.outputs.is_grafana_org_member == 'true' || github.event.issue.author_association == 'MEMBER' || github.event.issue.author_association == 'OWNER'
run: gh issue edit "$NUMBER" --add-label "$LABELS"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}
LABELS: internal

View File

@@ -20,6 +20,8 @@ permissions: {}
jobs:
docs:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Build & Verify Docs
runs-on: ubuntu-latest

View File

@@ -17,7 +17,7 @@ permissions:
jobs:
update:
runs-on: "ubuntu-latest"
if: ${{ github.actor == 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository }}
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository }}
continue-on-error: true
steps:
- name: Retrieve GitHub App secrets
@@ -45,7 +45,7 @@ jobs:
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
with:
go-version-file: go.mod

View File

@@ -7,20 +7,28 @@ on:
- main
- release-*.*.*
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
# TODO: re-enable this before merging
# concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
permissions: {}
env:
ACTIONS_STEP_DEBUG: true
RUNNER_DEBUG: 1
jobs:
detect-changes:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.e2e }}
cloud_plugins_changed: ${{ steps.detect-changes.outputs.e2e-cloud-plugins }}
steps:
- uses: actions/checkout@v4
with:
@@ -39,27 +47,67 @@ jobs:
runs-on: ubuntu-latest-16-cores
permissions:
contents: read
outputs:
artifact: ${{ steps.artifact.outputs.artifact }}
steps:
- uses: actions/checkout@v4
with:
path: ./grafana
persist-credentials: false
- uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
# TODO: add a cleanup workflow to remove the cache when the PR is closed
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#force-deletion-of-caches-overriding-default-cache-eviction-policy
# TODO: maybe we could just use the cache to store the build, instead of uploading as an artifact?
- uses: actions/cache@v4
id: cache
with:
key: "build-grafana-${{ runner.os }}-${{ hashFiles('yarn.lock', 'public/*', 'packages/*', 'conf/*', 'pkg/**/*.go', '**/go.mod', '**/go.sum', '!**_test.go', '!**.test.ts', '!**.test.tsx', 'Dockerfile') }}"
path: |
build-dir
# If no cache hit, build Grafana
- name: Build Grafana
if: steps.cache.outputs.cache-hit != 'true'
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go -C grafana run ./pkg/build/cmd artifacts -a targz:grafana:linux/amd64 --grafana-dir="${PWD}/grafana" > out.txt
- run: mv "$(cat out.txt)" grafana.tar.gz
- run: echo "artifact=grafana-e2e-${{github.run_number}}" >> "$GITHUB_OUTPUT"
args: go run ./pkg/build/cmd artifacts -a targz:grafana:linux/amd64 -a docker:grafana:linux/amd64 --grafana-dir="${PWD}" > out.txt
- name: Cat built artifact
if: steps.cache.outputs.cache-hit != 'true'
run: cat out.txt
- name: Move built artifacts
if: steps.cache.outputs.cache-hit != 'true'
run: |
mkdir -p build-dir
mv "$(grep 'grafana_.*tar.gz$' out.txt | grep -Fv -m1 'docker')" build-dir/grafana.tar.gz
mv "$(grep 'grafana_.*docker.tar.gz$' out.txt)" build-dir/grafana.docker.tar.gz
# If cache hit, validate the artifact is present
- name: Validate artifact
if: steps.cache.outputs.cache-hit == 'true'
run: |
if [ ! -f build-dir/grafana.tar.gz ]; then
echo "Error: build-dir/grafana.tar.gz not found in cache"
exit 1
fi
- name: Set artifact name
run: echo "artifact=grafana-server-${{github.run_number}}" >> "$GITHUB_OUTPUT"
id: artifact
- uses: actions/upload-artifact@v4
id: upload
- name: Upload grafana.tar.gz
uses: actions/upload-artifact@v4
with:
retention-days: 1
name: ${{ steps.artifact.outputs.artifact }}
path: grafana.tar.gz
name: grafana-tar-gz
path: build-dir/grafana.tar.gz
- name: Upload grafana docker tarball
uses: actions/upload-artifact@v4
with:
retention-days: 1
name: grafana-docker-tar-gz
path: build-dir/grafana.docker.tar.gz
# TODO: we won't need this when we only have playwright
build-e2e-runner:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
@@ -74,7 +122,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
cache: ${{ !github.event.pull_request.head.repo.fork }}
@@ -92,6 +140,66 @@ jobs:
name: ${{ steps.artifact.outputs.artifact }}
path: e2e-runner
push-docker-image:
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false
permissions:
contents: read
id-token: write
runs-on: ubuntu-latest
needs:
- build-grafana
steps:
- id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
repo_secrets: |
GRAFANA_DELIVERY_BOT_APP_PEM=delivery-bot-app:PRIVATE_KEY
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
app_id: ${{ vars.DELIVERY_BOT_APP_ID }}
private_key: ${{ env.GRAFANA_DELIVERY_BOT_APP_PEM }}
repositories: '["grafana"]'
permissions: '{"checks": "write"}'
- uses: grafana/shared-workflows/actions/login-to-gar@main
id: login-to-gar
with:
registry: 'us-docker.pkg.dev'
environment: 'dev'
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: grafana-docker-tar-gz
path: .
- name: Load & Push Docker image
env:
BUILD_ID: ${{ github.run_id }}
run: |
set -euo pipefail
LOADED_IMAGE_NAME=$(docker load -i grafana.docker.tar.gz | sed 's/Loaded image: //g')
VERSION=$(echo "${LOADED_IMAGE_NAME}" | cut -d ':' -f 2 | cut -d '-' -f 1)
DOCKER_IMAGE="us-docker.pkg.dev/grafanalabs-dev/docker-grafana-dev/grafana:${VERSION}-${BUILD_ID}"
docker tag "${LOADED_IMAGE_NAME}" "${DOCKER_IMAGE}"
docker push "${DOCKER_IMAGE}"
echo "IMAGE=${DOCKER_IMAGE}" >> "$GITHUB_ENV"
- name: Add PR status check
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
SHA: ${{ github.event.pull_request.head.sha }}
run: |
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/grafana/grafana/check-runs \
-f "name=${IMAGE}" \
-f "head_sha=${SHA}" \
-f 'status=completed' \
-f 'conclusion=neutral' \
-f 'output[title]=Docker image' \
-f "output[summary]=${IMAGE}" \
-f "output[text]=${IMAGE}"
run-e2e-tests:
needs:
- build-grafana
@@ -102,12 +210,6 @@ jobs:
include:
- suite: various-suite
path: e2e/various-suite
- suite: dashboards-suite
path: e2e/dashboards-suite
- suite: smoke-tests-suite
path: e2e/smoke-tests-suite
- suite: panels-suite
path: e2e/panels-suite
- suite: various-suite (old arch)
path: e2e/old-arch/various-suite
flags: --flags="--env dashboardScene=false"
@@ -131,7 +233,7 @@ jobs:
persist-credentials: false
- uses: actions/download-artifact@v4
with:
name: ${{ needs.build-grafana.outputs.artifact }}
name: grafana-tar-gz
- uses: actions/download-artifact@v4
with:
name: ${{ needs.build-e2e-runner.outputs.artifact }}
@@ -140,6 +242,7 @@ jobs:
- name: Run E2E tests
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go run ./pkg/build/e2e --package=grafana.tar.gz
--suite=${{ matrix.path }}
@@ -159,6 +262,221 @@ jobs:
path: videos
retention-days: 1
run-storybook-test:
name: Verify Storybook (Playwright)
runs-on: ubuntu-latest
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Install dependencies
run: yarn install --immutable
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Run Storybook and E2E tests
run: yarn e2e:playwright:storybook
run-playwright-tests:
needs:
- build-grafana
name: Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }})
runs-on: ubuntu-latest-8-cores
permissions:
contents: read
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8]
shardTotal: [8]
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/download-artifact@v4
with:
name: grafana-tar-gz
- name: Run E2E tests
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go run ./pkg/build/e2e-playwright --package=grafana.tar.gz --shard=${{ matrix.shard }}/${{ matrix.shardTotal }} --blob-dir=./blob-report
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: playwright-blob-${{ github.run_number }}-${{ matrix.shard }}
path: ./blob-report
retention-days: 1
run-azure-monitor-e2e:
if: needs.detect-changes.outputs.cloud_plugins_changed == 'true' && github.event.pull_request.head.repo.fork == false
runs-on: ubuntu-x64-large
needs:
- build-grafana
- detect-changes
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: grafana/shared-workflows/actions/login-to-gar@login-to-gar-v0.4.0
id: login-to-gar
with:
registry: "us-docker.pkg.dev"
environment: "dev"
- id: pull-docker-image
run: |
docker pull us-docker.pkg.dev/grafanalabs-dev/docker-oss-plugin-partnerships-dev/e2e-playwright:latest
- id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
repo_secrets: |
AZURE_SP_APP_ID=cpp-azure-resourcemanager-credentials:application_id
AZURE_SP_PASSWORD=cpp-azure-resourcemanager-credentials:application_secret
AZURE_TENANT=cpp-azure-resourcemanager-credentials:tenant_id
- id: deploy-resources
env:
AZURE_SP_APP_ID: ${{ env.AZURE_SP_APP_ID}}
AZURE_SP_PASSWORD: ${{ env.AZURE_SP_PASSWORD}}
AZURE_TENANT: ${{ env.AZURE_TENANT }}
NAME: ${{ github.ref_name }}
run: |
docker container run --name cpp-e2e-deploy -e AZURE_SP_APP_ID -e AZURE_SP_PASSWORD -e AZURE_TENANT -e PLAYWRIGHT_CI=true us-docker.pkg.dev/grafanalabs-dev/docker-oss-plugin-partnerships-dev/e2e-playwright:latest ./cpp-e2e/scripts/ci-run-playwright.sh azure "${NAME}" deploy
- id: extract-creds
# see https://github.com/grafana/oss-plugin-partnerships/blob/a77040d0456003cd258668b61d542dc7c75db5b5/e2e/scripts/deploy.sh#L25 for path
run: |
docker cp cpp-e2e-deploy:/outputs.json /tmp/outputs.json
- uses: actions/download-artifact@v4
with:
name: grafana-tar-gz
- name: Run E2E tests
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go run ./pkg/build/e2e-playwright --package=grafana.tar.gz --playwright-command="yarn e2e:playwright:cloud-plugins" --cloud-plugin-creds=/tmp/outputs.json
- name: Destroy resources
if: always() && steps.deploy-resources.outcome == 'success'
env:
AZURE_SP_APP_ID: ${{ env.AZURE_SP_APP_ID }}
AZURE_SP_PASSWORD: ${{ env.AZURE_SP_PASSWORD }}
AZURE_TENANT: ${{ env.AZURE_TENANT }}
NAME: ${{ github.ref_name }}
run: |
docker container run --name cpp-e2e-destroy -e AZURE_SP_APP_ID -e AZURE_SP_PASSWORD -e AZURE_TENANT us-docker.pkg.dev/grafanalabs-dev/docker-oss-plugin-partnerships-dev/e2e-playwright:latest ./cpp-e2e/scripts/ci-run-playwright.sh azure "${NAME}" destroy
required-playwright-tests:
needs:
- run-playwright-tests
- run-azure-monitor-e2e
- run-storybook-test
- build-grafana
if: ${{ !cancelled() }}
name: All Playwright tests complete
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@v4
with:
path: blobs
pattern: playwright-blob-*
merge-multiple: true
- name: Check blob reports
run: |
if [ ! "$(ls -A ./blobs)" ]; then
echo "Error: No blob reports found in ./blobs directory"
echo "Did the Playwright tests run at all?"
exit 1
fi
echo "Found blob reports in ./blobs:"
ls -lah ./blobs
- name: Merge into HTML Report
run: npx playwright merge-reports --reporter html ./blobs
- name: Merge into JSON Report
env:
PLAYWRIGHT_JSON_OUTPUT_NAME: /tmp/playwright-results.json
run: npx playwright merge-reports --reporter=json ./blobs
- name: Bench report
run: |
docker run --rm \
--volume="/tmp/playwright-results.json:/home/bench/tests/playwright-results.json" \
us-docker.pkg.dev/grafanalabs-global/docker-grafana-bench-prod/grafana-bench:v0.5.1 report \
--grafana-url "http://localhost:3000" \
--grafana-version "CI- ${{ github.sha }}" \
--test-suite-name "FrontendCore" \
--report-input playwright \
--report-output log \
--log-level DEBUG \
/home/bench/tests/playwright-results.json
- name: Upload HTML report
id: upload-html
uses: actions/upload-artifact@v4
with:
name: playwright-html-${{ github.run_number }}
path: playwright-report
retention-days: 7
- name: Check test suites
id: check-jobs
uses: ./.github/actions/check-jobs
continue-on-error: true # Failure will be reported on Show test results step
with:
needs: ${{ toJson(needs) }}
failure-message: "One or more E2E test suites have failed"
success-message: "All E2E test suites completed successfully"
- name: Show test results
env:
FAILED: ${{ steps.check-jobs.outputs.any-failed }}
REPORT_URL: ${{ steps.upload-html.outputs.artifact-url }}
# sed removes the leading `../../src/` from the paths
run: |
npx playwright merge-reports --reporter list ./blobs | sed 's|\(\.\./\)\{1,\}src/|/|g'
if [ "$FAILED" = "true" ]; then
echo ""
echo "Download the test report from $REPORT_URL"
exit 1
fi
run-a11y-test:
needs:
- build-grafana
@@ -173,19 +491,63 @@ jobs:
persist-credentials: false
- uses: actions/download-artifact@v4
with:
name: ${{ needs.build-grafana.outputs.artifact }}
name: grafana-tar-gz
- name: Run PR a11y test
if: github.event_name == 'pull_request'
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go run ./pkg/build/a11y --package=grafana.tar.gz
- name: Run non-PR a11y test
if: github.event_name != 'pull_request'
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go run ./pkg/build/a11y --package=grafana.tar.gz --no-threshold-fail
args: go run ./pkg/build/a11y --package=grafana.tar.gz --no-threshold-fail --results=./pa11y-ci-results.json
- name: Upload pa11y results
if: github.event_name != 'pull_request'
uses: actions/upload-artifact@v4
with:
retention-days: 1
name: pa11y-ci-results
path: pa11y-ci-results.json
publish-metrics:
needs:
- run-a11y-test
name: Publish metrics
# Run on `grafana/grafana` main branch only
if: github.event_name == 'push' && github.repository == 'grafana/grafana' && github.ref_name == 'main'
permissions:
contents: read
id-token: write
runs-on: ubuntu-latest
steps:
- id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
repo_secrets: |
GRAFANA_MISC_STATS_API_KEY=grafana-misc-stats:api_key
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Install dependencies
run: yarn install --immutable
- name: Get pa11y results
uses: actions/download-artifact@v4
with:
name: pa11y-ci-results
- name: Extract and publish metrics
run: ./scripts/ci-frontend-metrics.sh | node --experimental-strip-types .github/workflows/scripts/publish-frontend-metrics.mts
env:
GRAFANA_MISC_STATS_API_KEY: ${{ env.GRAFANA_MISC_STATS_API_KEY}}
# This is the job that is actually required by rulesets.
# We want to only require one job instead of all the individual tests.
@@ -193,6 +555,7 @@ jobs:
required-e2e-tests:
needs:
- run-e2e-tests
- build-grafana
# a11y test is not listed on purpose: it is not an important E2E test.
# It is also totally fine to fail right now.
# always() is the best function here.
@@ -203,13 +566,13 @@ jobs:
name: All E2E tests complete
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check test suites
env:
NEEDS: ${{ toJson(needs) }}
run: |
FAILURES="$(echo "$NEEDS" | jq 'with_entries(select(.value.result == "failure")) | map_values(.result)')"
echo "$FAILURES"
if [ "$(echo "$FAILURES" | jq '. | length')" != "0" ]; then
exit 1
fi
echo "All OK!"
uses: ./.github/actions/check-jobs
with:
needs: ${{ toJson(needs) }}
failure-message: "One or more E2E test suites have failed"
success-message: "All E2E test suites completed successfully"

View File

@@ -10,8 +10,10 @@ permissions: {}
jobs:
detect-changes:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Detect whether code changed
runs-on: ubuntu-latest
runs-on: ubuntu-x64-small
permissions:
contents: read
outputs:
@@ -31,64 +33,114 @@ jobs:
permissions:
contents: read
id-token: write
needs:
- detect-changes
# Run this workflow only for PRs from forks; if it gets merged into `main` or `release-*`,
# the `frontend-unit-tests-enterprise` workflow will run instead
needs: detect-changes
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true && needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-latest-8-cores
name: "Unit tests (${{ matrix.chunk }} / 8)"
runs-on: ubuntu-x64-large
name: "Unit tests (${{ matrix.shard }} / ${{ matrix.total }})"
strategy:
fail-fast: false
matrix:
chunk: [1, 2, 3, 4, 5, 6, 7, 8]
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
total: [16]
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- run: yarn install --immutable --check-cache
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Yarn install
run: yarn install --immutable
env:
PUPPETEER_SKIP_DOWNLOAD: true
CYPRESS_INSTALL_BINARY: 0
- run: yarn run test:ci
env:
TEST_MAX_WORKERS: 2
TEST_SHARD: ${{ matrix.chunk }}
TEST_SHARD_TOTAL: 8
TEST_MAX_WORKERS: 4
TEST_SHARD: ${{ matrix.shard }}
TEST_SHARD_TOTAL: ${{ matrix.total }}
frontend-unit-tests-enterprise:
permissions:
contents: read
id-token: write
needs:
- detect-changes
# Run this workflow for non-PR events (like pushes to `main` or `release-*`) OR for internal PRs (PRs not from forks)
needs: detect-changes
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false && needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-latest-8-cores
name: "Unit tests (${{ matrix.chunk }} / 8)"
runs-on: ubuntu-x64-large
name: "Unit tests (${{ matrix.shard }} / ${{ matrix.total }})"
strategy:
fail-fast: false
matrix:
chunk: [1, 2, 3, 4, 5, 6, 7, 8]
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
total: [16]
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- name: Setup Enterprise
uses: ./.github/actions/setup-enterprise
with:
github-app-name: 'grafana-ci-bot'
- run: yarn install --immutable --check-cache
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Yarn install
run: yarn install --immutable
env:
# Switch from default hardened mode to faster mode for internal PRs
YARN_ENABLE_HARDENED_MODE: ${{ github.event.pull_request.head.repo.fork == false && '1' || '0' }}
PUPPETEER_SKIP_DOWNLOAD: true
CYPRESS_INSTALL_BINARY: 0
- run: yarn run test:ci
env:
TEST_MAX_WORKERS: 2
TEST_SHARD: ${{ matrix.chunk }}
TEST_SHARD_TOTAL: 8
TEST_MAX_WORKERS: 4
TEST_SHARD: ${{ matrix.shard }}
TEST_SHARD_TOTAL: ${{ matrix.total }}
frontend-decoupled-plugin-tests:
needs:
- detect-changes
if: needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-x64-large
name: "Decoupled plugin tests"
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Yarn install
run: yarn install --immutable
env:
# Switch from default hardened mode to faster mode for internal PRs
YARN_ENABLE_HARDENED_MODE: ${{ github.event.pull_request.head.repo.fork == false && '1' || '0' }}
PUPPETEER_SKIP_DOWNLOAD: true
CYPRESS_INSTALL_BINARY: 0
- run: yarn run plugin:test:ci
frontend-packages-unit-tests:
needs:
- detect-changes
if: needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-x64-large
name: "Packages unit tests"
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Yarn install
run: yarn install --immutable
env:
# Switch from default hardened mode to faster mode for internal PRs
YARN_ENABLE_HARDENED_MODE: ${{ github.event.pull_request.head.repo.fork == false && '1' || '0' }}
PUPPETEER_SKIP_DOWNLOAD: true
CYPRESS_INSTALL_BINARY: 0
- run: yarn run packages:test:ci
# This is the job that is actually required by rulesets.
# We need to require EITHER the OSS or the Enterprise job to pass.
@@ -98,21 +150,22 @@ jobs:
needs:
- frontend-unit-tests
- frontend-unit-tests-enterprise
- frontend-decoupled-plugin-tests
- frontend-packages-unit-tests
# always() is the best function here.
# success() || failure() will skip this function if any need is also skipped.
# That means conditional test suites will fail the entire requirement check.
if: always()
name: All frontend unit tests complete
runs-on: ubuntu-latest
runs-on: ubuntu-x64-small
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check test suites
env:
NEEDS: ${{ toJson(needs) }}
run: |
FAILURES="$(echo "$NEEDS" | jq 'with_entries(select(.value.result == "failure")) | map_values(.result)')"
echo "$FAILURES"
if [ "$(echo "$FAILURES" | jq '. | length')" != "0" ]; then
exit 1
fi
echo "All OK!"
uses: ./.github/actions/check-jobs
with:
needs: ${{ toJson(needs) }}
failure-message: "One or more unit test jobs have failed"
success-message: "All unit tests completed successfully"

View File

@@ -4,18 +4,31 @@ on:
workflow_dispatch:
pull_request:
branches: [main]
paths:
- .github/workflows/pr-go-workspace-check.yml
- go.mod
- go.sum
- go.work
- go.work.sum
- '**/go.mod'
- '**/go.sum'
- '**.go'
permissions: {}
jobs:
check:
detect-changes:
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.backend }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/pr-go-workspace-check.yml
check-workspace:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
name: Go Workspace Check
runs-on: ubuntu-latest
@@ -26,7 +39,7 @@ jobs:
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
with:
cache: false
go-version-file: go.mod
@@ -45,3 +58,100 @@ jobs:
fi
- name: Ensure Dockerfile contains submodule COPY commands
run: ./scripts/go-workspace/validate-dockerfile.sh
check-wire:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
name: Check Wire Changes
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set go version
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
with:
cache: false
go-version-file: go.mod
- name: Setup Enterprise
if: github.event.pull_request.head.repo.fork == false
uses: ./.github/actions/setup-enterprise
- name: Calculate generated wire checksums
id: pre_gen_oss
run: |
OSS_WIRE_CHECKSUM="$(sha256sum pkg/server/wire_gen.go | cut -d' ' -f1)"
echo "wire_checksum=$OSS_WIRE_CHECKSUM" >> "$GITHUB_OUTPUT"
- name: Calculate generated enterprise wire checksums
id: pre_gen_enterprise
if: github.event.pull_request.head.repo.fork == false
run: |
ENTERPRISE_WIRE_CHECKSUM="$(sha256sum pkg/server/enterprise_wire_gen.go | cut -d' ' -f1)"
echo "wire_checksum=$ENTERPRISE_WIRE_CHECKSUM" >> "$GITHUB_OUTPUT"
- name: Generate Go files
run: make gen-go
- name: Check for generated file changes
run: |
OSS_WIRE_CHANGED=false
CURRENT_OSS_WIRE_CHECKSUM=$(sha256sum pkg/server/wire_gen.go | cut -d' ' -f1)
if [ "$CURRENT_OSS_WIRE_CHECKSUM" != "${{ steps.pre_gen_oss.outputs.wire_checksum }}" ]; then
OSS_WIRE_CHANGED=true
echo "Uncomitted changes detected in pkg/server/wire_gen.go"
fi
ENTERPRISE_WIRE_CHANGED=false
if [ -f "pkg/server/enterprise_wire_gen.go" ]; then
CURRENT_ENTERPRISE_WIRE_CHECKSUM=$(sha256sum pkg/server/enterprise_wire_gen.go | cut -d' ' -f1)
if [ "$CURRENT_ENTERPRISE_WIRE_CHECKSUM" != "${{ steps.pre_gen_enterprise.outputs.wire_checksum }}" ]; then
ENTERPRISE_WIRE_CHANGED=true
echo "Uncomitted changes detected in pkg/server/enterprise_wire_gen.go"
fi
fi
if [ "$OSS_WIRE_CHANGED" = "false" ] && [ "$ENTERPRISE_WIRE_CHANGED" = "false" ]; then
echo "No changes in generated Go files"
else
if [[ "${{ github.event.pull_request.head.repo.fork }}" == "false" ]]; then
echo "> !!! Please link Enterprise and run 'make gen-go', then commit the changes to both repositories."
else
echo "> !!! Please run 'make gen-go' and commit the changes."
fi
exit 1
fi
# This is the job that is actually required by rulesets.
# We want to only require one job instead of all the individual tests.
# Future work also allows us to start skipping some tests based on changed files.
required-go-workspace-check:
needs:
- check-workspace
- check-wire
# always() is the best function here.
# success() || failure() will skip this function if any need is also skipped.
# That means conditional jobs will fail the entire requirement check.
if: always()
name: All Go Workspace Checks complete
runs-on: ubuntu-latest
steps:
- name: Check the checks
env:
NEEDS: ${{ toJson(needs) }}
run: |
FAILURES="$(echo "$NEEDS" | jq 'with_entries(select(.value.result == "failure")) | map_values(.result)')"
echo "$FAILURES"
if [ "$(echo "$FAILURES" | jq '. | length')" != "0" ]; then
exit 1
fi
echo "All OK!"

View File

@@ -24,7 +24,7 @@ jobs:
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5
with:
go-version-file: go.mod

39
.github/workflows/pr-test-docker.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Test Dockerfile
on:
pull_request:
jobs:
detect-changes:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.backend || steps.detect-changes.outputs.frontend || steps.detect-changes.outputs.dockerfile }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/pr-test-integration.yml
build-dockerfile:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
runs-on: ubuntu-x64-large-io
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- uses: docker/setup-docker-action@b60f85385d03ac8acfca6d9996982511d8620a19 # v4
- name: Build Dockerfile
run: make build-docker-full

View File

@@ -18,17 +18,38 @@ concurrency:
permissions: {}
jobs:
detect-changes:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.backend }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/pr-test-integration.yml
sqlite:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
strategy:
matrix:
# We don't need more than this since it has to wait for the other tests.
shard: [
1/8, 2/8, 3/8, 4/8,
5/8, 6/8, 7/8, 8/8,
1/4, 2/4, 3/4, 4/4,
]
fail-fast: false
name: Sqlite (${{ matrix.shard }})
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-x64-large-io
permissions:
contents: read
steps:
@@ -37,7 +58,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
cache: true
@@ -47,18 +68,55 @@ jobs:
run: |
set -euo pipefail
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/pkgs-with-tests-named.sh -b TestIntegration | ./scripts/ci/backend-tests/shard.sh -N"$SHARD" -d-)"
go test -tags=sqlite -timeout=5m -run '^TestIntegration' "${PACKAGES[@]}"
go test -tags=sqlite -timeout=8m -run '^TestIntegration' "${PACKAGES[@]}"
sqlite_nocgo:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
strategy:
matrix:
# We don't need more than this since it has to wait for the other tests.
shard: [
1/4, 2/4, 3/4, 4/4,
]
fail-fast: false
name: Sqlite Without CGo (${{ matrix.shard }})
runs-on: ubuntu-x64-large-io
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
cache: true
- name: Run tests
env:
SHARD: ${{ matrix.shard }}
run: |
set -euo pipefail
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/pkgs-with-tests-named.sh -b TestIntegration | ./scripts/ci/backend-tests/shard.sh -N"$SHARD" -d-)"
CGO_ENABLED=0 go test -tags=sqlite -timeout=8m -run '^TestIntegration' "${PACKAGES[@]}"
mysql:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
strategy:
matrix:
shard: [
1/8, 2/8, 3/8, 4/8,
5/8, 6/8, 7/8, 8/8,
1/16, 2/16, 3/16, 4/16,
5/16, 6/16, 7/16, 8/16,
9/16, 10/16, 11/16, 12/16,
13/16, 14/16, 15/16, 16/16,
]
fail-fast: false
name: MySQL (${{ matrix.shard }})
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-x64-large-io
permissions:
contents: read
env:
@@ -66,7 +124,7 @@ jobs:
MYSQL_HOST: 127.0.0.1
services:
mysql:
image: mysql:8.0.32
image: mysql:8.0.43
env:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana_tests
@@ -81,7 +139,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
cache: true
@@ -93,18 +151,22 @@ jobs:
run: |
set -euo pipefail
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/pkgs-with-tests-named.sh -b TestIntegration | ./scripts/ci/backend-tests/shard.sh -N"$SHARD" -d-)"
go test -p=1 -tags=mysql -timeout=5m -run '^TestIntegration' "${PACKAGES[@]}"
CGO_ENABLED=0 go test -p=1 -tags=mysql -timeout=8m -run '^TestIntegration' "${PACKAGES[@]}"
postgres:
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
strategy:
matrix:
shard: [
1/8, 2/8, 3/8, 4/8,
5/8, 6/8, 7/8, 8/8,
1/16, 2/16, 3/16, 4/16,
5/16, 6/16, 7/16, 8/16,
9/16, 10/16, 11/16, 12/16,
13/16, 14/16, 15/16, 16/16,
]
fail-fast: false
name: Postgres (${{ matrix.shard }})
runs-on: ubuntu-latest-8-cores
runs-on: ubuntu-x64-large-io
permissions:
contents: read
env:
@@ -113,7 +175,7 @@ jobs:
POSTGRES_HOST: 127.0.0.1
services:
postgres:
image: postgres:12.3-alpine
image: postgres:17.6
env:
POSTGRES_USER: grafanatest
POSTGRES_PASSWORD: grafanatest
@@ -126,7 +188,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
cache: true
@@ -138,7 +200,7 @@ jobs:
run: |
set -euo pipefail
readarray -t PACKAGES <<< "$(./scripts/ci/backend-tests/pkgs-with-tests-named.sh -b TestIntegration | ./scripts/ci/backend-tests/shard.sh -N"$SHARD" -d-)"
go test -p=1 -tags=postgres -timeout=5m -run '^TestIntegration' "${PACKAGES[@]}"
CGO_ENABLED=0 go test -p=1 -tags=postgres -timeout=8m -run '^TestIntegration' "${PACKAGES[@]}"
# This is the job that is actually required by rulesets.
# We want to only require one job instead of all the individual tests and shards.

View File

@@ -33,9 +33,13 @@ on:
type: string
required: false
default: github-prerelease-writer@grafanalabs-workload-identity.iam.gserviceaccount.com
runs-on:
type: string
required: false
default: github-hosted-ubuntu-x64-small
jobs:
publish:
runs-on: github-hosted-ubuntu-x64-small
runs-on: ${{ inputs.runs-on }}
name: Publish
permissions:
id-token: write
@@ -48,7 +52,7 @@ jobs:
path: ./artifact
- name: Log in to GCS
id: login-to-gcs
uses: grafana/shared-workflows/actions/login-to-gcs@login-to-gcs/v0.2.1
uses: grafana/shared-workflows/actions/login-to-gcs@main
with:
environment: ${{ inputs.environment }}
service_account: ${{ inputs.service-account }}
@@ -58,7 +62,7 @@ jobs:
find ./artifact -mindepth 2 -maxdepth 2 -exec cp -r {} out/ \;
ls -al out
- name: Upload artifacts
uses: grafana/shared-workflows/actions/push-to-gcs@push-to-gcs-v0.2.0
uses: grafana/shared-workflows/actions/push-to-gcs@main
with:
bucket: ${{ inputs.bucket }}
environment: ${{ inputs.environment }}
@@ -66,3 +70,4 @@ jobs:
path: out
bucket_path: ${{ inputs.bucket-path }}
service_account: ${{ inputs.service-account }}
gzip: false

View File

@@ -27,7 +27,7 @@ jobs:
persist-credentials: false
- name: "Setup Go"
uses: "actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639"
uses: "actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5"
with:
go-version-file: go.mod

View File

@@ -30,7 +30,7 @@ jobs:
persist-credentials: false
- name: "Setup Go"
uses: "actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639"
uses: "actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5"
with:
go-version-file: go.mod

View File

@@ -12,6 +12,8 @@ permissions: {}
jobs:
reject-gh-secrets:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
runs-on: ubuntu-latest
permissions:
contents: read
@@ -28,4 +30,4 @@ jobs:
echo "Found secrets access in the codebase. Please remove it in favour of Vault secrets."
echo "If you are sure this is correct, add '# nolint:reject-gh-secrets' to the end of the line. Be VERY careful with this."
exit 1
fi
fi

View File

@@ -1,6 +1,16 @@
name: Build Release Packages
on:
workflow_dispatch:
inputs:
source-event:
description: If this workflow was triggered by another workflow, this value should be set to the GITHUB_EVENT_NAME of that source workflow.
type: string
required: false
default: workflow_dispatch
schedule:
# Every weeknight at midnight
# "Scheduled workflows will only run on the default branch." (docs.github.com)
- cron: '0 0 * * 1-5'
push:
branches:
- release-*.*.*
@@ -39,14 +49,14 @@ jobs:
setup:
name: setup
runs-on: github-hosted-ubuntu-x64-small
if: github.repository == 'grafana/grafana'
if: (github.repository == 'grafana/grafana') || (github.repository == 'grafana/grafana-security-mirror' && contains(github.ref_name, '+security'))
outputs:
version: ${{ steps.output.outputs.version }}
grafana-commit: ${{ steps.output.outputs.grafana_commit }}
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set up version (Release Branches)
@@ -93,10 +103,12 @@ jobs:
BUILD_ID: ${{ github.run_id }}
BUCKET: grafana-prerelease
GRAFANA_COMMIT: ${{ needs.setup.outputs.grafana-commit }}
SOURCE_EVENT: ${{ inputs.source-event || github.event_name }}
REPO: ${{ github.repository }}
with:
github-token: ${{ steps.generate_token.outputs.token }}
script: |
const {REF, VERSION, BUILD_ID, BUCKET, GRAFANA_COMMIT} = process.env;
const {REF, VERSION, BUILD_ID, BUCKET, GRAFANA_COMMIT, SOURCE_EVENT, REPO} = process.env;
await github.rest.actions.createWorkflowDispatch({
owner: 'grafana',
@@ -108,6 +120,8 @@ jobs:
"build-id": String(BUILD_ID),
"bucket": BUCKET,
"grafana-commit": GRAFANA_COMMIT,
"source-event": SOURCE_EVENT,
"upstream": REPO,
}
})
@@ -126,27 +140,36 @@ jobs:
# The downside to this is that the frontend will be built for each one when it could be reused for all of them.
# This could be a future improvement.
include:
- name: linux-amd64
- name: linux-amd64 # publish-npm relies on this step building npm packages
artifacts: targz:grafana:linux/amd64,deb:grafana:linux/amd64,rpm:grafana:linux/amd64,docker:grafana:linux/amd64,docker:grafana:linux/amd64:ubuntu,npm:grafana,storybook
verify: true
- name: linux-arm64
artifacts: targz:grafana:linux/arm64,deb:grafana:linux/arm64,rpm:grafana:linux/arm64,docker:grafana:linux/arm64,docker:grafana:linux/arm64:ubuntu
verify: false
- name: linux-s390x
artifacts: targz:grafana:linux/s390x,deb:grafana:linux/s390x,rpm:grafana:linux/s390x,docker:grafana:linux/s390x,docker:grafana:linux/s390x:ubuntu
verify: true
- name: linux-armv7
artifacts: targz:grafana:linux/arm/v7,deb:grafana:linux/arm/v7,docker:grafana:linux/arm/v7,docker:grafana:linux/arm/v7:ubuntu
verify: true
- name: linux-armv6
artifacts: targz:grafana:linux/arm/v6,deb:grafana:linux/arm/v6
verify: true
- name: windows-amd64
artifacts: targz:grafana:windows/amd64,zip:grafana:windows/amd64,msi:grafana:windows/amd64
artifacts: targz:grafana:windows/amd64:nocgo,zip:grafana:windows/amd64:nocgo,msi:grafana:windows/amd64:nocgo
verify: true
- name: windows-arm64
artifacts: targz:grafana:windows/arm64,zip:grafana:windows/arm64
artifacts: targz:grafana:windows/arm64:nocgo,zip:grafana:windows/arm64:nocgo
verify: true
- name: darwin-amd64
artifacts: targz:grafana:darwin/amd64
artifacts: targz:grafana:darwin/amd64:nocgo
verify: true
- name: darwin-arm64
artifacts: targz:grafana:darwin/arm64
artifacts: targz:grafana:darwin/arm64:nocgo
verify: true
steps:
- uses: grafana/shared-workflows/actions/dockerhub-login@main
- uses: actions/checkout@v4
- uses: grafana/shared-workflows/actions/dockerhub-login@dockerhub-login/v1.0.2
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set up QEMU
@@ -162,7 +185,7 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ needs.setup.outputs.version }}
output: artifacts-${{ matrix.name }}.txt
verify: true
verify: ${{ matrix.verify }}
build-id: ${{ github.run_id }}
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
@@ -174,6 +197,7 @@ jobs:
name: artifacts-${{ matrix.name }}
path: ${{ steps.build.outputs.dist-dir }}
retention-days: 1
publish-artifacts:
name: Upload artifacts
uses: grafana/grafana/.github/workflows/publish-artifact.yml@main
@@ -186,5 +210,138 @@ jobs:
bucket: grafana-prerelease
pattern: artifacts-*
run-id: ${{ github.run_id }}
bucket-path: ${{ needs.setup.outputs.version }}
bucket-path: ${{ needs.setup.outputs.version }}_${{ github.run_id }}
environment: prod
runs-on: ubuntu-x64-small
publish-dockerhub:
if: github.ref_name == 'main'
permissions:
contents: read
id-token: write
runs-on: ubuntu-x64-small
needs:
- setup
- build
steps:
- uses: grafana/shared-workflows/actions/dockerhub-login@dockerhub-login/v1.0.2
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: artifacts-list-linux-amd64
path: .
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: artifacts-list-linux-arm64
path: .
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: artifacts-list-linux-armv7
path: .
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: artifacts-linux-amd64
path: dist
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: artifacts-linux-arm64
path: dist
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: artifacts-linux-armv7
path: dist
- name: Push to Docker Hub
env:
VERSION: ${{ needs.setup.outputs.version }}
run: |
# grep can use a wildcard but then it includes the filename as part of the result and that gets complicated.
# It's easier to use cat to combine the artifact lists
cat artifacts-*.txt > artifacts.txt
grep 'grafana_.*docker.tar.gz$' artifacts.txt | xargs -I % docker load -i % | sed 's/Loaded image: //g' | tee docker_images
while read -r line; do
# This tag will be `grafana/grafana-image-tags:...`
docker push "$line"
done < docker_images
docker manifest create grafana/grafana:main "grafana/grafana-image-tags:${VERSION}-amd64" "grafana/grafana-image-tags:${VERSION}-arm64" "grafana/grafana-image-tags:${VERSION}-armv7"
docker manifest create grafana/grafana:main-ubuntu "grafana/grafana-image-tags:${VERSION}-ubuntu-amd64" "grafana/grafana-image-tags:${VERSION}-ubuntu-arm64" "grafana/grafana-image-tags:${VERSION}-ubuntu-armv7"
docker manifest create "grafana/grafana-dev:${VERSION}" "grafana/grafana-image-tags:${VERSION}-amd64" "grafana/grafana-image-tags:${VERSION}-arm64" "grafana/grafana-image-tags:${VERSION}-armv7"
docker manifest create "grafana/grafana-dev:${VERSION}-ubuntu" "grafana/grafana-image-tags:${VERSION}-ubuntu-amd64" "grafana/grafana-image-tags:${VERSION}-ubuntu-arm64" "grafana/grafana-image-tags:${VERSION}-ubuntu-armv7"
docker manifest push grafana/grafana:main
docker manifest push grafana/grafana:main-ubuntu
docker manifest push "grafana/grafana-dev:${VERSION}"
docker manifest push "grafana/grafana-dev:${VERSION}-ubuntu"
publish-npm-canaries:
if: github.ref_name == 'main'
name: Publish NPM canaries
uses: ./.github/workflows/release-npm.yml
permissions:
contents: read
id-token: write
needs:
- setup
- build
with:
grafana_commit: ${{ needs.setup.outputs.grafana-commit }}
version: ${{ needs.setup.outputs.version }}
build_id: ${{ github.run_id }}
version_type: "canary"
# notify-pr creates (or updates) a comment in a pull request to link to this workflow where the release artifacts are
# being built.
notify-pr:
runs-on: ubuntu-x64-small
permissions:
contents: read
id-token: write
needs:
- setup
steps:
- id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
repo_secrets: |
GRAFANA_DELIVERY_BOT_APP_PEM=delivery-bot-app:PRIVATE_KEY
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
app_id: ${{ vars.DELIVERY_BOT_APP_ID }}
private_key: ${{ env.GRAFANA_DELIVERY_BOT_APP_PEM }}
repositories: '["grafana"]'
permissions: '{"issues": "write", "pull_requests": "write", "contents": "read"}'
- name: Find PR
continue-on-error: true
id: find-pr
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
GRAFANA_COMMIT: ${{ needs.setup.outputs.grafana-commit }}
REPO: ${{ github.repository }}
run: |
set -eo pipefail
gh api "/repos/${REPO}/commits/${GRAFANA_COMMIT}/pulls" | jq -r '.[0].number' | tee issue_number.txt
echo "ISSUE_NUMBER=$(cat issue_number.txt)" >> "$GITHUB_ENV"
- name: Find Comment
uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e # v3
if: ${{ steps.find-pr.outcome == 'success' }}
id: fc
continue-on-error: true
with:
issue-number: ${{ env.ISSUE_NUMBER }}
comment-author: 'grafana-delivery-bot[bot]'
body-includes: GitHub Actions Build
token: ${{ steps.generate_token.outputs.token }}
- name: Create or update comment
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v4
if: ${{ steps.find-pr.outcome == 'success' }} # Run even if comment wasn't found
with:
token: ${{ steps.generate_token.outputs.token }}
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ env.ISSUE_NUMBER }}
body: |
:rocket: Your submission is now being built and packaged.
- [GitHub Actions Build](https://github.com/grafana/grafana/actions/runs/${{ github.run_id }})
- Version: ${{ needs.setup.outputs.version }}
edit-mode: replace

View File

@@ -80,7 +80,7 @@ jobs:
create_security_branch_grafana:
name: Create security branch (Grafana Security Mirror)
needs: setup
uses: ./.github/workflows/create-security-branch.yml
uses: grafana/grafana/.github/workflows/create-security-branch.yml@main
with:
release_branch: ${{ needs.setup.outputs.release_branch }}
security_branch_number: "01"
@@ -88,7 +88,7 @@ jobs:
create_security_branch_enterprise:
name: Create security branch (Enterprise)
needs: setup
uses: ./.github/workflows/create-security-branch.yml
uses: grafana/grafana/.github/workflows/create-security-branch.yml@main
with:
release_branch: ${{ needs.setup.outputs.release_branch }}
security_branch_number: "01"

129
.github/workflows/release-npm.yml vendored Normal file
View File

@@ -0,0 +1,129 @@
name: Release NPM packages
run-name: Publish NPM ${{ inputs.version_type }} ${{ inputs.version }}
on:
workflow_call:
inputs:
grafana_commit:
description: 'Grafana commit SHA to build against'
required: true
type: string
version:
description: 'Version to publish as'
required: true
type: string
build_id:
description: 'Run ID from the original release-build workflow'
required: true
type: string
version_type:
description: 'Version type (canary, nightly, stable)'
required: true
type: string
workflow_dispatch:
inputs:
grafana_commit:
description: 'Grafana commit SHA to build against'
required: true
version:
description: 'Version to publish as'
required: true
build_id:
description: 'Run ID from the original release-build workflow'
required: true
version_type:
description: 'Version type (canary, nightly, stable)'
required: true
permissions: {}
jobs:
# If called with version_type 'canary' or 'stable', build + publish to NPM
# If called with version_type 'nightly', do nothing (we're not yet tagging them with the nightly tag)
publish:
name: Publish NPM packages
runs-on: github-hosted-ubuntu-x64-small
if: inputs.version_type == 'canary' || inputs.version_type == 'stable'
# Required for this workflow to have permission to publish NPM packages
environment: npm-publish
permissions:
contents: read
id-token: write
steps:
- name: Info
env:
GITHUB_REF: ${{ github.ref }}
GRAFANA_COMMIT: ${{ inputs.grafana_commit }}
run: |
echo "GRAFANA_COMMIT: $GRAFANA_COMMIT"
echo "github.ref: $GITHUB_REF"
- name: Checkout workflow ref
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 100
fetch-tags: false
# this will fail with "{commit} is not a valid commit" if the commit is valid but
# not in the last 100 commits.
- name: Verify commit is in workflow HEAD
env:
GIT_COMMIT: ${{ inputs.grafana_commit }}
run: ./.github/workflows/scripts/validate-commit-in-head.sh
shell: bash
- name: Map version type to NPM tag
id: npm-tag
env:
VERSION: ${{ inputs.version }}
VERSION_TYPE: ${{ inputs.version_type }}
REFERENCE_PKG: "@grafana/runtime"
run: |
TAG=$(./.github/workflows/scripts/determine-npm-tag.sh)
echo "NPM_TAG=$TAG" >> "$GITHUB_OUTPUT"
shell: bash
- name: Checkout build commit
uses: actions/checkout@v4
with:
persist-credentials: false
ref: ${{ inputs.grafana_commit }}
- name: Setup Node
uses: ./.github/actions/setup-node
# Trusted Publishing is only available in npm v11.5.1 and later
- name: Update npm
run: npm install -g npm@^11.5.1
- name: Install dependencies
run: yarn install --immutable
- name: Typecheck packages
run: yarn run packages:typecheck
- name: Version, build, and pack packages
env:
VERSION: ${{ inputs.version }}
run: |
yarn run packages:build
yarn lerna version "$VERSION" \
--exact \
--no-git-tag-version \
--no-push \
--force-publish \
--yes
yarn run packages:pack
- name: Debug packed files
run: tree -a ./npm-artifacts
- name: Validate packages
run: ./scripts/validate-npm-packages.sh
- name: Publish packages
env:
NPM_TAG: ${{ steps.npm-tag.outputs.NPM_TAG }}
run: ./scripts/publish-npm-packages.sh --dist-tag "$NPM_TAG" --registry 'https://registry.npmjs.org/'

View File

@@ -136,7 +136,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
- uses: actions/setup-go@v5
- uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
- name: Configure git user
@@ -198,6 +198,7 @@ jobs:
if: ${{ inputs.bump == true || inputs.bump == 'true' }}
uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
version: 0.18.8
verb: run
args: go run -C .grafana-main ./pkg/build/actions/bump-version -version="patch"
@@ -208,7 +209,7 @@ jobs:
if: ${{ inputs.bump == true || inputs.bump == 'true' }}
run: |
git add package.json lerna.json yarn.lock packages public
test -e e2e/test-plugins && git add e2e/test-plugins
test -e e2e-playwright/test-plugins && git add e2e-playwright/test-plugins
git commit -m "Update version to $VERSION"
- name: Git push

33
.github/workflows/relyance-scan.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Relyance Compliance Inspection
on:
schedule:
- cron: '0 0 * * *' # Run daily at 00:00 UTC
workflow_dispatch: # Allow for manual trigger
jobs:
relyance-compliance-inspector:
permissions:
contents: read
id-token: write # Needed for Vault access
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Get API key
id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@5d7e361bc7e0a183cde8afe9899fb7b596d2659b # get-vault-secrets-v1.2.0
with:
repo_secrets: |
API_KEY=relyance:API_KEY
- name: Run Relyance scan
env:
API_KEY: "${{ fromJSON(steps.vault-secrets.outputs.secrets).API_KEY }}"
run: |
docker pull gcr.io/relyance-ext/compliance_inspector:release && \
docker run --rm -v ${{ github.workspace }}:/repo --env "API_KEY=${{ env.API_KEY }}" gcr.io/relyance-ext/compliance_inspector:release

View File

@@ -29,7 +29,7 @@ jobs:
with:
persist-credentials: false
- name: Pin Go version to mod file
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: 'go.mod'
cache: true
@@ -51,7 +51,7 @@ jobs:
run: yarn install --immutable
- name: Install Cypress dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f
uses: cypress-io/github-action@b8ba51a856ba5f4c15cf39007636d4ab04f23e3c
with:
runTests: false
- name: Cache Grafana Build and Dependencies
@@ -64,7 +64,7 @@ jobs:
tools/
public/
conf/
e2e/test-plugins/
e2e-playwright/test-plugins/
devenv/
key: ${{ runner.os }}-grafana-${{ hashFiles('go.mod', 'package-lock.json', 'Makefile', 'pkg/storage/**/*.go', 'public/app/features/search/**/*.ts', 'public/app/features/search/**/*.tsx') }}
# only rebuild grafana if search files have changed ( or dependencies )
@@ -116,7 +116,7 @@ jobs:
tools/
public/
conf/
e2e/test-plugins/
e2e-playwright/test-plugins/
devenv/
key: ${{ runner.os }}-grafana-${{ hashFiles('go.mod', 'package-lock.json', 'Makefile', 'pkg/storage/**/*.go', 'public/app/features/search/**/*.ts', 'public/app/features/search/**/*.tsx') }}
- name: Set the step name

View File

@@ -13,7 +13,7 @@ env:
jobs:
dashboard-schema-v2-e2e:
runs-on: ubuntu-latest
runs-on: ubuntu-latest-8-cores
continue-on-error: true
if: github.event.pull_request.draft == false
steps:
@@ -22,7 +22,7 @@ jobs:
with:
persist-credentials: false
- name: Pin Go version to mod file
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: 'go.mod'
- run: go version
@@ -32,12 +32,10 @@ jobs:
cache: 'yarn'
- name: Install dependencies
run: yarn install --immutable
- name: Install Playwright browsers
run: yarn playwright install --with-deps chromium
- name: Build grafana
run: make build
- name: Install Cypress dependencies
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f
with:
runTests: false
- name: Run dashboard scenes e2e
run: yarn e2e:schema-v2 || echo "Test failed but marking as success since schema V2 is behind a feature flag and should not block PRs"

View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
set -euo pipefail
fail() { echo "Error: $*" >&2; exit 1; }
# Ensure required variables are set
if [[ -z "${REFERENCE_PKG}" || -z "${VERSION_TYPE}" || -z "${VERSION}" ]]; then
fail "Missing required environment variables: REFERENCE_PKG, VERSION_TYPE, VERSION"
fi
semver_cmp () {
IFS='.' read -r -a arr_a <<< "$1"
IFS='.' read -r -a arr_b <<< "$2"
for i in 0 1 2; do
local aa=${arr_a[i]:-0}
local bb=${arr_b[i]:-0}
# shellcheck disable=SC2004
if (( 10#$aa > 10#$bb )); then echo gt; return 0; fi
if (( 10#$aa < 10#$bb )); then echo lt; return 0; fi
done
echo "eq"
}
STABLE_REGEX='^([0-9]+)\.([0-9]+)\.([0-9]+)$' # x.y.z
PRE_REGEX='^([0-9]+)\.([0-9]+)\.([0-9]+)-([0-9]+)$' # x.y.z-123456
# Validate that the VERSION matches VERSION_TYPE
# - stable must be x.y.z
# - nightly/canary must be x.y.z-123456
case "$VERSION_TYPE" in
stable)
[[ $VERSION =~ $STABLE_REGEX ]] || fail "For 'stable', version must match x.y.z" ;;
nightly|canary)
[[ $VERSION =~ $PRE_REGEX ]] || fail "For '$VERSION_TYPE', version must match x.y.z-123456" ;;
*)
fail "Unknown version_type '$VERSION_TYPE'" ;;
esac
# Extract major, minor from VERSION
IFS=.- read -r major minor patch _ <<< "$VERSION"
# Determine NPM tag
case "$VERSION_TYPE" in
canary) TAG="canary" ;;
nightly) TAG="nightly" ;;
stable)
# Use npm dist-tag "latest" as the reference
LATEST="$(npm view --silent "$REFERENCE_PKG" dist-tags.latest 2>/dev/null || true)"
echo "Latest for $REFERENCE_PKG is ${LATEST:-<none>}" >&2
if [[ -z ${LATEST:-} ]]; then
TAG="latest" # first ever publish
else
case "$(semver_cmp "$VERSION" "$LATEST")" in
gt) TAG="latest" ;; # newer than reference -> latest
lt|eq) TAG="v${major}.${minor}-latest" ;; # older or equal -> vX.Y-latest
esac
fi
;;
esac
echo "Resolved NPM_TAG=$TAG (VERSION=$VERSION, current latest=${LATEST:-none})" 1>&2 # stderr
printf '%s' "$TAG"

View File

@@ -0,0 +1,75 @@
import fs from 'node:fs'
interface Payload {
name: string;
value: number;
interval: number;
mtype: string;
time: number;
}
console.log("Publishing metrics");
// Get API key from environment variable
const key = process.env.GRAFANA_MISC_STATS_API_KEY;
if (!key) {
throw new Error("API key is required. Provide it via the GRAFANA_MISC_STATS_API_KEY environment variable");
}
const unixTimestamp = Math.floor(Date.now() / 1000);
const data: Payload[] = [];
const input = fs.readFileSync(0, "utf-8");
// parse metrics from input
const regexp = /^Metrics: (\{.+\})/ms;
const matches = input.match(regexp);
if (!matches) {
throw new Error("No metrics found");
}
console.log('matches[0]', matches[0])
console.log('matches[1]', matches[1])
const metrics: Record<string, string> = JSON.parse(matches[1]);
// Convert metrics to payload format
for (const [metricName, valueStr] of Object.entries(metrics)) {
const value = parseInt(valueStr, 10);
if (isNaN(value)) {
throw new Error(`Metric "${metricName}" has invalid value format: "${valueStr}"`);
}
data.push({
name: metricName,
value: value,
interval: 60,
mtype: "gauge",
time: unixTimestamp,
});
}
const jsonPayload = JSON.stringify(data);
console.log(`Publishing metrics to https://graphite-us-central1.grafana.net/metrics, JSON: ${jsonPayload}`);
const url = 'https://graphite-us-central1.grafana.net/metrics';
const username = '6371';
const headers = new Headers();
headers.set("Content-Type", "application/json");
headers.set('Authorization', 'Basic ' + Buffer.from(username + ":" + key).toString('base64'));
try {
const response = await fetch(url, {
method: "POST",
headers,
body: jsonPayload,
});
if (!response.ok) {
throw new Error(`Metrics publishing failed with status code ${response.status}`);
}
console.log("Metrics successfully published");
} catch (error) {
throw new Error(`Metrics publishing failed: ${error instanceof Error ? error.message : String(error)}`);
}

View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ -z "${GIT_COMMIT:-}" ]]; then
echo "Error: Environment variable GIT_COMMIT is required"
exit 1
fi
if git merge-base --is-ancestor "$GIT_COMMIT" HEAD; then
echo "Commit $GIT_COMMIT is contained in HEAD"
else
echo "Error: Commit $GIT_COMMIT is not contained in HEAD"
exit 1
fi

View File

@@ -15,6 +15,8 @@ permissions: {}
jobs:
shellcheck:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Shellcheck scripts
runs-on: ubuntu-latest
permissions:

57
.github/workflows/storybook-a11y.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Run Storybook a11y tests
on:
pull_request:
push:
branches:
- main
- release-*.*.*
permissions: {}
jobs:
detect-changes:
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.frontend }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/storybook-a11y.yml
test-storybook-a11y:
runs-on: ubuntu-latest-8-cores
permissions:
contents: read
id-token: write
needs: detect-changes
if: needs.detect-changes.outputs.changed == 'true'
name: "Run Storybook a11y tests"
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: yarn install --immutable --check-cache
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Start Storybook
run: yarn storybook &
- name: Run tests
# the chromium browser used by Playwright sets its locale to "en_US@posix" by default
# this is not a valid language code, and causes some stories to fail to load!
# instead, we set the LANG environment variable to en_US to override this
# see https://github.com/microsoft/playwright/issues/34046
env:
LANG: en_US
run: npx wait-on --timeout 120000 http://localhost:9001 && yarn test:storybook

View File

@@ -1,52 +0,0 @@
name: Verify Storybook
on:
pull_request:
paths:
- 'packages/grafana-ui/**'
- '!docs/**'
- '!*.md'
push:
branches:
- main
paths:
- 'packages/grafana-ui/**'
- '!docs/**'
- '!*.md'
permissions: {}
jobs:
verify-storybook:
name: Verify Storybook
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: yarn install --immutable
- name: Run Storybook and E2E tests
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f
with:
browser: chrome
start: yarn storybook --quiet
wait-on: 'http://localhost:9001'
wait-on-timeout: 60
command: yarn e2e:storybook
install: false
env:
HOST: localhost
PORT: 9001

View File

@@ -14,10 +14,31 @@ concurrency:
cancel-in-progress: true
jobs:
detect-changes:
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'grafana/grafana'))
name: Detect whether code changed
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
changed: ${{ steps.detect-changes.outputs.backend }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true # required to get more history in the changed-files action
fetch-depth: 2
- name: Detect changes
id: detect-changes
uses: ./.github/actions/change-detection
with:
self: .github/workflows/swagger-gen.yml
verify:
name: Verify committed API specs match
runs-on: ubuntu-latest
if: ${{ github.repository == 'grafana/grafana' }}
needs: detect-changes
if: github.repository == 'grafana/grafana' && needs.detect-changes.outputs.changed == 'true'
permissions:
contents: read # clone the repository
id-token: write # required for Vault access
@@ -28,7 +49,7 @@ jobs:
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
uses: actions/setup-go@v5.5.0
with:
go-version-file: go.mod
- name: Setup Enterprise

View File

@@ -22,7 +22,8 @@ env:
jobs:
trigger-search-e2e:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
# Run on `grafana/grafana` main branch, or on pull requests to prevent double-running on mirrors
if: (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || (github.event_name == 'push' && github.repository == 'grafana/grafana')
steps:
- name: Trigger Dashboard Search E2E
run: echo "Triggered Dashboard Search e2e..."
run: echo "Triggered Dashboard Search e2e..."

View File

@@ -21,15 +21,16 @@ jobs:
contents: read # clone the repo
steps:
- name: Calculate fetch depth
id: fetch_depth
shell: bash
run: echo "fetch_depth=$(( ${{ github.event.pull_request.commits }} + 2 ))" >> "$GITHUB_OUTPUT"
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
ref: ${{ github.head_ref }}
fetch-depth: ${{ steps.fetch_depth.outputs.fetch_depth }}
- name: Trufflehog
uses: trufflesecurity/trufflehog@90190deac64289cb10bb694894be8db9ead8790b # v3.88.29
uses: trufflesecurity/trufflehog@eafb8c5f6a06175141c27f17bcc17941853d0047 # v3.90.0
with:
base: ${{ github.event.pull_request.base.sha }}
head: ${{ github.event.pull_request.head.sha }}
extra_args: --results=verified

View File

@@ -17,7 +17,7 @@ jobs:
persist-credentials: false
- name: "Setup Go"
uses: "actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639"
uses: "actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5"
with:
go-version-file: go.mod

15
.gitignore vendored
View File

@@ -94,6 +94,8 @@ example-apiserver/
/devenv/docker/blocks/auth/openldap/certs/
conf/custom.ini
conf/operator.ini
conf/storage.ini
/conf/provisioning/**/*.yaml
!/conf/provisioning/**/sample.yaml
@@ -117,6 +119,9 @@ profile.cov
/pkg/server/wireexts_enterprise.go
/pkg/server/enterprise_wire_gen.go
/pkg/build/cmd/enterprise.go
/pkg/build/cmd/artifactspage.go
/pkg/build/cmd/artifactspage.tmpl.html
/pkg/build/cmd/exportversion.go
/pkg/extensions/*
!/pkg/extensions/.keep
!/pkg/extensions/main.go
@@ -186,6 +191,8 @@ compilation-stats.json
/e2e/build_results.zip
/e2e/extensions
!/e2e/extensions/.keep
/e2e-playwright/extensions
!/e2e-playwright/extensions/.keep
/e2e/extensions-suite
/test-results/
/playwright-report/
@@ -215,7 +222,6 @@ public/api-spec.json
deployment_tools_config.json
.betterer.cache
.nx
# Temporary file for backporting PRs
@@ -237,4 +243,9 @@ public/app/plugins/**/dist/
# Mock service worker used for fake API responses in frontend development
public/mockServiceWorker.js
/e2e/test-plugins/*/dist
/e2e-playwright/test-plugins/*/dist
/apps/provisioning/cmd/job-controller/bin/
# Ignore unified storage kv store files
/grafana-kv-data

View File

@@ -83,6 +83,14 @@ linters:
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apps/playlist is not allowed to import grafana core
apps-secret:
list-mode: lax
files:
- ./apps/secret/*
- ./apps/secret/**/*
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apps/secret is not allowed to import grafana core
coreplugins:
files:
- '**/pkg/tsdb/grafana-pyroscope-datasource/*'

View File

@@ -5,14 +5,12 @@ build
compiled
data
deployment_tools_config.json
devenv
dist
e2e/tmp
node_modules
pkg
public/lib/monaco
public/sass/*.generated.scss
scripts/cli/bettererIssueTemplate.md
scripts/grafana-server/tmp
vendor
@@ -40,3 +38,9 @@ public/mockServiceWorker.js
/.nx/cache
/.nx/workspace-data
# Playwright results
test-results
playwright-report
eslint-suppressions.json

9
.vscode/launch.json vendored
View File

@@ -120,6 +120,15 @@
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "Debug ESLint with stats reporter",
"type": "node",
"request": "launch",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "eslint", "${file}", "--format", "./scripts/cli/eslint-stats-reporter.mjs"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "Debug Go test",
"type": "go",

Some files were not shown because too many files have changed in this diff Show More