Compare commits

..

910 Commits

Author SHA1 Message Date
Jack Westbrook
a19b14a54a chore(yarn): dedupe lock file 2025-02-18 10:17:58 +01:00
Jack Westbrook
48793907a0 refactor(plugin-configs): use the amd option rather than hacking per node_module for amd deps 2025-02-18 10:17:34 +01:00
Jack Westbrook
c611c0bbd4 build(plugins-config): hacky attempt to work around define.amd umd modules breaking runtime 2025-02-18 10:17:34 +01:00
Jack Westbrook
1a492a0eb8 chore(decoupled-plugins): bump rspack to latest 2025-02-18 10:17:33 +01:00
Jack Westbrook
8df4243a8c chore(e2e-plugins): fix stray rspack/cli version 2025-02-18 10:17:19 +01:00
Jack Westbrook
156e160cfa chore(decoupled-plugins): bump rspack to 1.2.0-beta.0 2025-02-18 10:17:19 +01:00
Jack Westbrook
8d03ea95af chore(decoupled-plugins): update rspack to 1.1.5 2025-02-18 10:17:17 +01:00
Jack Westbrook
5174fd803e Wip 2025-02-18 10:16:58 +01:00
Jack Westbrook
79f13e6280 chore(azuremonitor): fix broken dev script 2025-02-18 10:16:58 +01:00
Jack Westbrook
7166eb8fc4 feat(e2e-test-plugins): migrate plugins to use rspack 2025-02-18 10:16:58 +01:00
Jack Westbrook
b9392dd8a9 build(plugin-configs): add imports-loader to dependencies and require.resolve it 2025-02-18 10:16:57 +01:00
Jack Westbrook
3dfd0b923c chore(mysql): remove redundant rspack dep 2025-02-18 10:16:57 +01:00
Jack Westbrook
3b850fa1df feat(zipkin): migrate to rspack 2025-02-18 10:16:57 +01:00
Jack Westbrook
ed879eef40 feat(tempo): migrate to rspack 2025-02-18 10:16:57 +01:00
Jack Westbrook
eafb09b302 feat(parca): migrate to rspack 2025-02-18 10:16:56 +01:00
Jack Westbrook
e955b3c864 feat(mssql): migrate to rspack 2025-02-18 10:16:56 +01:00
Jack Westbrook
ecaba8b054 feat(jaeger): migrate to rspack 2025-02-18 10:16:56 +01:00
Jack Westbrook
e764556aba feat(testdata): migrate to rspack 2025-02-18 10:16:56 +01:00
Jack Westbrook
6c31fe645c feat(pyroscope): migrate to rspack 2025-02-18 10:16:55 +01:00
Jack Westbrook
0402709e68 feat(postgresql): migrate to rspack 2025-02-18 10:16:55 +01:00
Jack Westbrook
a301c22e2b feat(cloud-monitoring): migrate to rspack 2025-02-18 10:16:55 +01:00
Jack Westbrook
f90c4b9cad feat(azuremonitor): migrate to rspack 2025-02-18 10:16:55 +01:00
Jack Westbrook
f7d1a86122 feat(plugin-configs): put back commit hash to versioning 2025-02-18 10:16:55 +01:00
Jack Westbrook
bbda8c6b6b feat(mssql-datasource): move to use rspack 2025-02-18 10:16:52 +01:00
Jack Westbrook
32af00eff9 feat(plugin-configs): replace webpack with rspack 2025-02-18 10:16:28 +01:00
Karl Persson
4df398c084 Authz: Sync authlib and update authz client setup code (#100817)
* Sync authlib and update setup code for authz client
2025-02-18 09:09:20 +01:00
grafana-pr-automation[bot]
61d959d04b I18n: Download translations from Crowdin (#100850)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-18 02:32:09 +02:00
Matheus Macabu
aceda85a4d Chore: Regenerate go.work.sum (#100816) 2025-02-17 22:44:02 +02:00
Ezequiel Victorero
9df6412e92 Reporting: Add new creation drawer feature flag (#100759)
Reporting: Add new creation drawer
2025-02-17 16:05:46 -03:00
Mat Ryer
ff7ba54cbc Investigations: Add experimental app platform backend (#100584)
* add investigations group?

* Investigations: Add experimental app platform backend

* change `grafana-app-sdk/logging` version

* investigations: add feature flag to test

---------

Co-authored-by: Sven Grossmann <svennergr@gmail.com>
2025-02-17 19:19:22 +01:00
Andrej Ocenas
78ef9fd9d9 QueryLibrary: rename API from peakq to querylibrary (#100813) 2025-02-17 17:49:11 +01:00
Ashley Harrison
7a6f4ced06 Themes: Temporary fix for initialising saved grafanacon themes (#100810)
temporary fix for initialising saved grafanacon themes
2025-02-17 16:39:04 +00:00
Sonia Aguilar
3bb3a74ac1 Alerting: Add tracking for the mode used in query and notifications step when c… (#100824)
Add tracking for the mode used in query and notifications step when creating a grafana rule
2025-02-17 18:09:02 +02:00
Robert Goltz
27837ee937 Chore: Update alpine docker image (minor) - 3.20.5 to 3.20.6 [security] (#100791)
* Chore: Update alpine docker image (minor) - 3.20.5 to 3.20.6 [sec-fixes]

* Chore: Regenerate .drone.yml

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
2025-02-17 16:41:38 +01:00
Sonia Aguilar
67722de343 Alerting: Add DAG errors to alert rule creation and view (#99423)
* catch error in query tab when running query throws an error

* add translations

* fix translations

* update query runner to omit nodes that failed to link

* remove unused function

* add DAG errors to AlertingQueryRunner

* bump CI

* fix test

* update test

* fix i18n

* revert code pieve

* Bring the piece of code back 😁

* bail from runner when no queries are to be executed

* add tests and translations

* refactor prepareQueries to omit broken refs and exclude descendant nodes

* update code comments

* fix omitting descendant nodes

* add all broken or missing nodes to panel errors

* go go drone

* remove unused function

* fix prettier and translations

* add export

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-02-17 16:11:52 +01:00
Hugo Kiyodi Oshiro
29afe7d2cc Plugins: Remove managedPluginsInstall feature toggle (#100416)
* Plugins: Remove managedPluginsInstall feature toggle

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2025-02-17 16:07:41 +01:00
Marcus Andersson
39b424b8a7 PluginExtensions: Making it possible to set secureJsonData on datasource config page. (#100726)
* Added setSecureJsonData to the configure context.

* Exposing which fields are set in secureJsonData.

* removed omit.
2025-02-17 15:20:35 +01:00
Ashley Harrison
60fa83ea53 Theme: ensure feedback link is gated behind config option (#100815)
ensure feedback link is behind config option
2025-02-17 16:15:03 +02:00
Marcus Andersson
84d22e176b PluginExtensions: Exposing registry meta for components returned via usePluginComponents (#100587)
Exposing meta information from registry via Component.meta.
2025-02-17 14:50:35 +01:00
renovate[bot]
187a18ea25 Update dependency i18next-parser to v9.3.0 (#100800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 13:50:19 +00:00
Bogdan Matei
d4fdffc387 Explore: Fix key error (#100812) 2025-02-17 15:37:55 +02:00
Karl Persson
e9b2f69137 Authz: Only have two modes for authz client (#100803)
* Only have "inproc" and "clod" mode
2025-02-17 14:37:25 +01:00
Roberto Jiménez Sánchez
8edfff1bba [Enterprise] Consolidate extensions folders and keep them around (#98486)
* WIP: copy approach

* Fix package name

* Do not ignore .keep for frontend extensions

* Add keep file for frontend extensions

* Tweak makefile to generate enterprise swagger or not

* Remove duplicate imports

* Add build extensions

* Add CMD extensions

* Add keep to e2e extensions

* Add .keep

* Reduce file structure changes

* Ignore boring crypto

* Add e2e extensions keep file

* Remove enterprise file

* Update .gitignore

* Move things around

* Update git ignore

* Consolidate backend extensions folder

* Move enterprise deps

* Update comment

* Do not use build tags

* Ignore setting enterprise

* Revert changes in makefile

* Revert package changes

* Add back extensions main.go

* Update git ignore

* Ignore spanner tests

* Trick ignore files only by git

* Add .ignore file to CODEOWNERS for frontend-ops

* Fix issue with noisy duplicate targets
2025-02-17 14:00:21 +01:00
Sonia Aguilar
2014d27def Alerting: Add alert rule version history - part1 (#99490)
* Add alertingRuleVersionHistory feature toggle

* WIP: Add version history tab

* revert temp change in index.ts

* wip2

* --wip--

* sync code with the BE changes in the endpoint

* add translations

* Add translations

* use ff only for restore feature

* WIP: Add tracking, make version required, and start mapping dif results
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>

* Tweak more translations and improve types

* Add button to show/hide JSON diff

* update type for top level rule fields

* Create types

* Make updated_by/version properties optional

* Update mocks to remove updated by and version

* add comments to restore code

* rename fetature flag, as we use this one only for the restore feature

* Update version history to handle special cases

* Add diff numbers

* Fix conflicts

* Move generic computeVersionDiff to a utils file

* Update DOM structure of version summary and tidy up types

* Add tests for version comparison logic

* Lint fix utils file

* Rename props and add docs

* Change to EmptyState and log when no versions

* Remove CreatedBy component and simplify

* Add missing i18n for version history

* add test for computeVersionDiff

* update test

* fix number diff order and add a test

* fix prettier

* fix prettier

* Add promise resolve back in

* Rename to humanReadableDiff and tweak translation

* Show tab for recording rules as well

* Split components out to separate files

* Add optional interval seconds

* Update i18n

* Remove commented code

* Remove value

* Remove unneeded version

* Consistent rendering of updated by

* Mode parseVersionInfo to a separate pure function

* update invalidate/provide tags for getAlertVersionHistory

* Use checkedVersions state only in the parent component

* update getSpecialUidMap name and create an interface

* Fix prettier

* update tab description

* use set instead of map for checkedVersions

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-02-17 13:25:32 +01:00
Dominik Prokop
c9250c9135 Transformation: Add support for variables to ALL transformations (#100225)
* Transformation: generic support for variables, yay

* clean up value matcher editors

* clean

* clean up filterByValue

* more

* clean

* clean

* more!

* lint

* Revert "Transformation: generic support for variables, yay"

This reverts commit deec7c306b.

* Bump scenes to canary

* filterByValue - remove irrelevant tests

* filterByName tests update

* calculateField test update

* nit

* is that gonna work?

* Update grafana-data tscnig config to use grafana-ui's react table types

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
2025-02-17 13:07:11 +01:00
Tobias Skarhed
f15c961a90 MultiCombobox: Add basic docs and make story public (#100806)
* MutliCombobox: Add basic docs and make story public

* Apply suggestions from code review

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-02-17 13:52:11 +02:00
Oscar Kilhed
855eadcabd Dashboards: Tabs layout persistence (#100485)
* Tabs layout persistence

* fix lint issue

* Add tests, add tabs serializer to registry

* Fix deserialize tabs

* more tests

* tab item title optional

* change TabItemKind -> TabLayoutTabKind

* add tests for tabs serializer

* fix name in test

* Fix test after renaming tabs
2025-02-17 12:50:26 +01:00
Jack Westbrook
497491846e Grafana Prometheus: Clean up package dependencies (#97398)
* chore(grafana-prometheus): use knip to clean up deps and dev deps

* update

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2025-02-17 12:48:17 +01:00
Mariell Hoversholm
f535a7804f Provisioning: Update types (#100722)
* Provisioning: Remove S3

* Provisioning: Use URL for GitHub

Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Provisioning: Use workflow list

Co-Authored-By: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>

* Provisioning: Model secrets

* Provisioning: Define a total in the job summary

* Provisioning: Generate code

* Provisioning: Update testdata

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
2025-02-17 12:45:23 +01:00
Ashley Harrison
a05ba6ff41 Theme: minor tweaks (#100751)
* theme tweaks!

* remove commented code
2025-02-17 11:37:03 +00:00
Karl Persson
6eeb28e312 Authn: use authenticator for grpc (#99573)
* Remove usage of grpc-authenticator

* Cleanup client construction code
2025-02-17 10:58:59 +01:00
Charandas
ea788975e0 K8s: refactor build handler chain func to allow easier injection from enterprise (#100777) 2025-02-15 04:08:00 +02:00
grafana-pr-automation[bot]
e5b49a406f I18n: Download translations from Crowdin (#100774)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-15 02:36:23 +02:00
Staton Hysell
89e85c1592 Added width style to the action button (#100768)
* Added width style to the action button

* Fix typo
2025-02-14 18:09:18 -05:00
Stephanie Hingtgen
9494e6eb37 K8s: Search fallback: Support tag search (#100767) 2025-02-14 16:57:10 -05:00
Stephanie Hingtgen
b89fd287c7 K8s: Dashboards: Fix history list (#100763) 2025-02-14 22:12:18 +02:00
Will Assis
77fd572973 dont return not found error in mode 2 (#100758)
* dual writer: dont return not found error in mode 2 when failing to find object in unistore
2025-02-14 20:39:51 +02:00
Kevin Minehart
cd30f3839d Update whatsnewURL in package.json (#100753) 2025-02-14 19:45:49 +02:00
Todd Treece
30ae434a2e K8s: Support multiple versions in builder (#100331) 2025-02-14 12:29:43 -05:00
Ashley Harrison
39db59fc73 Chore: remove the queryLibraryDashboards toggle since we didn't end up using it (#100749)
remove the queryLibraryDashboards toggle since we didn't end up using it
2025-02-14 16:39:22 +00:00
Josh Hunt
589340e03c GrafanaUI: Deprecate Select in favor of Combobox (#100294)
* GrafanaUI: Deprecate Select

* add deprecated decorator to stories

* tweak message
2025-02-14 16:07:26 +00:00
Mihai Doarna
dc5602bad9 SSO: Fix team_ids validation for Generic OAuth (#100732)
fix team_ids validation in the API
2025-02-14 17:57:28 +02:00
Alexander Akhmetov
cbae35c28b Alerting: Delete protobuf alert rule state on alert rule deletion (#100736) 2025-02-14 16:56:14 +01:00
Tito Lins
e343cb5ac9 Alerting: Stop running AM integration tests on CI (#100702) 2025-02-14 16:55:20 +01:00
Bogdan Matei
6bd1041cda Dashboard: Fix panel edits for repeats (#100658) 2025-02-14 17:42:10 +02:00
Peter Štibraný
d0394bfa7e Extract NewSearchOptions from unified sql client setup. (#100719)
* Extract NewSearchOptions from unified sql client setup.

Co-authored-by: Georges Chaudy <chaudyg@gmail.com>
2025-02-14 16:39:48 +01:00
Josh Hunt
861686adaa Combobox: Tighten up storybook documentation (#100313)
* Add JSDoc comments to more props

* Remove in-dev decorator

* reword MDX documentation and add migration guide
2025-02-14 17:34:44 +02:00
Agnès Toulet
37ee1c427d Plugins: Upgrade grafana-plugin-sdk to 0.266.0 (#100727) 2025-02-14 16:33:45 +01:00
Jean-Philippe Quéméner
c522a5b13b fix(unified-storage): proper setup TLS in new db_engine for MySQL (#100686) 2025-02-14 16:23:25 +01:00
Kyle Brandt
4d7b9a3c77 SQL Expressions: Improve response to frame conversion handling (#100625)
- use types.Convert to get a more normalized type returned from GMS. After syncing with GMS maintainers, the underlying type of the row could be different things (e.g. int when unit32, so this calls the Convert method from the GMS types library to normalize the interface.
- Clean up fieldValFromRow more
- Use IsText to capture different string types
- Add more types to test, also update test to use same cmp.Diff method as others

---------

Co-authored-by: Sam Jewell <2903904+samjewell@users.noreply.github.com>
2025-02-14 17:21:08 +02:00
Kevin Minehart
3a8a24e662 Docker: Missing libresolv.so.2 from glibc (#100729)
* Docker: Missing libresolv.so.2 from glibc

* Misplaced &&
2025-02-14 08:54:36 -06:00
Ashley Harrison
b9034f413e Query library: Refactor to use onSelectQuery callback (#100360)
* starting to refactor query library to use callback

* replace QueryActionButton with onSelectQuery

* hook up properly in explore

* fix unit tests

* i18n

* extract types

* fix refId in explore

* fix unit tests

* handle changing datasource to mixed

* enrich queries with datasource

* move out into separate function

* filter out expression datasources
2025-02-14 14:44:47 +00:00
Carl Bergquist
9cff383830 scopenodes: check if the query exists in the title instead of starts with the query (#100578)
scopenodes: check if the string contains the search param instead of limiting to prefix

Signed-off-by: bergquist <carl.bergquist@gmail.com>
2025-02-14 09:21:35 -05:00
Carl Bergquist
23a657a72d scopes: adds more logging details to the scopedashboard query (#100267)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2025-02-14 09:20:07 -05:00
Kyle Brandt
c291ec7ba9 SQL Expressions: Include SQL Parser/Syntax error in the public message (#100725)
fixes #100721
2025-02-14 09:09:21 -05:00
beejeebus
196a73ec72 influxdb - fix nil pointer usage - fixes #100723 (#100724)
When introducing errorsource over in:

https://github.com/grafana/grafana/pull/99900

I introduced a bug - trying to use a http response with a non-nil error.
In that case, the response is nil, so code panics.

This PR removes that check.
2025-02-14 08:25:26 -05:00
Sonia Aguilar
af8cab9210 Alerting: Add Jira integration to cloud AMs (#100482)
* Add Jira integration to cloud AMs

* Add alertingJiraIntegration feature toggle for jira integration

* Update integration name to Jira Service Management

* address pr comments

* gen ff

* add project to the getReceiverDescription for jira

* Update getReceiverDescription for jira

* update text

* update texts and add required option

* Add conversion for fields jira integration to JSON format in the dto and viceversa

* add tests

* Add translation for jira receiver summary

* Add placeholder for Jira duration option

* move logic cheking integrtion type outside the conversion method

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-02-14 13:22:04 +01:00
Gilles De Mey
101c590f34 Revert "Alerting: Fix loading states" (#100717)
Revert "Alerting: Fix loading states (#100641)"

This reverts commit ba3a90d8fd.
2025-02-14 13:04:19 +01:00
Matias Chomicki
b814f1628f New Logs Panel: Add infinite scrolling support (#99773)
* Create Infinite Scroll wrapper component

* Logs list: refactor event subscriber

* Infinitely load logs

* Move renderer to Infinite Scroll component

* Implement infinite scroll state

* Switch internal implementation to use the existing infinite scrolling component logic

* Integrate with logs panel

* Move scrolling management to infinite scrolling component

* LogList: change subscription dependency to prevent unnecessary runs

* Infinite scroll: remove autoscrolling

* Logs Panel: fix dependencies to prevent re-renders on refresh

* Infinite scroll: introduce pre-scroll state

* LogList: expose initial log position prop

* Infinite scroll: less work on scroll and autoscroll behavior

* Remove console

* Fix imports

* Add infinite scroll translations

* Fix imports

* Add visual delimiter for new pages and increase gap

* Remove log

* Chore: rename interface to LogListModel

* Hover: decrease opacity

* Fix no-logs state

* Prettier

* Infinite scroll: move scroll delimiter

* Load more message: make it clickable
2025-02-14 13:52:34 +02:00
Sonia Aguilar
9e3872f8dd Alerting: Disable create rule menu item from panel when unifiedAlerting is disabled (#100701)
* add config.unifiedAlertingEnabled check to render create alerts menu item from panels

* Disable create rule from panel when unifiedAlerting is disabled

* fix test and lint

* fix test
2025-02-14 13:38:32 +02:00
Peter Štibraný
1856d47e47 Remove GetResourceClient hack from unified package. (#100636)
* Remove GetResourceClient hack from unified package.
2025-02-14 12:34:52 +01:00
Andrej Ocenas
d092998927 Query Library: Move backend to enterprise (#100371)
* Move files to enterprise

* Remove last parts of QL api

* Fix CODEOWNERS
2025-02-14 11:05:03 +00:00
Gilles De Mey
ba3a90d8fd Alerting: Fix loading states (#100641) 2025-02-14 11:38:38 +01:00
Georges Chaudy
9d68c4f665 unified: allow customising the ProvideUnifiedStorageClient (#100704)
* unified: allow customising the ProvideUnifiedStorageClient

* fix go mod
2025-02-14 11:26:51 +01:00
github-actions[bot]
cf2a7687e0 Update make docs procedure (#100167)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-02-14 10:26:29 +00:00
Georges Chaudy
b1222be02e unistore: add small buffer of watched events (#100431)
* change log level

* Add a small buffer when watching events
2025-02-14 12:18:59 +02:00
Pepe Cano
f1b4678012 Alerting docs: update Configure Webhook notifications (#100650)
* Alerting docs: update `Configure Webhook notifications`

* fix typo

* fix typo

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier.md

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>

* Update docs/sources/alerting/configure-notifications/manage-contact-points/integrations/webhook-notifier.md

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>

* fix typo

* Add `Note` to  configure either HTTP Basic Authentication or the Authorization request header

* Use `inline` format for JSON keys

---------

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2025-02-14 11:04:08 +01:00
Alex Khomenko
da66060f75 Grafana/ui: Export UsersIndicator (#100698)
grafana-ui: Export UsersIndicator
2025-02-14 11:58:42 +02:00
Alex Khomenko
dc3de1a1d5 Badge: Add darkgrey color (#100699) 2025-02-14 11:57:30 +02:00
Karl Persson
d8b26b0a31 Search: Search dashboards without a parent (#100615)
* Search dashboards without a parent
2025-02-14 10:39:57 +01:00
Andres Martinez Gotor
12bb50f97f Advisor: Make evaluation interval and max history configurable (#100534) 2025-02-14 10:05:34 +01:00
grafana-pr-automation[bot]
7f20495289 I18n: Download translations from Crowdin (#100689)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-14 02:30:34 +02:00
Stephanie Hingtgen
1c2f4e35bf Frontend tests: comment out flaky test (#100685) 2025-02-14 00:44:15 +02:00
Will Assis
c963032915 search: handle "sharedwithme" use-case in both legacy/US modes (#100286)
* handle "sharedwithme" use-case in both legacy/US modes

* display "Shared with me" as location in dashboard list

* fix missing "TotalHits" prop in mode 2
2025-02-13 15:56:29 -05:00
Stephanie Hingtgen
e2081c3e0c K8s: Fix legacy fallback provisioning (#100566) 2025-02-13 21:32:25 +02:00
Brendan O'Handley
3b694785f3 Explore metrics: Use combobox for adhoc filters (#100151)
use combobox for adhoc filters
2025-02-13 12:58:29 -06:00
Brendan O'Handley
964f3d0cad Explore metrics: Remove operators =| and !=| from adhoc filters (#100300)
Remove operators =| and !=| from adhoc filters
2025-02-13 12:58:07 -06:00
Ariana
d81c4b3c42 Docs: Updating SAML UI Docs for Azure specific attributes (#100565)
* Updating SAML for Azure specific attribute structures

Adding additional context surrounding SAML via Azure where the full attribute URL needs to be specified or it will not map correctly. 

This generates a lot of support contacts and isn't documented causing friction when organizations can't set it up themselves or lack the technical staff to self manage.

* run prettier

---------

Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
2025-02-13 19:46:38 +01:00
Kim Nylander
ac412e6859 [DOC] Update links, page weights for mounting content in Tempo data source (#100395)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-02-13 13:42:43 -05:00
Isabel Matwawana
4e976fc277 Docs: One-click data links for some visualizations (#100434) 2025-02-13 12:52:47 -05:00
Isabel Matwawana
75320990db Docs: Canvas one-click data links & actions (#100453)
Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
2025-02-13 12:46:46 -05:00
Adela Almasan
5aeaa18ac2 Canvas: One click links and actions (#99616)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-02-13 11:46:29 -06:00
Ashley Harrison
02118cc6aa Chore: Automerge i18n PRs (#99555)
* add enable automerge step and update CODEOWNERS

* add approver steps

* move automerge step to pr approver token

* get vault secrets

* update workflow permissions

* remove local
2025-02-13 17:44:13 +00:00
xavi
eeadb7e771 IAM: Log error when malformed json arrays are found in SSO configs (#99896) 2025-02-13 18:02:54 +01:00
linoman
19777ba3e9 Skip flaky test that's breaking the CI pipelines (#100640) 2025-02-13 17:49:21 +01:00
Bogdan Matei
5315b4fd2d Dashboard: Fix repeats behavior for inspect, solo panel and repeated and empty panels (#100605) 2025-02-13 18:41:09 +02:00
Georges Chaudy
b58b5b5768 grpc: improve grpc logger (#100606)
use proper grpc logging
2025-02-13 17:39:33 +01:00
Josh Hunt
2bdeb727cf Chore: Bump react-router to v5.3.4 (#100500) 2025-02-13 18:36:16 +02:00
Will Assis
155492c8a5 search: handle "permission" query param in search (#100607)
handle "permission" query param in search
2025-02-13 11:35:53 -05:00
Johnny Kartheiser
6e4c1a57c1 docs: capitalization issues (#100562)
fixing two capitalization issues for product names.
2025-02-13 10:29:04 -06:00
Gabriel MABILLE
90eb499b78 PublicDashboards: Fetch dashboard as Grafana (#100344) 2025-02-13 17:17:14 +01:00
Alexander Zobnin
d719e6c621 ServiceAccounts: Fix search in SA picker (#100634) 2025-02-13 17:02:51 +01:00
Ryan McKinley
0dab384826 K8s/Frontend: Update watch support (#100631)
use watch from gitsync
2025-02-13 18:55:36 +03:00
Hugo Kiyodi Oshiro
aeb57f671b Docs: Improve instructions to change basic roles (#100586) 2025-02-13 16:53:03 +01:00
Irene Rodríguez
30939fd0e9 Update relrefs (#100626) 2025-02-13 16:44:20 +01:00
Oscar Kilhed
1018aec6bc Dashboards: Fix repeats not being added on refresh when using searchLayout (#100621)
Fix repeats not being added
2025-02-13 16:31:11 +01:00
Todd Treece
5a74a1a0f6 Metrics: Use correct gatherer in graphite bridge (#100624) 2025-02-13 10:19:22 -05:00
Ivan Ortega Alba
527fc3bb21 Dashboards: Remove schemaVersion < min_version validation (#100555) 2025-02-13 06:56:16 -08:00
Dominik Prokop
7edcde6365 Dashboards: Bring back scripted dashboards (#100575)
* Dashboards: Bring back scripted dashboards

* Fix scripted dashboard examples

* Fix dashboard-solo page not respecnig scripted dashboards
2025-02-13 15:46:22 +01:00
Yuri Tseretyan
9dd75aee32 Alerting: Refactor State Transition (part 2 of n) (#99985)
* split create to create and patch and move to state

patch will be refactored further

* move setNextState to state transition

* move tests

* split tests for patch function
2025-02-13 09:45:16 -05:00
Victor Cinaglia
71f97f380d Docs: Fix URLs to auth providers from Team Sync page (#100563)
* iam/docs: fix links to providers in team sync page

* iam/docs: make auth proxy link look more like other links
2025-02-13 09:35:35 -05:00
Haris Rozajac
9ad6653871 Dashboard Schema V2: Improve diffing (#100022)
* improve diffing

* define dash spec props a-z

* Fix

* sort deep initialSaveModel

* update tests

* Fix test, description, and query ds issues

* Fix seralizer test

* response transformers

* skip panelMerge tests
2025-02-13 07:20:17 -07:00
Tobias Skarhed
afe8b08a48 MultiCombobox: Fix labels disappearing on selected items when filtering (#100602)
* Fix label disappearing on filtering

* Remove only from test

* Fix custom value test
2025-02-13 16:03:54 +02:00
Karl Persson
a58564a35e Unified Storage: Register metrics (#100600)
use seperate once struct
2025-02-13 14:24:59 +01:00
Karl Persson
be60ef0500 IDToken: cache invalidation (#100592)
* Make org role part of id token cache key. This way we will always sign a new token when it changes

* Remove calls to remove id token
2025-02-13 14:10:58 +01:00
Ivana Huckova
a69fac6e16 Mark grpc data source timeouts as cancelled queries (#100573)
* Set up to reproduce issue locally

* add check for deadline exceeded

* Revert "Set up to reproduce issue locally"

This reverts commit d8d9b354ca.

* Trigger build

---------

Co-authored-by: Will Browne <will.browne@grafana.com>
2025-02-13 13:40:53 +01:00
Jack Westbrook
1c7a758127 Frontend: Lazy load Echo Backends (#100345)
feat(app): lazy load echo backends depending on config. Move lodash to sharedDependencies
2025-02-13 12:11:41 +01:00
Ryan McKinley
3c56e32b0c K8s/Utils: Find title in unstructured content (#100576) 2025-02-13 14:04:03 +03:00
Karl Persson
1b1954de28 Authz: add support to use folder api to fetch folder tree (#100038)
* Add FolderStore interface

* Authz: add implementation to use folders api and use it inproc with loopback config

* Add tracing and add rest.Config for talking with folder api using access tokens

* Restructure test to get rid of circular dependencies in tests

* use correct group version kind

---------

Co-authored-by: gamab <gabriel.mabille@grafana.com>
2025-02-13 11:59:59 +01:00
Tito Lins
ae9837b793 Alerting: Add alertmanager integration tests (#100106) 2025-02-13 11:36:45 +01:00
Yulia Shanyrova
6db155649c Plugins: Custom links for plugin details page (#97186)
* Custom links with repository link, licence link, docs link and raise an issue link

* run translation command

* delete console log

* delete console log

* fix frontend tests

* change UI with a new design

* remove license, documentation, repository url calculation logic from grafana

* remove unsused function from helpers

* change repo icons and raise an issue icon

* fix the build

* remove logic for raiseAnIssueUrl

* fix the build

* fix lint

* Delete Links title in the box of links

---------

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2025-02-13 11:31:57 +01:00
Karl Persson
0b4c622df8 AuthN: Refetch user on "ErrUserAlreadyExists" (#100346)
* AuthN: Refetch user on "ErrUserAlreadyExists"
2025-02-13 11:27:57 +01:00
Hugo Kiyodi Oshiro
95ee93a0d8 Plugins: Improve plugin details UX for core plugins (#99830) 2025-02-13 11:07:24 +01:00
Bogdan Matei
293f514854 Dashboard: Fix removing row repeats having indexes ending with 0 (#100487) 2025-02-13 11:58:28 +02:00
Misi
5a6d2f2e49 Auth: Add early return if auth_token is in the URL for JWT auth (#100539)
* Add early return

* Update public/app/app.ts

Co-authored-by: Victor Cinaglia <victor@grafana.com>

---------

Co-authored-by: Victor Cinaglia <victor@grafana.com>
2025-02-13 10:46:19 +01:00
Dominik Süß
8a8e47fcea PluginExtensions: Added support for sharing functions (#98888)
* feat: add generic plugin extension functions

* updated betterer.

* Fixed type issues after sync with main.

* Remved extensions from datasource and panel.

* Added validation for extension function registry.

* Added tests and validation logic for function extensions registry.

* removed prop already existing on base.

* fixed lint error.

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2025-02-13 10:18:55 +01:00
Konrad Lalik
fbf96916aa Alerting: Use alerting-specific error boundary for page components (#99980)
Use alerting-specific error boundary for page components
2025-02-13 09:20:45 +01:00
Karl Persson
df64dd0762 LibraryElements: Propagate service identity in context when searching for dashboards (#100220)
* Propagate service identity in context when searching for dashboards
2025-02-13 09:17:16 +01:00
Mariell Hoversholm
2dee9ccbbc APIServer: Cancel forked context after handler returns (#100504)
We currently cancel the context when the adapter function is done. We should wait for the entire handler we're wrapping
to finish before cancelling our context.
2025-02-12 23:54:58 -08:00
Ivan Ortega Alba
2b2b19478a Dashboard V0->V1 Migration: Schema migration v41 (#100554) 2025-02-13 08:19:51 +01:00
Brendan O'Handley
0a88cb528a Explore metrics: Show the native histogram banner once (#99857)
* use local storage to show the native histogram banner has been loaded

* remove banner logic from datatrail

* set banner shown in local storage on closing the banner
2025-02-12 16:51:58 -06:00
owensmallwood
a34e7e176d Unified Storage: Sprinkles latency metric (#100542)
* add sprinkles latency metric

* fixes failing tests - forgot to register metric only once
2025-02-12 16:22:18 -06:00
Adela Almasan
3dcd885644 Data links: Show oneClick option just for specific panels (#100298)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-02-12 16:14:52 -06:00
margotphelps
f9c329bbd1 Docs: updated supported versions with 11.5 (#100548)
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-02-12 16:15:28 -05:00
Adela Almasan
62e06cfac8 Actions: Fix support in StateTimeline and XYChart (#100543)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-02-12 21:53:32 +02:00
Sergej-Vlasov
d1dee968c3 Schema V2: Adjust quick_ranges in time settings and remove time_options (#100135)
* adjut quickRanges type in v2

* clean up unused time_options property

* remove deprecated time_options property on time picker

* add schema migration for time_options

* adjust test
2025-02-12 19:23:09 +00:00
Ivan Ortega Alba
e60e217a23 Dashboard V0->V1 Migration: Schema migration v37 (#99962) 2025-02-12 21:19:57 +02:00
Ivan Ortega Alba
950726a3c5 Dashboard V0->V1 Migration: Schema migration v38 (#99778) 2025-02-12 19:52:39 +01:00
Alexander Akhmetov
c556f20627 Alerting: Fix default max_attempts value in the docs (#100497) 2025-02-12 19:24:22 +01:00
Alexander Akhmetov
3cc4320aa9 Alerting: Add rule conversion package (#100224) 2025-02-12 19:38:48 +02:00
Stephanie Hingtgen
e2a101cde3 Dashboard history: Track version created timestamp in restore (#100451) 2025-02-12 11:19:55 -06:00
Tobias Skarhed
21861867c1 Combobox: Fix broken styles for options (#100536)
Add basicOption styles to Combobox
2025-02-12 18:51:39 +02:00
Nick Richmond
d3de9dbce6 ExploreMetrics: Fix escaping of regex metacharacters in label filters (#100513)
* fix: don't over-escape label values

* test: handling of regex metacharacters in filters
2025-02-12 11:29:47 -05:00
Torkel Ödegaard
cfc529cb03 Design/Theme: Change dropdown background in dark themes (#100415)
* Dropdowns: Change background for Selects/Comboboxs

* Update

* Update

* Review fixes

* Update
2025-02-12 17:22:56 +01:00
Jack Baldry
2b054d4154 Correct release branch trigger glob (#100496) 2025-02-12 16:11:12 +00:00
renovate[bot]
f6f50f7693 Update scenes to v6 (#100445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-12 17:07:38 +01:00
Gilles De Mey
6e00954bb1 Devenv: Use newer label syntax (#100507) 2025-02-12 16:44:49 +01:00
Tom Ratcliffe
1f6142dd8f Chore: Remove betterer:merge and revert previous changes to betterer:stats (#98609) 2025-02-12 17:14:43 +02:00
Tom Ratcliffe
a1e59a92b0 Alerting: Allow collapsing of rule sections and fix Grafana configure link (#100290) 2025-02-12 17:12:11 +02:00
Josh Hunt
a9b4b1e5be Chore: pin tonistiigi/binfmt version (#100510)
* Chore: pin tonistiigi/binfmt version

* change version to qemu-v7.0.0-28

* uninstall first, log version

* uninstall first, log version

* uninstall first, log version
2025-02-12 08:37:04 -06:00
Pepe Cano
983829e47b Alerting docs: remove admonition about auto-generated policies (#100501) 2025-02-12 15:13:05 +01:00
Misi
ee0a1391df Auth: Add OrgRole to ID token (#100383)
* Changes for Users and ServiceAccounts

* Align tests
2025-02-12 05:51:29 -08:00
Solomon Himelbloom
a5c8b5ed83 docs: Copy code to clipboard (set-up-https.md) (#100509) 2025-02-12 14:42:12 +01:00
Nick Richmond
91242340c1 Prometheus: Fix operator handling when making label expressions utf-8 friendly (#100475)
* fix: operator handling

* refactor: stay dry
2025-02-12 07:09:22 -05:00
antonio
2f329c211d docs>tutorials>minor-update (#100488)
* docs>tutorials>minor-update

* link to part 5 from part 4

* all pretty, no pity
2025-02-12 12:01:15 +01:00
Adela Almasan
33b48f7c6e PanelPlugin: Allow inverting hideFromDefaults (#100473) 2025-02-12 04:46:00 -06:00
Laura Fernández
b44b82606a MultiCombobox: Add grouping (#100297) 2025-02-12 11:19:28 +01:00
Pepe Cano
8e436fc473 Alerting docs: Add Enable notifications section to Configure contact points docs (#100446)
Alerting docs: Add `Enable notifications` section to `Configure contact points` page
2025-02-12 11:18:31 +01:00
Pepe Cano
2b4e1f3c51 Alerting docs: clarify that silences and mute timings do not interrupt alert evaluation (#100414)
* Alerting docs: clarify that `silences` and `mute timings` do not interrupt alert evaluation

* replace `ad-hoc` word
2025-02-12 11:12:40 +01:00
Pepe Cano
99c8d4b0c6 Update Intro > Queries and Conditions (#95109)
* Update `Intro > Queries and Conditions`

* Small tweaks (advanced options) and screenshots

* Change `Expressions` heading

* Set links from Alert rules introduction

* Minor intro changes

* small change due to recent updates

* fix vale errors

* fix vale error

* Remove unnecessary mention to `alertingQueryAndExpressionsStepMode` feature flag
2025-02-12 10:42:53 +01:00
Edvard Falkskär
eb4c428d4e NodeGraph: Improve view traces for uninstrumented services (#98442)
* NodeGraph: Improve view traces for uninstrumented services

* Switch to onBuildUrl and more peer attributes

* Update unit tests

* Added test for new logic

* Open traces in same tab

* Update the tests

* bring back internal link

* Update public/app/plugins/datasource/tempo/datasource.ts

Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>

* Revert export of generateInternalHref

* Update tests after change from onBuildUrl to query function

---------

Co-authored-by: Domas Lapinskas <domasx2@gmail.com>
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
2025-02-12 11:28:44 +02:00
Mariell Hoversholm
a0701a42f1 APIServer: Propagate a new context with limited information (#100374)
* APIServer: Propagate a new context with limited information

* APIServer: Remove error return

* APIServer: Test that context propagation does fork

* APIServer: Fix golangci-lint lints

* chore: make update-workspace
2025-02-12 10:11:52 +01:00
Jean-Philippe Quéméner
aca024bcbb fix(unified-storage): use dedicated mocks per storage type (#100389) 2025-02-12 09:59:21 +01:00
Alexander Akhmetov
9593e51da7 Alerting: conversion API structure (#100258) 2025-02-12 08:13:21 +01:00
jackyin
9b37e9249a Dashboard: Folder move unexpected behavior (#100394)
* Dashboard: Folder move unexpected behavior

* format
2025-02-12 08:16:01 +02:00
Sven Grossmann
d199c33d7e Log Context: Fix bug where variables are not replaced in dashboards (#100433)
* Log Context: Fix bug where variables are not replaced in dashboards

* add objects to act as `row` and `options`

* run prettier

* fix lint
2025-02-11 20:25:52 +01:00
Stephanie Hingtgen
df84d928e2 K8s: Folders: Fix legacy search (#100393) 2025-02-11 13:14:25 -06:00
Staton Hysell
ab74852fc9 PanelEdit: Align chevron direction (#100386)
Adjusted the collapsable section chevron
+ point down when closed
+ point up when expanded
2025-02-11 13:16:19 -05:00
Charandas
ccb442558f chore: fix dockerfile for local development (#99721) 2025-02-11 10:00:15 -08:00
Ryan McKinley
a5355fd66c Storage: Add command line tool to migrate legacy dashboards (and folders) to unified storage (#99199) 2025-02-11 19:57:46 +02:00
Jacob Valdez
b6ea06f259 Docs: Updating manual installation instructions (#98834)
* Docs: adding additional installation steps to Grafana on openSUSE docs

* Docs: Adding systemd service info for grafana manual install

* Finalizing first edit with tested steps

* spacing adjustment and adding steps to RHEL/Fedora

* Adding a note based on Marins feedback

* A slight adjustment based on feedback from Marin and adding steps to Debian installation

* adjusting some wording

* adjusting naming conventions for Debian instructions

* changing "open-source" to "open source"

* vale and review edits

* deleting erroneous character in shortcode

* updating some shortcodes

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-02-11 11:42:30 -06:00
Rares Mardare
6d374a3d7f Configuration tracker: Update copy in IRM and point to new IRM slack integration (#100440)
Update copy + point to new IRM slack
2025-02-11 18:41:34 +01:00
Christopher Moyer
53ae85ca57 docs: updates to support prometheus data source learning journey (#100363)
* updates to support prometheus data source learning journey

* makes prettier
2025-02-11 10:20:47 -06:00
ismail simsek
c15c9f8af6 Prometheus: Fix cursor jump in prometheus code editor (#100273)
* set save view state prop

* remove custom onChange function
2025-02-11 16:55:54 +01:00
Kevin Minehart
a8b98ded66 CI: Add release branches to patch automation (#100442)
* CI: Add release branches to patch automation

* Update .github/workflows/create-security-patch-from-security-mirror.yml

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

---------

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2025-02-11 17:41:46 +02:00
Jean-Philippe Quéméner
d1b4162a33 refactor(unified-storage): measure also failed queries (#100430) 2025-02-11 16:19:43 +01:00
Kyle Brandt
f7588376df SQL Expressions: (Chore) Update code for latest plugin-sdk data pkg (#100425)
Use new NilAt and SetRefId methods
2025-02-11 15:15:54 +00:00
Yuri Tseretyan
28f21e0a0d Alerting: Do not record rule version if no difference (#100364) 2025-02-11 09:46:26 -05:00
renovate[bot]
6da6660def Update dependency esbuild-plugin-browserslist to ^0.16.0 (#100420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 16:46:16 +02:00
Yuri Tseretyan
4cac3158c7 Alerting: Fix alert rule copy to include metadata (#100212)
* copy metadata

* add tests for copy and generator

* extract copy rule to a production method and update usages

* fix tests
2025-02-11 09:46:02 -05:00
renovate[bot]
79bd3ffd8c Update dependency rollup-plugin-esbuild to v6.2.0 (#100421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 14:44:41 +00:00
Jean-Philippe Quéméner
8a9f6416d2 fix(unified-storage): error on failed primary deletes in mode2 (#100427) 2025-02-11 15:39:39 +01:00
renovate[bot]
14c8eb2373 Update dependency esbuild-loader to v4.3.0 (#100423)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 16:27:29 +02:00
renovate[bot]
8c0e087ce2 Update dependency esbuild to v0.25.0 [SECURITY] (#100426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 16:04:18 +02:00
Alexander Zobnin
7234a17d1d Zanzana: Use authzService audience (#100417) 2025-02-11 14:25:30 +01:00
Sergej-Vlasov
bbe21bb1d2 Bump Scenes to 5.42.0 (#100205)
* update scenes and weekStart prop type

* update test

* adjust weekStart type in schemaV2

* clean up weekStart error message

* clean up weekStart in test data
2025-02-11 13:20:47 +00:00
Laura Fernández
43d7d00247 Combobox: fix check for existing options when creating a custom value (#100123) 2025-02-11 14:13:42 +01:00
Alexander Zobnin
5118e82e8c Zanzana: Run reconciliation in its own service (#100361)
* Zanzana: Start reconciliation in its own service

* cleanup

* update go workspaces

* refactor

* remove unused code

* move func definition
2025-02-11 14:09:39 +01:00
Ryan McKinley
e3cb73301e Authz/Schema: Remove unused stub cue definitions (#100387) 2025-02-11 15:24:11 +03:00
Oscar Kilhed
6ee3c71ffe Dashboards: refactor transform scene layout to save model and transform save model to scene layout, schema v2 (#100322)
* Add tests

* refactor transformSaveModelToSchemaV2 and transformSceneToSaveModelV2

* move default grid serializer functions outside of class

* simplify layoutmanager descriptor

* add test for SaveModel -> Scene

* Fix lint issues

* remove auto added import

* Fix name

* Fix test typo
2025-02-11 13:08:07 +01:00
Victor Marin
e17fd5e8ad DashboardDS: Re-run dashboard queries within MixedDS on transformation reprocessing (#100370)
* fix scenario where results subscription is lost due to transformations

* fix
2025-02-11 13:39:00 +02:00
Karl Persson
bfa4fa3c68 Authz: Refactor folder tree (#99554)
* Refactor folder tree to its own structure

* Make it possible to json encode the tree

* Use iterations for Ancestors and Children

---------

Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
2025-02-11 12:36:11 +01:00
Torkel Ödegaard
a1dacc24b9 CSS: Update generated scss file (#100413) 2025-02-11 12:35:21 +01:00
Torkel Ödegaard
9bdacf3833 DesignSystem: Menu and popover styling update to use new elevated background token (#100255)
* DesignSystem: Menu and popover styling tweak proposal

* Fix submenu

* Themes: Add elevated prop

* Update themes

* update

* Fixed tests

* Update

* fix markdown lint

* Update packages/grafana-data/src/themes/createColors.ts

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>

* Update contribute/style-guides/themes.md

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>

* Update

* Update

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-02-11 12:27:04 +01:00
Ashley Harrison
d87ef806f0 LoadingBar: Use a theme variable instead of hardcoded hex color (#100407)
use the theme variable in our loadingbar instead of a hardcoded hex color
2025-02-11 11:17:15 +00:00
Andre Pereira
d48802cdfb Tempo: TraceQL metrics streaming (#99037)
* TraceQL metrics streaming POC

* Reduce duplicate frames by using scan() and combineResponses()

* Trying to remove samples outside of time range

* Remove code to clean out of range

* Metrics streaming config toggle

* Sync opening the search and metrics options

* Fix tests

* Fix issues after conflicts

* Fix tests

* Use absolute value when computing minXDelta

* Revert last commit

* Fix frame sorting

* Remove all duplicates

* Use fields from schema to get the frames

* Use FieldCache

* Address PR comments
2025-02-11 11:11:01 +00:00
Jack Westbrook
cbe5741096 Fix: Optimise frontend Postgresql plugin cache busting (#100406)
fix(postgresql): add version for optimised cache busting
2025-02-11 12:08:19 +01:00
antonio
cfb26f2a4b docs: new alerting tutorial - part 5 (#100367)
* docs: new alerting tutorial - part 5

* all pretty, no pity

* title

* vale vale

* minor formatting issues

* minor formatting issues2

* format

* prettier

* docker compose

* creds

* format

* even prettier
2025-02-11 12:04:24 +01:00
Ashley Harrison
70b86eeb6d App: Fix web app behaviour on iOS (#100382)
readd apple-mobile-wep-app-capable
2025-02-11 10:01:33 +00:00
Vishal N
b0dd6e900a Docs: Fixed hyperlinks pointing to supported auth providers (#100404) 2025-02-11 11:00:36 +01:00
Esteban Beltran
9f77c86b21 Frontend Sandbox: Allow enabling sandbox before installing plugins (#100365)
* Frontend Sandbox: Allow enabling sandbox before installing plugins
2025-02-11 11:52:21 +02:00
Josh Hunt
e5154ce799 Combobox: Add tests for labels with Combobox (#100044)
* Add tests for labels with Combobox

* clean
2025-02-11 09:44:38 +00:00
Jean-Philippe Quéméner
6eaf702e96 fix(unified-storage): return legacy data in mode 2 (#100353) 2025-02-11 10:34:56 +01:00
Andres Martinez Gotor
b6c0db31d9 Advisor: Clean up old checks (#100375) 2025-02-11 09:36:46 +01:00
Andres Martinez Gotor
f8efdaf88c apiserver: Avoid panic for DELETE requests (#100372) 2025-02-11 09:18:57 +01:00
jackyin
f2d34254d3 Panel: Editor theme can't change (#99621)
editor theme can't change
2025-02-11 09:51:59 +02:00
Gábor Farkas
e4ef71b78e querier: handle datasource-not-found (#100175) 2025-02-11 08:25:27 +01:00
Isabel Matwawana
63216a3e6e Docs: Vale fixes (#100277) 2025-02-10 14:19:44 -05:00
Ida Štambuk
7092fd269d Elasticsearch: Remove frontend testDatasource method (#99894) 2025-02-10 18:33:36 +01:00
Ida Štambuk
4e48b7557c CloudWatch: Track Logs Insights query language (#100254)
Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
2025-02-10 18:13:26 +01:00
Sarah Zinger
0152f414f0 DS Apiservers: return 404 when receiving a datasource not found error (#100025)
* DS Apiservers should return a k8s 404 error

* Do not swallow status codes

* Updates from initial CR.

* Add test for ds apiserver to retunr 404 when a datasource is not found

* Didn't intend for a change here
2025-02-10 12:07:51 -05:00
Alex Khomenko
27ece859e7 MultiCombobox: Export from grafana/ui (#100368)
* MultiCombobox: Export from grafana/ui

* Fix typos

* Update options styles
2025-02-10 17:37:17 +02:00
Moustafa Baiou
7dee4d1808 Alerting: Allow specifying uid for new rules added to groups (#99858)
When modifying rule groups the `uid` can be specified but only if the rule already existed in the DB. If the rule is new the update would be rejected.

This updates the RuleGroup provisioning apis to allow specifying the `uid` when creating/updating rule groups. 

Additionally, the RuleGroupIdx was not being updated when rules were reordered in the group.

Context: https://github.com/grafana/terraform-provider-grafana/pull/1971#issuecomment-2599223897
Relates to: https://github.com/grafana/terraform-provider-grafana/issues/1928

Fixes: #98283
2025-02-10 10:28:34 -05:00
ismail simsek
55e7c4ae6d Prometheus: Get the utcOffset value of timezone when it's specified (#99910)
* get the utcOffset value of timezone when it's specified

* Update packages/grafana-prometheus/src/datasource.ts

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

* calculate utcOffset from timezone when the request timezone is not browser

* lint

---------

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2025-02-10 16:11:06 +01:00
Yuri Tseretyan
1b8db233a7 Alerting: Rule Version API to Ignore versions without diff (#100093) 2025-02-10 09:20:35 -05:00
Marco Schaefer
dec07c4c34 Update-faro-versions-in-grafana-packages (#100354)
* update faro versions in grafana-runtime

* update faro packages in root

* update Faro version in Grafana UI

* upgrade faro version in grafana-prometheus

* replace deprecated type
2025-02-10 15:07:32 +01:00
beejeebus
02caf915a5 Don't remove DWARF info from Go binaries in dev (#100328)
Only ask the linker to strip DWARF information if we're not in
dev, to avoid seeing stuff like this when using delve:

    ~ $ dlv attach $(pgrep grafana)
    (dlv) l main.main
    Command failed: location "main.main" not found

After this change:

    ~ $ dlv attach $(pgrep grafana)
    Type 'help' for list of commands.
    (dlv) l main.main
    Showing /home/justin/code/grafana/pkg/cmd/grafana/main.go:23 (PC: 0xac93533)
        18: var commit = gcli.DefaultCommitValue
        19: var enterpriseCommit = gcli.DefaultCommitValue
        20: var buildBranch = "main"
        21: var buildstamp string
        22:
        23: func main() {
        24:         app := MainApp()
        25:
        26:         if err := app.Run(os.Args); err != nil {
2025-02-10 08:43:31 -05:00
Torkel Ödegaard
68700e3d7d TimeRangePicker: Options list padding (#100343) 2025-02-10 14:12:23 +01:00
Josh Hunt
30abff9998 Chore: Bump undici (#100352) 2025-02-10 13:05:48 +00:00
Josh Hunt
9697a699f2 Chore: Remove unused knip dependency (#100351) 2025-02-10 14:40:45 +02:00
Andres Martinez Gotor
42170ad23a Advisor: Create checks following a schedule (#100282) 2025-02-10 13:15:41 +01:00
Alex Khomenko
2518012569 grafana-ui: Update InlineField error prop type to React.ReactNode (#100347) 2025-02-10 13:46:46 +02:00
Ryan McKinley
7c8fddc729 Chore: remove CVE from code scanning tool (#100312) 2025-02-10 13:07:04 +02:00
Gábor Farkas
390b5eb6d4 go.mod: updated grafana-plugin-sdk-go (#100342)
* go.mod: update grafana-plugin-sdk-go

* make update-workspace
2025-02-10 11:38:30 +01:00
Gilles De Mey
afab71e28c Alerting: Remove rule group edit from single rule editor (#100191)
remove rule group edit from single rule editor
2025-02-10 11:13:28 +01:00
Konrad Lalik
6723159b12 Alerting: Fix useAlertingQueryRunner re-rendering loop (#100206)
* Fix AlertingQueryRunner infinite re-rendering loop

* Update tests
2025-02-10 10:51:54 +01:00
Josh Hunt
00155abf1b Codeowners: Make Grafana Frontend Platform only own Grafana UI documentation (#100314)
* Codeowners: Make Grafana Frontend Platform exclusive owners of MDX documentation

* more
2025-02-10 09:50:49 +00:00
Misi
acc1521929 Auth: Fix redirect with JWT auth URL login (#100295)
fix
2025-02-10 10:48:35 +01:00
Elliot Kirk
95e61f63f7 Faro: Upgrading faro deps to 1.13.1, enabling error serializer (#100145)
* upping faro deps, enabling error serializer

* linting

* fix lint errors

* more linting stuff

* yarn lock
2025-02-10 09:32:47 +01:00
Sam Jewell
45775dd6ad Skip flakey test (#100251) 2025-02-10 07:40:32 +00:00
Adela Almasan
f5c049012b Chore: Data links and Actions components refactor (#100097)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-02-07 20:03:05 -06:00
Adela Almasan
bce05cd48d VizActions: Add confirmation message (#100012)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-02-07 16:58:09 -06:00
Scott Lepper
378bb6ea3f [search] folder name lookup performance (#100154)
[search] use search for folder name lookup
2025-02-07 17:19:23 -05:00
owensmallwood
196029f287 Unified Storage: Adds more spans to handleEvent (#100304)
adds more spans to handleEvent
2025-02-07 19:43:02 +01:00
Will Assis
7e11e604c7 [search] fix offset param in finddashboards (#100302)
* fix offset param in finddashboards

* separate offset from page in k8s search endponit
2025-02-07 13:24:27 -05:00
owensmallwood
bf27e6d3ed Unified Storage: Fix legacy dashboard query when using continue token (#100244)
* query for rows less than the continue token LastID since the queries are sorted by dash ID in DESC order

* run dashboard query tests
2025-02-07 12:16:41 -06:00
Torkel Ödegaard
79d7e11fa4 Menu: Uniform padding to make menu item hover state look better (#100275)
* Menu: Uniform padding

* tweak menu header

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-02-07 19:07:10 +01:00
Haris Rozajac
f5d8f42635 Dashboard Scene: Fix unnecessary diffing (#100158)
* Fix unnecessary diffing

* use a diferent approach; update legacyId type

* fix test
2025-02-07 10:47:07 -07:00
AsocPro
7b48670104 Alerting: Remove leftover legacy alerting types (#100162) 2025-02-07 17:46:12 +00:00
Will Assis
7c9f47ac67 [search] handle folderids query param (#100223)
handle folderids query param
2025-02-07 12:24:21 -05:00
Ashley Harrison
0bd4e3bda2 Theme: properly clip corners in loki/prom query editor (#100253)
properly clip corners in loki/prom query editor
2025-02-07 17:17:46 +00:00
Ethan
bf413643c8 Remove unused SBOM report workflow from GitHub Actions (#100124)
* Remove SBOM report workflow from GitHub Actions

* Remove SBOM report workflow from CODEOWNERS
2025-02-07 18:11:11 +01:00
Alexander Akhmetov
97109b36e3 Update grafana/alerting package from 995709fe8d64 to 04c87cf39038 (#100293) 2025-02-07 18:38:22 +02:00
Fayzal Ghantiwala
7ae8058c8b Alerting: Return 404 when /api/ruler/grafana/api/v1/rules/{Namespace}/{Groupname} does not exist (#100264)
* Return a 404 when rule group doesn't exist

* Update tests

* Update swagger doc and tests
2025-02-07 16:24:28 +00:00
renovate[bot]
9ce6c69996 Update dependency nanoid to v5.0.9 [SECURITY] (#100279)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 15:25:29 +00:00
Bogdan Matei
be42685852 Dashboards: Add tabs layout (#100127) 2025-02-07 16:50:53 +02:00
Andres Martinez Gotor
f607bcd43f Advisor: Replace Error naming with Failure (#100262) 2025-02-07 15:48:18 +01:00
Agnès Toulet
0beb7e668b E2E: Add PDF/CSV/Image comparison tasks (#99104)
* E2E: Add tasks for new reporting tests

* try to switch to pdf-parse

* fix pdf comparison

* add log

* increase threshold

* clean up

* apply review feedback

* improve logs + fix local setup for reporting

* format
2025-02-07 15:46:32 +01:00
Bogdan Matei
158c5443b5 Dashboard: Fix for overwriting an edited dashboard in the old architecture (#100247) 2025-02-07 16:44:55 +02:00
Alex Khomenko
53030e7960 Card: Render description element based on children type (#100276) 2025-02-07 16:39:13 +02:00
Mariell Hoversholm
dfaa12b800 Provisioning: Sync API with current feature branch (#100252)
* Provisioning: Jobs: Define repository name field

* Provisioning: Jobs: Separate options per job type

* Provisioning: Define a sanitised settings resource

* Provisioning: Jobs: Define a job summary

* Provisioning: Remove linting

* Provisioning: Update docs for a few fields

* Provisioning: Remove HelloWorld

* Provisioning: Replace Repository with Message in job info

* Provisioning: Remove YAML support

* Provisioning: Remove custom folder specification

* Provisioning: Support read-only repositories

* Provisioning: Remove edit options

* Provisioning: Add sync options for repositories

* Provisioning: Add resource statistics

* Provisioning: Make slices atomic lists

* Provisioning: Message list needs to exist even if empty

If we don't do this, we can't clear the messages field, leading to buggy UX.

* Provisioning: Support incremental syncing

* Provisioning: Remove the 'items' subresource workaround

* Provisioning: Add resource list

* Provisioning: Reformat

* Provisioning: Declare new types

* OpenAPI: Generate openapi JSON spec from generated code

* Codegen: Generate OpenAPI spec

* Provisioning: Support generating frontend API

* Codegen: Generate Go code

* Provisioning: Define the base API

* Codegen: Generate frontend endpoints for provisioning

* Refactor: yarn prettier:write

* Provisioning: Tiger team takes ownership

* Chore: Remove dir we haven't added yet

* Provisioning: Remove frontend

* Test: Update example repositories
2025-02-07 15:35:55 +01:00
Torkel Ödegaard
9d7a4a53e4 Themes: Adds 1 more GrafanaCon theme (wip) (#100228)
* Themes: Gloom theme wip

* Themes: Gloom theme wip

* refactor

* A bit brown maybe?

* Update secondary to also be a bit brownish orangy

* Not super happy

* down a bit

* Progress

* Update

* Update

* orange primary again
2025-02-07 15:27:56 +01:00
Kristina
9fbb0b6636 Panel edit: Remove use of SheetJS (#100161)
Remove SheetJS
2025-02-07 08:21:14 -06:00
Todd Treece
6af67197a7 Dual Writer: Remove list comparisons in mode 2 & 3 (#100215) 2025-02-07 09:17:53 -05:00
Oscar Kilhed
a412394a14 Dashboards: Save rows and responsive grid layouts in v2 (#100035)
* save rows and responsive grid layouts in v2

* Add back accidentally removed assert

* adress feedback

* use getGridItemKeyForPanel

* Fix import

* fix another import

* Remove RowGridLayout
2025-02-07 14:45:04 +01:00
Alex Khomenko
882b993496 Card: Use div for description (#100272) 2025-02-07 15:30:22 +02:00
Georges Chaudy
6e748a9ee7 fix: Ensure we check the user identity for search (#100190)
Ensure we check the user identity for search
2025-02-07 12:32:45 +01:00
Piotr Jamróz
c43517d278 Explore: Fix resizing split view with Loki query editor (#100257) 2025-02-07 12:05:45 +01:00
Mariell Hoversholm
e815a2850e Provisioning: Integration test that Repository resources work (#100197)
* Provisioning: Set up server in practice

* Provisioning: Integration test that Repository resources work
2025-02-07 12:04:58 +01:00
Bogdan Matei
a51e785bc1 Dashboards: Finalize refactoring for dynamic dashboards (#100198) 2025-02-07 12:57:54 +02:00
Andrej Ocenas
4b9fee61a8 QueryLibrary: Move to enterprise (#100133) 2025-02-07 11:09:51 +01:00
Giuseppe Guerra
ccb9cab131 Plugins: Add synchronous CDN plugin loader (#99096)
* WIP

* Run plugin validations and validation steps sequentially if feature is off

* Remove dependency between sources.Service and pluginscdn.Service

* lint

* Parallelize validation only if class is CDN

* re-generate feature toggles

* remove waitgroup usage

* PR review: Add loader concurrency limit setting

* re-generate feature toggles

* pr review feedback

* fix const name

* Skip module.js validation for cdn plugins

* do not run validation steps in parallel

* lint

* reduce diff

* re-generate feature toggles

* lint

* pr review feedback

* remove leftover config.PluginManagementCfg from sources.Service
2025-02-07 11:07:08 +01:00
Andres Martinez Gotor
e291140be3 Advisor: Run check steps in parallel (#100200) 2025-02-07 10:57:26 +01:00
Kyle Brandt
6dc98dbbcc SQL Expressions: Add str_to_date function and unskip test (#100226) 2025-02-07 11:51:55 +02:00
Levente Balogh
9da423045e Advisor: Enable frontend code generation for the checktype kind (#100208)
nit: enabling frontend code generation for the `checktype`
2025-02-07 10:49:27 +01:00
Kyle Brandt
d196b789e2 SQL Expressions: Add more SQLNodes and funcs to allow list (#100227)
sql_expr: Add more Nodes and funcs to allow list
2025-02-07 09:44:17 +00:00
Arati R.
d62c490af5 UniStore Big Objects: Fix spec rebuilding (#100183)
* Fix big object spec rebuilding and associated test

---------

Co-authored-by: Jean-Philippe Quémémer <jeanphilippe.quemener@grafana.com>
2025-02-07 09:29:25 +01:00
Brendan O'Handley
d16f2315a4 Explore metrics: Always check that custom var is present for otel dep env migration (#100233) 2025-02-06 18:26:25 -06:00
Jev Forsberg
74b2b5fb19 Chore: Update drone.yml signature (#100236)
baldm0mma/update drone signature
2025-02-06 15:58:56 -07:00
Jev Forsberg
8e3327a446 Chore: Update grabpl version to v3.1.2 (#100157)
baldm0mma/ update grabpl version
2025-02-06 15:23:51 -07:00
Jean-Philippe Quéméner
c8609b8a61 feat(unified-storage): keep tags on reduce of dashboards (#100230) 2025-02-06 22:23:00 +01:00
Sam Jewell
f4426e22bf SQL Expressions: Bump go-mysql-server dependency to main (#100222)
Bump go-mysql-server dependency to `main`

This is so we receive a few bug fixes - fixes to these issues:

- https://github.com/dolthub/dolt/issues/8807
- https://github.com/dolthub/dolt/issues/8735
- https://github.com/dolthub/dolt/issues/8724
2025-02-06 17:34:35 +00:00
Alexander Akhmetov
a9ce930634 Alerting: Promote alertingSaveStateCompressed flag to public preview (#99935) 2025-02-06 18:09:43 +01:00
Victor Marin
2b3ccfe5b9 DynamicDashboards: Revert unnecessary empty page on new layouts (#100218)
Revert unnecessary empty page on new layouts
2025-02-06 18:37:28 +02:00
Tobias Skarhed
677060862c Combobox: Fix list not being virtualized initially in some cases (#100188)
* Combobox: Set arbitrary initial max size

* Remove ?

* Set initial values to 0
2025-02-06 17:34:52 +01:00
Will Assis
1467d4b3e3 [search] Legacy search fallback support legacy query params (#99765)
* add support for deleted query param

* support tag query param in modes 2 and below

* handle dashboardIds

* hhandle dashboardUIDs

* handle folderUIDs query param

* handle page query param when hitting legacy storage

* handle sort query param

* handle type query param

* re-enable search fallback

* remove folder search workaround and fix /api/search to return both folders and dashboards when no title or type is provided

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-02-06 11:30:47 -05:00
Matthew Jacobson
ccb0e9222a Alerting: Upgrade grafana/alerting to use EmbeddedContents (#99983)
* Upgrade grafana/alerting to include EmbeddedContents for email images
2025-02-06 11:29:43 -05:00
Karl Persson
011301f06f Authz: client cache (#100195)
* Reduce client permissions cache for authz client

* Adjust server cache ttl
2025-02-06 17:16:30 +01:00
Josh Hunt
f8509273cb Slider: Fix text input box being too wide (#100138)
* Fix Input width from className not being respected

* Also use width prop in Slider
2025-02-06 16:14:38 +00:00
Sarah Zinger
0035ed8a5e Add log line for unexpected queries in ds querier (#100147) 2025-02-06 11:05:30 -05:00
Karl Persson
126396399e Folder+Dashboard: Resolve parent folders as service in search (#100185)
Resolve parent folders as service to guarantee that we can fetch the title
2025-02-06 16:40:07 +01:00
Haris Rozajac
1bf53e7a5f Dashboard Schema V2: E2E setup (#99843)
* basic setup

* update CODEOWNERS

* update name

* add temp test that ensures we are loading schema V2 json in the UI

* update language

* test with yarn cache and combine steps

* revert combine

* remove commented out code

* Run current dashboard suite, make workflow optional

* make job always succeed

* Remove temp v2 suite

* don't run on draft PRs

* command for old arch
2025-02-06 08:33:18 -07:00
Andres Martinez Gotor
05ea450dd2 Drone: Add apps directory for backend tests (#100204) 2025-02-06 17:01:50 +02:00
Nathan Marrs
21bfdd445f Image Renderer: Minor refactor cleanup (#100089) 2025-02-06 08:01:11 -07:00
Haris Rozajac
4c52abb6b4 Dashboard Schema V2: Introduce __legacyStringValue and deprecate string type for query prop in QueryVariableSpec (#99716)
* Introduce __legacyStringValue and deprecate string type for query

* Fix tests

* Fix tests

* remove default

* kind should default to default ds if variable doesn't have ds field

* lint

* getDefaultDataSourceRef should not return undefined
2025-02-06 07:33:06 -07:00
Torkel Ödegaard
f1eac34b54 Dashboard: Simpify is empty handling (#100189)
* Dashboard: Simpify is empty handling

* remove unused imports

* Update

* Update

* Update

* add code for other layouts

---------

Co-authored-by: Victor Marin <victor.marin@grafana.com>
2025-02-06 15:30:54 +01:00
Mariell Hoversholm
ae33d49036 Advisor: Assert new fields (#100199) 2025-02-06 16:29:54 +02:00
Jacob Valdez
d3ce9e1fe2 Docs: adding actions_allow_post_url example to plugin docs (#96157) 2025-02-06 08:24:30 -06:00
Eric Leijonmarck
98e3237ce2 LBAC for data sources: Update to indicate that we have experimental and GA (#100187)
update confusing docs
2025-02-06 14:05:52 +00:00
Ida Štambuk
57e30633e9 Docs: Add a note on query caching for Cloudwatch datasource (#100180) 2025-02-06 15:02:34 +01:00
Andres Martinez Gotor
52db2070a0 Advisor: Expose check types as a resource (#100058) 2025-02-06 13:35:40 +01:00
Kyle Brandt
d64f41afdc SQL Expressions: Re-implement feature using go-mysql-server (#99521)
* Under feature flag `sqlExpressions` and is experimental
* Excluded from arm32
* Will not work with the Query Service yet
* Does not have limits in place yet
* Does not working with alerting yet
* Currently requires "prepare time series" Transform for time series viz
 
---------

Co-authored-by: Sam Jewell <sam.jewell@grafana.com>
2025-02-06 07:27:28 -05:00
Matias Chomicki
4e6bdce41c Loki query direction: run initialization only in Explore and Dashboards (#100182) 2025-02-06 13:02:43 +01:00
Sriram
9fc82faea7 [analytics] added plugin version to grafana_ds_test_datasource_clicked event (#100168) 2025-02-06 11:50:48 +00:00
Matheus Macabu
fde475e3d9 CloudMigrations: save snapshot of alert rule groups (#100109) 2025-02-06 12:35:59 +01:00
Ashley Harrison
7d3a77a45c Themes: Add new theme definitions behind feature toggle (#100129)
* create new toggle

* add survey link behind feature toggle

* fix translations

* better theme structure

* add all the themes back

* update matrix

* fix mars contrast

* fix color contrast probs with tron

* fix a11y issues with synthwave/victorian themes

* fix aubergine/zen

* rename green + gold

* rename to space

* rename, only enable 4 for grafanacon

* add survey link

* fix info color in sapphiredusk

* handle extra themes in storybook
2025-02-06 11:08:04 +00:00
Karl Persson
e05413dcc4 Dashboards+Folders: Ensure the service identity is used for resolvers (#100128)
* Dashboards+Folders: Ensure the service identity is used for dashboard and folder resolvers

* Add convinient function to call closure with service context
2025-02-06 12:07:52 +01:00
Torkel Ödegaard
0916994d0a Dashboard: Various fixes to new layouts (#100107)
* Dashboard: Various fixes to new layouts

* review fixes

* Fix

* Update

* Fix test
2025-02-06 10:57:08 +01:00
Leon Sorokin
d5f1f4eb5c ComboBox: Fall back to substring matching for symbols/operators (#100148) 2025-02-06 09:33:08 +00:00
Ashley Harrison
f89da88f0f Storybook: Support an arbitrary number of themes (#100111)
* support more themes in storybook

* default to dark theme

* fix type error

* change theme in docs container

* add TODO

* only show extra themes in development mode

* add comment
2025-02-06 09:16:47 +00:00
Andres Martinez Gotor
36275a5510 Advisor: Refactor check interfaces (#100043) 2025-02-06 09:55:17 +01:00
Stephanie Hingtgen
495aa65c6e FindDashboards: filter by dashboard type (#100160) 2025-02-05 18:57:26 -06:00
Yuri Tseretyan
f7d476e408 Alerting: Remove id and org_id from grafana alert rule API model (#100139) 2025-02-05 23:13:22 +02:00
Brendan O'Handley
0fe4b15d00 Explore metrics: Add option to use regex (#100146)
add option to use regex
2025-02-05 15:11:43 -06:00
Todd Treece
69e4d8468b Dashboard: Add v1alpha1 test coverage (#100149) 2025-02-05 23:01:51 +02:00
Jean-Philippe Quéméner
364559e856 feat(unified-storage): use continue token when building list (#100143) 2025-02-05 21:02:35 +01:00
Kevin Minehart
8e10ee9056 CI: remove unnecessary line in backport.yml (#100144)
remove bad line
2025-02-05 21:37:19 +02:00
Kevin Yu
b7b2e2bbaa CI: Commit package.json changes in e2e/test-plugins when bumping versions (#97506) 2025-02-05 13:29:18 -06:00
Yuri Tseretyan
33b11d5c76 Alerting: Remove ID and OrgID from hash calculation (#100140) 2025-02-05 14:15:02 -05:00
Kevin Minehart
6787cdccb9 CI: Backport to release branches (#100067)
* update backport and release comms

* Backport to release branches and change docs source branch for publishing

* Add new workflows to CODEOWNERS

* Re-add removed line oops

* backport-testing -> grafana

* checkout grafana repo in backport action, reference repo / branch in reusable action

* generate -> create
2025-02-05 21:04:03 +02:00
colin-stuart
6200361f36 Auth: Add IP address login attempt validation (#98123)
* Auth: Add IP address login attempt validation

* LoginAttempt struct IpAddress field must be camelCase to match db ip_address column

* add setting DisableIPAddressLoginProtection

* lint

* add DisableIPAddressLoginProtection setting to tests

* add request object to authenticate password test

* nit suggestions & rename tests

* add login attempt on failed password authentication

* dont need to reset login attempts if successful

* don't change error message

* revert go.work.sum

* Update pkg/services/authn/clients/password.go

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-02-05 20:16:36 +02:00
colin-stuart
d58dec7951 Docs: Add docs for Passwordless Authentication Using Magic Links (#96877)
* Docs: Add docs for Passwordless Authentication Using Magic Links

* Update docs/sources/setup-grafana/configure-security/configure-authentication/passwordless/index.md

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

* Update docs/sources/setup-grafana/configure-security/configure-authentication/passwordless/index.md

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

* Update docs/sources/setup-grafana/configure-security/configure-authentication/passwordless/index.md

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

* match Writer's Toolkit style

* Update docs/sources/setup-grafana/configure-security/configure-authentication/passwordless/index.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

---------

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-02-05 17:58:14 +00:00
Isabel Matwawana
92bb51bdda Docs: move missing ref URI to correct page (#100131) 2025-02-05 12:08:50 -05:00
Artur Wierzbicki
130d268b51 Dashboards: Update POST /api/dashboards/db docs (#99363)
update dashboard update docs
2025-02-05 22:47:08 +06:00
Matthew Jacobson
a93664ff3d Alerting: Add EmbeddedContents as alternative embedding in smtp (#99937)
Adds support for embedding []byte in SmtpClient instead of filenames. This is backwards compatible as it uses a new field EmbeddedContents to add an alternative to the existing EmbeddedFiles which takes filenames.
2025-02-05 11:12:30 -05:00
Josh Hunt
0ca1febb77 FolderPicker: Make lazy in prep for exposing publicly (#100118)
* Make lazy NestedFolderPicker

* Change permission prop to use string union instead of enum

* reword comment
2025-02-05 17:21:32 +02:00
Karl Persson
39d94eabcd Auth: Fix function name (#100122)
Fix spelling
2025-02-05 15:32:22 +01:00
Karl Persson
64800f293e Authz: Check for parent uid instead of id (#100121)
* Check for parent uid instead of id
2025-02-05 15:06:38 +01:00
Andres Martinez Gotor
6d159b6240 Advisor: Fix Healtcheck check (#100115) 2025-02-05 14:59:40 +01:00
Jacob Valdez
bf1174cfdc Docs: Adding info on decrypting encrypted certificates (#100020) 2025-02-05 07:47:56 -06:00
Ivan Ortega Alba
d53b269455 Dashboard V0->V1 Migration: Schema migration v39 (#99631) 2025-02-05 13:50:38 +01:00
Dana Axinte
665974e751 CloudMigrations: Update link to cloud migration assistant page (#99915)
* change link

* consolidate banners

* remove banner on plugins
2025-02-05 12:01:04 +00:00
Ieva
095593c018 RBAC: Don't check folder access if annotationPermissionUpdate FT is enabled (#99717)
don't check folder access if annotation permission update is enabled
2025-02-05 11:15:24 +00:00
Bogdan Matei
c4d0114376 Dashboards: Use i18n for texts in dynamic dashboards (#100108) 2025-02-05 13:14:03 +02:00
Nick Richmond
39a6d2e586 ExploreMetrics: Use redirect to route traffic to metrics drilldown app (#100098)
* fix: drilldown app redirect

* chore: make copilot review happy, I guess 🤷
2025-02-05 06:09:16 -05:00
Bogdan Matei
f51571db5d Dashboards: Refactor types for dynamic dashboards (#100064) 2025-02-05 11:08:41 +02:00
Rares Mardare
bea62aa615 Alerting: Update IRM copies in Configuration Tracker (#100069)
* updated alerting configuration tracker with new IRM copies

* Configuration tracker steps

* copy

* CI trigger

---------

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2025-02-05 09:58:19 +01:00
Mihai Doarna
5ad31ebe39 API keys: Migrate API keys to service accounts at startup (#96924)
* migrate API keys to SA at startup

* send metrics with api key migration stats

* address feedback

* run API keys migration in a server lock

* update logging
2025-02-05 10:55:47 +02:00
Todd Treece
17e21bff97 Dashboards: Fix title conversions (#100084) 2025-02-04 16:22:42 -05:00
Brendan O'Handley
7ebc81fbbf Explore metrics: Fix otel bug (#100092) 2025-02-04 15:18:30 -06:00
owensmallwood
f9c4d3edce Unified Storage: Updates index latency logging (#100085)
updates index latency logging
2025-02-04 13:33:44 -06:00
Yuri Tseretyan
68f1730461 Alerting: set updated_by for system owned operations (#100068) 2025-02-04 14:23:15 -05:00
Nathan Marrs
6eac07c3a7 Image Renderer: Add support for SSL in plugin mode (#98009) 2025-02-04 10:44:02 -08:00
Matias Chomicki
ff926c5ac5 Logs Panel: Base elements for the new visualization (#99084)
* Create base components

* Create measurement service

* Add container for list

* Use measurement to render virtualized log lines

* Match rendered styles in 2d context for measuring

* Improve virtualization initialization and handle resize

* Introduce log line processing

* Virtualization: fix measurement of lines with line endings

* Virtualization: include scrollbar width in calculation

* Remove logs

* Virtualization: optimize text measurement

* Add support for forceEscape

* Log line: properly style wrapped/unwrapped lines

* Virtualization: handle possible overflows

* Improve overflow handling

* LogList: remove scroll position ref

* Remove logs

* Remove log

* Add top/bottom navigation buttons

* Add timestamp to pre-processing

* Add showtime support

* Fix imports

* Chore: simplify dedup

* Show level

* Refactor measurement and measure level and timestamp

* Virtualization: skip unnecessary measurements

* Improve measurements to minimize overflow chance

* Introduce logline colors

* Update palette

* Remove pretiffying

* Add comment

* Remove unused variable

* Add color for info level

* Fix dependencies

* Refactor overflow to account for smaller estimations

* Debounce resizing

* Fix imports

* Further optimize height calculation

* Remove outline

* Unused import

* Use less under/overflow method

* Respond to height changes

* Refactor size adjustment to account for layout changes

* Add Logs Panel support

* Add margin bottom to log lines

* Remove unused option

* LogList: container div should never be null

Bad API design

* Log List: make app not undefined and update containerElement usages

* New Logs Panel: Create as new visualization (#99427)

* Logs Panel: clean up old panel

* Logs Panel New: create as new visualization

* Plugin: mark as alpha

* Logs panel new: hold container in a state variable

* Logs panel: fix no data state

* Create newLogsPanel feature flag

* Logs: use new feature flag

* Prettier

* Add new panel to code owners

* Logs Navigation: add translations

* Address betterer issues

* Fix import

* Extract translations

* Update virtualization.ts

* Virtualization: add DOM fallback for text measurement

* Run gen-cue

* plugins_integration_test: add logs-new to expected plugins
2025-02-04 18:40:17 +01:00
Sven Grossmann
87bb7c3947 Explore: Fix casing for exploreHideLogsDownload setting (#100081) 2025-02-04 18:32:08 +01:00
Todd Treece
3fd1b67381 Dashboards: Apply schemaVersion migration in v2 conversion (#99973) 2025-02-04 12:11:08 -05:00
Christopher Lord
e74cf72d99 Plugin Metrics: Eliminate data race in plugin metrics middleware (#99396)
fix: eliminate data race in plugin metrics middleware

A data race was detected when multiple goroutines accessed the `MetricsMiddleware`
simultaneously. The race occurred because a single `MetricsMiddleware` instance
was being shared across goroutines while its `BaseHandler` field was being
modified during middleware chain setup.

Fix by creating a new `MetricsMiddleware` instance for each middleware chain,
while safely sharing the thread-safe Prometheus metrics and plugin registry.
This maintains proper metrics collection while eliminating the mutable shared
state that caused the race condition.

Original error was detected here:

```
WARNING: DATA RACE
Read at 0x00c0039c0790 by goroutine 4486:
  github.com/grafana/grafana-plugin-sdk-go/backend.(*ErrorSourceMiddleware).CallResource()
      /Users/clord/src/grafana/irm-devstack/.devenv/state/go/pkg/mod/github.com/grafana/grafana-plugin-sdk-go@v0.261.0/backend/error_source_middleware.go:93 +0x40
  github.com/grafana/grafana-plugin-sdk-go/backend.BaseHandler.CallResource()
  ...

```
2025-02-04 16:54:27 +00:00
Karl Persson
b16e290444 Auth: Remove feature toggle authAPIAccessTokenAuth (#100055)
Remove feature toggle
2025-02-04 16:31:24 +01:00
Tom Ratcliffe
bb15f24dcd Alerting: Update design of rule details tab and add updated by (#99895) 2025-02-04 16:56:17 +02:00
Victor Marin
00bcb61382 DynamicDashboards: Open edit overlay on selection if pane is collapsed (#99885)
* open edit pane on selection

* stuff

* use drawer instead for override panel options

* reverts

* closing edit pane while selection exists should also clear selection

* set width
2025-02-04 16:54:29 +02:00
Sergey Naumov
eb2f8182c0 Dashboards: Allow custom quick time ranges specified in dashboard model (#93724)
* TimeRangePicker: allow to customize quick ranges per dashboard

* TimeRangePicker: show selected custom time range using its name

* rangeutil: add tests for describeTextRange + quickRanges

* Fix up tests, and add an extra case for hidden time ranges

* Don't construct an object to find options, add findRangeInOptions util

* fix type errors detected by TypeScript

---------

Co-authored-by: joshhunt <josh@trtr.co>
2025-02-04 14:36:28 +00:00
beejeebus
cfae9d20d2 Add errorsource to InfluxDB datasource plugin fixes #1072 (#99900)
This PR adds `backend.ErrorSourceDownstream` values to all `backend.DataResponse`
values where it's certain that the error wasn't the result of the
InfluxDB datasource plugin.
2025-02-04 09:33:32 -05:00
Todd Treece
1f0ff19471 Dashboards: Fix schemaVersion test order (#100016) 2025-02-04 09:16:03 -05:00
Isabel Matwawana
4009433792 Docs: fix link text (#99932) 2025-02-04 09:06:39 -05:00
Victor Marin
2efb120737 DynamicDashboards: Fix scroll positioning when returning to dashboard (#100047)
* fix scroll positioning in new layouts editor

* refactor
2025-02-04 15:51:43 +02:00
Karl Persson
958d6e5e3a Auth: Update authlib (#100041)
Bump authlib
2025-02-04 14:36:48 +01:00
Agnès Toulet
cd7c9f8666 Share: Fix short links when root_url is different from the browser URL (#99950)
Share: Fix short links when appUrl is misconfigured
2025-02-04 14:00:55 +01:00
Ivana Huckova
6e7e389ee2 Report grpc canceled timeouts as cancelled status and not error (#99981) 2025-02-04 13:31:03 +01:00
Bogdan Matei
d06d646aa1 DashboardList: Throttle the re-renders (#99982) 2025-02-04 14:14:28 +02:00
brendamuir
5d232daf0b Adds johnny as codeowner for alerting docs (#99877)
* Adds johnny as codeowner for alerting docs

* changes maintainer
2025-02-04 13:10:57 +01:00
Bogdan Matei
c0f8d58079 Bump Scenes to 5.41.2 (#100036) 2025-02-04 13:18:37 +02:00
Alexa V
0fced84796 Dashboards: SchemaV2 - Fix saving dashboards on folder (#100037)
* Remove folder annotations not relevant to v2 api
* Add unit test for folder annotations
2025-02-04 12:57:38 +02:00
jackyin
73e3b04565 Dashboard: Playlist - Fix issue with back button (#99401)
* Playlist: Goback not work
* add unit test
* format code
2025-02-04 11:44:52 +01:00
Ashley Harrison
c94b8b78ae API client generation: Add verify-api-clients step to drone (#99987)
* add verify-api-clients step to drone

* change to check the verify step fails

* ignore conf dir

* rerun make drone

* undo change to make step fail
2025-02-04 09:13:44 +00:00
Alex Khomenko
443cb092b4 RTK APIs: Support multiple source files (#100029) 2025-02-04 10:32:29 +02:00
Stephanie Hingtgen
0fa2d182d6 K8s: Fix dashboard deletion in folders (#100023) 2025-02-04 06:38:57 +02:00
Stephanie Hingtgen
8ac9c47222 Folders: Validator: add temporary fix (#100019) 2025-02-03 17:08:15 -06:00
Jev Forsberg
88c62cd828 Chore: Manually update versions and update grafana-test-datasource to "workspace:*" (#99999)
* baldm0mma/ manually update deps and run yarn

* baldm0mma/ update version from workspace to actual version

* baldm0mma/ revert some workspaces

* baldm0mma/ update workspace

* baldm0mma/ update deps
2025-02-03 15:12:05 -07:00
Jev Forsberg
46af49f907 Chore: Update alpine build docker image (#99998)
baldm0mma/ update alpine build image
2025-02-03 15:06:29 -07:00
Pepe Cano
5fe6479a10 Alerting docs: update screenshot (modify NoData/Error state) (#99996) 2025-02-03 22:01:18 +01:00
Scott Lepper
9677f4b692 [search] fix folder sync (#99913)
[search] fix folder sync
2025-02-03 15:55:22 -05:00
Nick Richmond
29fa6dfc8d ExploreMetrics: Add toggle to enable routing to externalized Explore Metrics app plugin (#99481)
* feat: toggle for explore metrics app plugin

* chore: put app navigation settings behind feature toggle

* chore: require restart

* feat: context-driven applinks toggling

* fix: toggle ownership

* docs: note restart requirement

* refactor: prefer global feature toggle check

* chore: undo rm newlines

* fix: minimize changes

* fix: app id, `chromeless`, sidebar ordering
2025-02-03 15:46:54 -05:00
Yuri Tseretyan
ac41c19350 Alerting: Rule version history API (#99041)
* implement store method to read rule versions

* implement request handler

* declare a new endpoint

* fix fake to return correct response

* add tests

* add integration tests

* rename history to versions

* apply diff from swagger CI step

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

---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-02-03 13:26:18 -05:00
Andreas Christou
8a259ecafa Graphite: Ensure frames have refId set (#99911)
Ensure frames have refIDs

- Sanitise the refID
- Alias the query target with the refID
- Set the appropriate refID on the created frames
- Update tests
2025-02-03 17:43:28 +00:00
Matheus Macabu
66aec9ec1f Docs: Fix typos in Cloud Migration Assistant standalone guide (#99959)
* Docs: fix typo important admonition in Cloud Migration Assistant page

* Docs: fix typo in feature toggle name in Cloud Migration Assistant page

* Docs: fix bullet point <li> missing in Cloud Migration Assistant page
2025-02-03 17:21:34 +01:00
Matias Chomicki
6805c5283c LogsPanel: do not re-render while data is loading (#99882) 2025-02-03 16:47:26 +01:00
Yuri Tseretyan
807f94b2c7 Alerting: Remove feature toggle alertingNoNormalState (#99905) 2025-02-03 17:32:50 +02:00
Ashley Harrison
f728b2df12 API client generation: Dedupe scripts and centralise them (#99970)
dedupe scripts and centralise them
2025-02-03 15:26:23 +00:00
Victor Marin
d96c1169c2 DashboardLayouts: Multi-select elements (#99257)
* wip

* refactor to map

Co-authored-by: Sergej-Vlasov <sergej.vlasov@grafana.com>

* refactor + allow selecting any kind of elements

* rename class

* refactor + tests

* cr changes

* fix deselection on shift clicking multiselected objects

* i18n

* fix

* move logic to elementSelection

* lint fix

* unselecting last multiselected item should reopen dashboard options

---------

Co-authored-by: Sergej-Vlasov <sergej.vlasov@grafana.com>
2025-02-03 17:21:38 +02:00
Eric Leijonmarck
62aaec14b6 LBAC for datasources: Enabled by default - expression "true" (#99971)
* add expression "true"

* update gen json
2025-02-03 14:46:34 +00:00
Alexander Akhmetov
d6c1e3bb45 Alerting: Use org store to read organization IDs (#99938) 2025-02-03 15:38:16 +01:00
Joey
a18fa4af8f Tempo: Fix devenv (#99750)
Fix Tempo devenv
2025-02-03 15:14:41 +01:00
Joey
302e90b8f8 TraceView: Add class name for Explore Traces to hide span details row (#98946)
Add class name for Explore Traces to hide span details row
2025-02-03 15:09:51 +01:00
Mitch Seaman
c3a55ab8cb Docs: Correct license token renewal frequency (#99969)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-02-03 14:09:36 +00:00
Sonia Aguilar
489c5006b4 Alerting: Update irm links for incident and oncall in case new irm plugin is present (#99952)
Update irm links for incident and oncall in case new irm plugin is present
2025-02-03 15:00:32 +01:00
jackyin
6496705120 Dashboards: Remove default empty string from variable create view (#98922)
* default empty string

* optimize
2025-02-03 13:55:41 +00:00
Ashley Harrison
e0151528a4 API client generation: Update iam client (#99963)
* update generated iam client

* update API

* with meta api

* regenerate client

* with identify ref

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-02-03 13:40:36 +00:00
Ida Štambuk
34b2cb5e02 Features: Remove openSearchBackendFlowEnabled feature toggle (#99068) 2025-02-03 14:24:49 +01:00
Marcus Andersson
39605a93ab E2E: Adding API tests for panel edit settings (#99038)
* Updating plugin-e2e!

* Added API tests for new panel edit APIs in plugin-e2e

* Added API tests.

* rebased main.

* removed only.
2025-02-03 14:15:29 +01:00
Ashley Harrison
30bf2bcde1 API client generation: create a central getAPIBaseURL function (#99961)
* create a getAPIBaseURL function

* use base url in iam api
2025-02-03 13:05:47 +00:00
Karl Persson
c85a175212 RBAC: only query folder service when fetching parent folders (#99893)
* only query folder service when fetching parent folders
* Perform validation and inehrited scopes solvers as service instead of caller
2025-02-03 13:56:25 +01:00
Alex Khomenko
a0901456ae RTK Clients: Fix namespace filter (#99949)
* Fix namespace filter

* Update comment

* Update filter
2025-02-03 13:50:15 +02:00
Ryan McKinley
b636b81b16 K8s/IAM: Use raw handler for display (not rest.Connector) (#99898) 2025-02-03 14:24:35 +03:00
grafana-delivery-bot[bot]
2aa78139c4 Release: update changelog for 11.5.1 (#99956)
* Update changelog

* update changelog manually

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: joshhunt <josh@trtr.co>
2025-02-03 11:15:22 +00:00
Karl Persson
d16374d339 Authz: For list collect all folder permisions into items (#99955)
* For list collect all folder permisions into items
---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2025-02-03 12:14:28 +01:00
Andres Martinez Gotor
4cd2ebe186 Grafana Advisor: Automatically generate frontend types (#99807)
* Grafana Advisor: Frontend types

* fix bad merge
2025-02-03 11:45:17 +01:00
Laura Fernández
74e3beabd0 MultiCombobox: add CustomValue as an option (#99815) 2025-02-03 11:41:54 +01:00
Bogdan Matei
61f5f215ee Dashboards: Implement rows repeat in rows layout (#99300) 2025-02-03 11:46:47 +02:00
Ryan McKinley
8c0b812874 Provisioning: Expose dashboard config within grafana (#99947) 2025-02-03 11:44:34 +02:00
Gábor Farkas
295c0afc35 datasources: querier: adjust the query-client (#99805) 2025-02-03 09:06:18 +01:00
Alexander Akhmetov
f45265b5f7 Alerting: Read from both proto and simple DB instance stores on startup (#99855) 2025-01-31 23:34:00 +01:00
Isabel Matwawana
e03656669a Docs: Updated Reporting docs (#99665)
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2025-01-31 17:08:55 -05:00
renovate[bot]
7d9896d07e Update dependency fishery to v2.2.3 (#99914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 18:33:39 +00:00
renovate[bot]
e7902316a8 Update dependency @playwright/test to v1.50.1 (#99912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 17:38:50 +00:00
Dan Cech
481f99b07f Docker: Use our own glibc 2.40 binaries (#99903)
* use our own glibc 2.40 binaries
2025-01-31 12:37:20 -05:00
Ashley Harrison
9693212475 API client generation: Create new IAM api client and use in query library (#99888)
* create new generated iam api client and use in query library

* update betterer

* use new createBaseQuery method

* update CODEOWNERS

* fix unit tests

* use shared type

* update comment

* fix test
2025-01-31 17:12:55 +00:00
Isabel Matwawana
a21265a7ad Docs: Fix broken link (#99907) 2025-01-31 11:25:18 -05:00
Yuri Tseretyan
0be6e1bb86 Alerting: Extra dedup stage in Grafana Alertmanager (#99825)
* add feature flags

* update alerting module

* update grafana alertmanager to configure the extra dedup stage

---------

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
2025-01-31 11:12:38 -05:00
renovate[bot]
d0703cfdbd Update dependency @types/swagger-ui-react to v5 (#99902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 15:50:19 +00:00
Isabella Siu
a3eebd7157 Elasticsearch: Replace term size dropdown with text input (#99718) 2025-01-31 10:20:14 -05:00
renovate[bot]
3d3b781c19 Update dependency @stylistic/eslint-plugin-ts to v3 (#99897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 15:16:37 +00:00
renovate[bot]
2e5f0bf77b Update typescript-eslint monorepo to v8.22.0 (#99891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 15:12:33 +01:00
Karl Persson
c3599d9236 Dashboards: Use uid instead of id to determine if dashboard exists or not (#99890)
Use uid instead of id to determine if dashboard exists or not
2025-01-31 14:46:26 +01:00
Ivana Huckova
7c15d33304 Remove @grafana/experimental in the last various places (#99875)
* Remove @grafana/experimental in the last various places

* Remove experimental from yarn.lock

* Fix import order
2025-01-31 15:43:58 +02:00
Leonor Oliveira
d699f023c2 Return max depth folder reached instead of a generic error (#99804)
* Return max depth folder reached instead of a generic error

* Unit test error function

* Lint

* Update pkg/api/apierrors/folder.go

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>

---------

Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
2025-01-31 14:36:20 +01:00
renovate[bot]
9ae5552cab Update testing-library monorepo (#99889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 13:30:24 +00:00
renovate[bot]
74b04a237d Update dependency yaml to v2.7.0 (#99887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 15:07:05 +02:00
renovate[bot]
05f039d5ab Update dependency type-fest to v4.33.0 (#99883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 12:49:10 +00:00
Alex Khomenko
f51eacef9a RTK APIs: Extract base query logic (#99800)
* RTK APIs: Extract base query function

* Add error handling

* Add return type

* Use createBaseQuery in browseDashboards

* Support custom manageError

* Export getConfigError

* Remove redundant type

* data -> body
2025-01-31 14:25:16 +02:00
renovate[bot]
111f973242 Update dependency react-zoom-pan-pinch to v3.7.0 (#99879)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 14:05:46 +02:00
renovate[bot]
95a19c21df Update dependency @grafana/plugin-e2e to v1.17.1 (#99876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 11:45:03 +00:00
Santiago
39f212a965 Alerting: Call RLock() before reading sendAlertsTo map (#99812)
* Alerting: Call RLock() before reading sendAlertsTo map

* defer unlocking

* drive-tru fix for another lock

* less time holding the lock in SyncAndApplyConfigFromDatabase
2025-01-31 12:43:02 +01:00
Josh Hunt
abc76f8aad Chore: Change jsonMarkup.js to esm (#99269) 2025-01-31 11:03:13 +00:00
Ivana Huckova
3372720a52 Tempo, Pyroscope and tracing: Replace deprecated @grafana/experimental with @grafana/plugin-ui (#99671)
* Tempo: Replace deprecated @grafana/experimental with @grafana/plugin-ui

* Add also pyroscope and tracing features

* align version of package with main
2025-01-31 11:54:28 +01:00
renovate[bot]
71e78b49ab Update dependency stylelint to v16.14.1 (#99873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 10:51:39 +00:00
ismail simsek
d062453c49 Prometheus: Don't show expand rules warning for unique rule (#99540)
* fix recording rule query hints

* don't show the hint twice in code editor

* provide testing rules
2025-01-31 11:46:38 +01:00
renovate[bot]
a2b1a85dc4 Update dependency @types/diff to v7.0.1 (#99864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 11:06:38 +01:00
Tobias Skarhed
7190bfb0ca DashboardVariables: Use Combobox behind feature flag (#98261)
* Add feature toggle

* Use feature toggle

* Remove usage of renderWithCombobox
2025-01-31 11:53:13 +02:00
ismail simsek
1458f5d0fb Prometheus: Use the timerange in languageProvider when it's not provided (#99699)
use the timerange in languageProvider
2025-01-31 10:39:22 +01:00
ismail simsek
ec836f2760 Chore: Code cleaning with unit tests in promlib (#99542)
* update request tests

* remove unused functions

* add unit tests

* remove commented code

* fix unit tests
2025-01-31 10:39:08 +01:00
renovate[bot]
3b231c433f Update dependency semver to v7.7.0 (#99837)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 09:37:24 +00:00
Dominik Prokop
bfdd00665b Schema V2: Support v2 custom home dashboards (#99748) 2025-01-31 10:36:56 +01:00
Alexa V
bda4deb20c Dashboards - Schema V2 - Implement move dashboards using v2 api (#99664)
* Dashboards - Schema V2 - Implement move dashboards using v2 api
* Fix root folder uid not being picked by FolderPicker
2025-01-31 10:30:39 +01:00
owensmallwood
58df80e542 Unified Storage: Fix panic from log (#99850)
evt.Object can be nil, so use the key instead
2025-01-30 19:29:51 -05:00
Ryan McKinley
e3d9b6cadf K8s/Unstructured: Avoid panic in DeepCopy (#99840) 2025-01-31 00:19:09 +02:00
beejeebus
8ce8c1635f Escape database names in MSSQL datasource (#99754)
Valid MSSQL database names can contain characters like `-`, which need
to be escaped when used in queries.

This PR wraps database names in `[]`, and fixes Grafana issue #58757.
2025-01-30 15:36:45 -05:00
Scott Lepper
ce38eb3398 [search] fix dashboard list default sort (#99813)
[search] fix dashboard list default sort
2025-01-30 14:22:22 -05:00
Jacob Valdez
8e53e997a0 Docs: Moving migrate to cloud guide from website repo to OSS (#99829) 2025-01-30 12:32:31 -06:00
renovate[bot]
c8297599a9 Update dependency rollup to v4.32.1 (#99820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 17:27:40 +00:00
github-actions[bot]
415628a2c6 Update make docs procedure (#99789)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-01-30 17:24:02 +00:00
Alexander Zobnin
a95005eab5 Zanzana: Disable broken OpenFGA health check (#99818)
* Zanzana: Disable broken OpenFGA health check

* simplify return

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

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2025-01-30 17:42:48 +01:00
Irene Rodríguez
3d19a778ba Remove old admonition (#99821) 2025-01-30 10:26:34 -06:00
ismail simsek
52aeae1342 Prometheus: Implement dispose method (#99782)
* implement dispose method

* use s instead of i

* add debug log
2025-01-30 16:58:18 +01:00
Ivana Huckova
f92945ac35 Update @grafana/plugin-ui to v0.10.0 (treeshake-able version) (#99809)
* Update @grafana/plugin-ui to v0.10.0 (treeshake-able version)

* Update to 0.10.1
2025-01-30 16:49:28 +01:00
renovate[bot]
9189feeaf5 Update scenes to v5.41.1 (#99811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 15:46:12 +00:00
Andres Martinez Gotor
a066659e11 Frontend Sandbox: Add to statscollector (#99735) 2025-01-30 16:17:36 +01:00
Joey
64e9c38b66 Tempo: Show consistently named links for external reference types (#99008)
* Show consistently named links for external reference types

* Update betterer
2025-01-30 15:14:38 +00:00
Dominik Broj
3589d9192d chore: use IRM plugin ID instead of OnCall / Incident if it's present… (#99742)
* chore: use IRM plugin ID instead of OnCall / Incident if it's present in the stack

* minor improvements

* fix unit tests

* Add IRM plugin discovery tests

---------

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2025-01-30 16:00:23 +01:00
Igor Suleymanov
b683724bec Upgrade grafana-app-sdk to 0.31.0 (#99739)
* Upgrade grafana-app-sdk to 0.31.0

What

This commit upgrades the app SDK to 0.31.0 and re-generates codegen files.
It doesn't touch alerting schemas, because those are quite old and
should be upgraded separately.

This commit slightly alters the schemas for the investigations app,
because the codegen is not happy with the current syntax, for some
reason (probably has to do with CUE upgrades in `cog`).

Why

To make sure we use up-to-date SDK version and remove the workaround for
the `defencoding=none` bug that required us to clean up generated CRD
files.

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

* Revert changes to golden file for store tests

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

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2025-01-30 16:10:42 +02:00
renovate[bot]
7e1a8cb984 Update dependency dompurify to v3.2.4 (#99799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 13:55:08 +00:00
Andrej Ocenas
86a68627dd QueryLibrary: Make query library available outside of Explore (#99319) 2025-01-30 14:53:01 +01:00
Carl Bergquist
a92c8145f1 TopNav: Move news into profile menu (#99535)
* remove news icon from topnav

Signed-off-by: bergquist <carl.bergquist@gmail.com>

* TopNav: Move rss feed and kiosk action into profile menu

* Update language keys

* Update

* review fixes

* Update

* Update

---------

Signed-off-by: bergquist <carl.bergquist@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2025-01-30 14:43:26 +01:00
Gilles De Mey
6392542db4 Alerting: Fix inheritance of the timing options for policy tree (#99398) 2025-01-30 15:42:11 +02:00
Oscar Kilhed
800c9fa3e6 SchemaV2: Rows in dashboard schema v2 (#99239)
* Testing out rows in schemav2

* update schema

* loading sort of works

* descibe position in relation to row

* add row repeats by variable

* explain ts-expect-error

* Save repeats as well

* Update tests for repeat behavior of rows

* Don't add the clones of the repeated rows

* Add row support for response transformer for V2

* Add row actions

* fix panel name

* fix merge issue

* fix tests

* Implement ensureV1

* set key of GridRow

* fix lint issue

* When going from V2 to V1 rows should be assigned unique ids following max panel id

* remove old comment

* Add panel repeats in V2 -> V1 transform
2025-01-30 15:24:37 +02:00
Andres Martinez Gotor
1e3783cc11 Grafana Advisor: Add links to suggested actions (#99764)
Grafana Advisor: Add links to proposed actions
2025-01-30 13:40:37 +01:00
Ivana Huckova
f637ea225a Loki: Replace deprecated @grafana/experimental with @grafana/plugin-ui (#99642)
* Loki: Replace @grafana/experimental with @grafana/plugin-ui

* Fix imports

* Fix incorrect import
2025-01-30 13:13:29 +01:00
renovate[bot]
4aa495fd02 Update dependency centrifuge to v5.3.2 (#99797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 10:49:34 +00:00
Laura Fernández
2df05505db MultiCombobox: Add Clear all button (#99668) 2025-01-30 11:44:15 +01:00
renovate[bot]
c2b44a5da1 Update dependency @swc/core to v1.10.12 (#99796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 10:26:18 +00:00
Ben Sully
408e3e91a8 Live: make maximum WebSocket message size configurable (#99770)
Co-authored-by: Chris Marchbanks <chris.marchbanks@grafana.com>
2025-01-30 10:24:29 +00:00
Ryan McKinley
9d5af95565 K8s/OpenAPI: Remove /watch/ from the openapi spec (#99793) 2025-01-30 12:51:55 +03:00
renovate[bot]
e61036271a Update dependency react-select to v5.10.0 (#99775)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 09:47:58 +00:00
Mariell Hoversholm
0c120db84d Provisioning: Setup server and storage (#99757)
feat: setup server and storage

This simply sets up the API server and its storage for `provisioning.grafana.app`.
Features will be added eventually.
2025-01-30 08:11:50 +01:00
Ryan McKinley
3c0383f0d5 K8s/Test: Allow setting license path in test helper (#99786) 2025-01-30 08:59:00 +02:00
Stephanie Hingtgen
4b0f8d8363 K8s: Fix search when query is set (#99787) 2025-01-30 03:42:06 +02:00
Stephanie Hingtgen
2d491a9367 K8s: Implement folder search (#99781) 2025-01-29 17:44:42 -06:00
Yuri Tseretyan
7007342704 Alerting: k8s receivers api encrypt existing unencrypted secureFields on update (#99784)
* apply security patch: v11.5.x/305-202501232115.patch

commit 874ce8d12caad3742857ca86d2da7d5f81f3f825
Author: Matt Jacobson <matthew.jacobson@grafana.com>
Date:   Thu Jan 23 16:14:28 2025 -0500

    linting

commit c4b6d9194cc8b79e252e562a27a2d09a42d7a5e8
Author: Matt Jacobson <matthew.jacobson@grafana.com>
Date:   Thu Jan 23 14:56:35 2025 -0500

    CVE-2024-11741 - victorops url
2025-01-30 00:48:26 +02:00
Scott Lepper
8e9e3b8362 [search] title phrase (#99753)
[search] rename title_sort to title_phrase
2025-01-29 17:31:59 -05:00
Garret Wyman
cf177776bf Alerting: Adding color option for slack receiver (#99615) 2025-01-30 00:12:16 +02:00
Moustafa Baiou
b820fd6bef Alerting: Fix Alertmanager configuration updates (#99610)
* Alerting: Fix Alertmanager configuration updates

Alertmanager configuration updates would behave inconsistently when performing no-op updates with `mysql` as the store.

In particular this bug manifested as a failure to reload the provisioned alertmanager configuration components with no changes to the configuration itself. This would result in a 500 error with mysql store only.

The core issue is that we were relying on the number of rows affected by the update query to determine if the configuration was found in the db or not.
While this behavior works for certain sql dialects, mysql does not return the number of rows matched by the update query but rather the number of rows actually updated.

Also discovered and fixed the mismatched `xorm` tag for the `CreatedAt` field to match the actual column name in the db.

References: https://dev.mysql.com/doc/refman/8.4/en/update.html
2025-01-29 23:00:45 +02:00
Oscar Kilhed
83d4f6e868 Remove e2e benchmark (#99695) 2025-01-29 21:36:57 +01:00
Leon Sorokin
3954a1948c Data links: Remove messaging around deprecating compact Explore URLs (#99780) 2025-01-29 13:44:09 -06:00
Kristina
1795a2b4e3 Bar Gauge: Add extra padding for scrollbar (#99722)
* Add extra padding in bar gauge if scroll exists

* Add thin scroll bars, and fix test

* add comment about height calculation
2025-01-29 13:02:56 -06:00
renovate[bot]
1048e23872 Update dependency react-i18next to v15.4.0 (#99772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 17:57:54 +00:00
Gilles De Mey
49bd8a608e Alerting: Fix fieldSelector encoding (#99751)
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2025-01-29 19:54:41 +02:00
Santiago
7d4895c3c9 Alerting: Use exponential backoff in the remote Alertmanager readiness check (#99756)
* Alerting: Use exponential backoff in the remote Alertmanager readiness check

* fix capitalized error

* remove unnecessary 'for'

* refactor, use time.After() instead of channel
2025-01-29 18:53:30 +01:00
renovate[bot]
243ce03b93 Update dependency @types/babel__preset-env to v7.10.0 (#99768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 17:29:43 +00:00
Ashley Harrison
8f60308e73 Chore: centralise getK8sNamespace (#99767)
* create new public/app/api folder, expose getK8sNamespace

* rename to getAPINamespace
2025-01-29 17:29:16 +00:00
Scott Lepper
07601bee6f [search] title search wildcard (#99769) 2025-01-29 10:48:19 -06:00
renovate[bot]
be9a7ce908 Update dependency knip to v5.43.6 (#99766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 16:12:47 +00:00
Alex Khomenko
9f4e8ee206 Query Library: Update API client (#99382)
* Add process script

* Working version

* Use new types

* Use new types

* Update client

* Tweaks

* Process multiple specs

* Remove 'any' types

* Use BASE_URL

* Update CODEOWNERS

* Fix filename

* add openapi

* update CODEOWNDER

* use JSONeq

* Use existing specs

* Filter ForAllNamespaces

* Add instructions

* Switch to tsx

* Use openapi-types

* Update src path

* Expand docs

* Update docs

* Rename script

* codeowners

* More docs

* Move openapi-types to dev deps

* Update error message

* Update doc

* Fix typo

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-01-29 18:05:40 +02:00
renovate[bot]
0613ed1f11 Update dependency i18next to v24.2.2 (#99763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 15:47:25 +00:00
Ashley Harrison
d198fa1dd0 Chore: add lint rule prevent t import from i18next (#99761)
* also handle i18next import

* fix violations
2025-01-29 15:46:13 +00:00
Joey
7883215c68 Tempo: Support TraceQL instant metrics queries (#99732)
Support TraceQL instant metrics
2025-01-29 15:40:06 +00:00
Jean-Philippe Quéméner
90c18099a5 fix(unified-storage): return folder title in legacy search (#99762) 2025-01-29 16:38:25 +01:00
renovate[bot]
9b37337f7b Update dependency @types/webpack-env to v1.18.8 (#99759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 17:14:41 +02:00
Kevin Minehart
c0600969e0 CI: update changelog generator to use compare API (#99688)
update changelog generator to use compare API
2025-01-29 09:04:12 -06:00
renovate[bot]
f39517304b Update dependency @tanstack/react-virtual to v3.11.3 (#99746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 14:53:26 +00:00
Dana Axinte
b4802e7116 CloudMigrations: Update Banner on Cloud Stack (#99741)
* add message with flag

* message only in cloud
2025-01-29 14:11:01 +00:00
Laura Fernández
03f89a1925 MultiCombobox: Show placeholder when there is no options selected (#99743) 2025-01-29 15:02:53 +01:00
Mariell Hoversholm
baaff6296f Logging: Use slog adapter for go-kit/log with App SDK logger (#99740)
* feat: use slog adapter for go-kit/log

The adapter library is Apache-2.0, which is compatible with AGPL-3.0 as a dependency.

The adapter library outputs a little more info than we'd like, but rather a couple fields too many than it outputting
ERROR logs as INFO.

* feat: update dependencies

* chore: attribute ownership of dependency

* refactor: move require

* chore: make update-workspace
2025-01-29 14:59:37 +01:00
Jean-Philippe Quéméner
1087ed623f feat(unified-storage): fetch full path if needed (#99747) 2025-01-29 14:50:49 +01:00
Jack Westbrook
514da10f46 Revert "Bug: Fix broken ui components when angular is disabled" (#99730)
Revert "Bug: Fix broken ui components when angular is disabled (#78208)"

This reverts commit 1112e9006b.
2025-01-29 14:22:23 +01:00
renovate[bot]
eb52af2b14 Update dependency @grafana/plugin-e2e to v1.17.0 (#99736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 13:08:19 +00:00
Torkel Ödegaard
ebe2f442bd Dashboard: Simplify handling of variables that update on time range change when used in repeats (#99432)
* Dashboard: Simplify handling of variables that update on time range change when used in repeats

* Update

* Update

* Update

* Update

* Update

* Update
2025-01-29 13:32:50 +01:00
Fayzal Ghantiwala
1444051b65 Alerting: Feature flag to fetch rules by passing down RBAC namespaces (#99738)
New feature flag
2025-01-29 12:17:44 +00:00
renovate[bot]
9b0078326a Update dependency ol-ext to v4.0.26 (#99734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 11:11:23 +00:00
Sven Grossmann
336449c169 Explore: Add hide_logs_download and hide button to download logs (#99512)
* Explore: Add `disableLogsDownload` and hide button to download logs

* change copy

* Explore: Change `disableLogsDownload` to `hide_logs_download`

* change casing in frontend

* also hide from inspector

* add test

* lint
2025-01-29 11:53:52 +01:00
renovate[bot]
6ea87802ed Update dependency @types/webpack-env to v1.18.8 (#99731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 10:47:15 +00:00
Jean-Philippe Quéméner
e6c2db82e0 fix(search): use the right services when unfied search is enabled for folders (#99661)
Co-authored-by: Scott Lepper <scott.lepper@gmail.com>
Co-authored-by: joshhunt <josh@trtr.co>
2025-01-29 11:45:24 +01:00
renovate[bot]
a0f27caff2 Update dependency eslint to v9.19.0 (#99702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 09:46:59 +00:00
Josh Hunt
978101b7a5 ImportDashboards: Use NestedFolderPicker (#99696) 2025-01-29 09:24:41 +00:00
Alexa V
30c8ac7108 Dashboard: Schema V2 - Remove Dashboard id from spec (#99590)
* Dashboard: Schema V2 - Remove Dashboard id from spec

* Fix issue with dashboard id used in examples and serializers for schema v2

* Fix snapshot test
2025-01-29 10:13:56 +01:00
Jack Baldry
8e5a4560e8 Add workflow that comments when PRs include the add to what's new label (#99637)
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2025-01-29 08:36:53 +00:00
Ryan McKinley
8415059290 K8s/OpenAPI: Move openapi snapshots out of the root (#99728) 2025-01-29 09:26:17 +02:00
Stephanie Hingtgen
c7f83b7311 K8s: Fix internal id setting in mode4 (#99720) 2025-01-29 08:17:17 +03:00
Stephanie Hingtgen
b06f83670e Cleanup: comment out unreachable code (#99723) 2025-01-29 07:00:49 +03:00
maicon
20f02ec12f Unistore: refactor provisioning to work with folder service (#99473) 2025-01-29 05:19:38 +02:00
Stephanie Hingtgen
6908f91428 Search fallback: prevent for now (#99725) 2025-01-29 04:57:34 +02:00
Stephanie Hingtgen
745a25ad0a Folders API: Return orgID in response (#99724) 2025-01-28 23:13:26 -03:00
Ryan McKinley
5cd1efb2d1 K8s/Dashboard: Improve legacy error handling (#99658) 2025-01-28 18:47:02 -06:00
Stephanie Hingtgen
6ba18d05be Folders: fix deletion logic that relies on the dashboard store (#99715) 2025-01-29 00:06:53 +02:00
Stephanie Hingtgen
d7070d11f6 k8s: Dashboard history: Fix created by (#99714) 2025-01-28 18:53:12 -03:00
Stephanie Hingtgen
b4b49fc587 K8s: Dashboards: use title sort field instead (#99712) 2025-01-28 23:24:55 +02:00
Isabel Matwawana
055a63873b Docs: add pan and zoom key combos (#99523) 2025-01-28 15:21:41 -05:00
Nikita Pande
046754c3c2 [TLS] Remove the hard-coded TLS ciphers in http.go to fix Pen test findings (#98749)
Remove the hard-coded TLS ciphers in http.go to fix Pen test findings

Signed-off-by: GitHub <noreply@github.com>
2025-01-28 12:57:53 -07:00
owensmallwood
f55686a0b4 Unified Storage: Adds some more traces to search and the bleve search impl (#99704)
adds some more traces to search and the bleve search impl
2025-01-28 21:27:01 +02:00
Alexander Akhmetov
a0bf9202f5 Alerting: Clear the state cache when the alert routine stops (#99681) 2025-01-28 21:15:19 +02:00
Aleksandar Petrov
97f4a164d1 [DOC] Add connection URL info to Pyroscope datasource doc (#99605)
* [DOC] Add connection URL info to Pyroscope datasource doc

* Fix wordlist violation

* Apply suggestions from code review

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

---------

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
2025-01-28 15:02:53 -04:00
Stephanie Hingtgen
516bd0fd1c K8s: Folders: Fix get command (#99690) 2025-01-28 13:00:57 -06:00
owensmallwood
3ba0d8d4b5 Unified Storage: Improve observability for indexing latency (#99700)
* adds extra debug logs and a new metric for poller query latency to help us better understand watch and index latency for write events

* adds trace span to the index for handling index write events
2025-01-28 12:30:20 -06:00
renovate[bot]
dddfce2df7 Update dependency knip to v5.43.6 (#99698)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 18:21:45 +00:00
grafana-delivery-bot[bot]
721c2b0c7c Release: update changelog for 11.5.0 (#99652)
* Update changelog

* baldm0mma/add changelog content

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
2025-01-28 11:18:43 -07:00
renovate[bot]
04c84e06e5 Update dependency @types/swagger-ui-react to v4.19.0 (#99674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 18:01:00 +00:00
owensmallwood
3228ae727e wires up dashboards page to be able to sort by usage stats (sprinkles) (#99479)
* wires up dashboards page to be able to sort by usage stats (sprinkles)

* dont mutate field

* use better type for field

* adds tests. Had to export some types and put the field type back to object.

* frontend asks for sort field in response if needed

* adds some unit tests for getSortOptions

* use Record instead of object

* prettier

* adds ternaries, another unit test
2025-01-28 19:36:26 +02:00
Oscar Kilhed
056b5a7b08 Dashboards: Monitor dashboard loading performance (#99629)
* WIP benchmark dashboard rendering

* Script

* Benchmark with variable and a panel

* Add one more benchmark

* Explicitely enable profiling

* Playwright tests

* update scenes

* Report measurement to faro when config set

* Let user enable metrics reporting in UI

* Fix logging

* Change how performance metrics is enabled per dashboard, now in config file only

* add benchmark run option

* Fix benchmark runs

* fix description for performance config

* remove console.log

* update codeowners

* add back crashDetection init that was lost in merge

* fix yarn.lock

* restore custom.ini

* fix import

* Make sure we have the echoSrv

* fix config type

* Try to limit changes to e2e runs

* remove benchmark

* Fix lint issue

* fix codeowners

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-01-28 18:36:10 +01:00
Ivan Ortega Alba
92d5e82a33 LibraryPanels: Respect model title when adding a library panel (#99687)
* Revert "Revert "LibraryPanel: Fallback to panel title if library panel title …"

This reverts commit 6e705ee67c.

* LibraryPanels: Respect model title when adding a library panel to a dashboard

* remove debugger

---------

Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-01-28 10:19:33 -07:00
Ivan Ortega Alba
abac53bd0a Revert "Revert "LibraryPanel: Fallback to panel title if library panel title is not set"" (#99678)
Revert "Revert "LibraryPanel: Fallback to panel title if library panel title …"

This reverts commit 6e705ee67c.
2025-01-28 09:53:19 -07:00
Arati R.
94a844977e Folders/K8s: Fix createdBy and updatedBy fields in response (#99569) 2025-01-28 10:46:07 -06:00
renovate[bot]
d81b1bf803 Update scenes to v5.41.0 (#99684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 18:37:22 +02:00
Ashley Harrison
6e8e320ace Chore: emit event whenever the theme changes (#99672)
emit event whenever the theme changes
2025-01-28 16:00:54 +00:00
Jacob Valdez
1fb1f8846f Docs: What's new & Upgrade guide v11.5 (#99341)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Robby Milo <robbymilo@fastmail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-01-28 09:16:42 -06:00
renovate[bot]
78848095ca Update dependency swagger-ui-react to v5.18.3 (#99669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 17:01:32 +02:00
renovate[bot]
0a805a2314 Update dependency moment-timezone to v0.5.47 (#99657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 16:40:21 +02:00
Mitch Seaman
fe49b6279a docs: update enterprise docs with license token renewal details (#99662) 2025-01-28 14:38:17 +00:00
Stephanie Hingtgen
0cef2b9ae7 Dashboard Versions: Make compatible with app platform (#99327) 2025-01-28 08:17:52 -06:00
Ashley Harrison
05905a5069 Chore: bracket properly to ensure name is set correctly (#99660)
bracket properly to ensure name is set
2025-01-28 16:16:36 +02:00
Ivana Huckova
058d3946b7 Zipkin: Remove frontend query running code (#99557)
* Zipkin: Remove frontend query running code

* Fix lint
2025-01-28 15:11:10 +01:00
Kristina
52a6c27d99 VizTooltip: Check useragent to perform consistently on all mobile devices (#99655)
* Add useragent check to be comprehensive

* move check outside function and add hopefully clarifying comment
2025-01-28 16:00:15 +02:00
Konrad Lalik
0bf31c14a7 Alerting: Improve default form values handling (#97564)
This PR refactors how rule form state is managed and relies less on prop drilling and removes dependency on redux store.
2025-01-28 15:49:47 +02:00
renovate[bot]
8b9d4d1358 Update dependency @types/node to v22.12.0 (#99638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 13:37:10 +00:00
Josh Hunt
9d635edd0e MultiCombobox: Async options (#99469)
* remove managed isOpen state, add hook to abstract away options/async functionality

* split useOptions into new file

* refactor stories

revert combobox stories to what's in main. I screwed up that rebase

* change onChange type, clean up what calls onChange, add debounce and useLatestAsyncCall

* tests (mid trying to figure out the act stuff)

* tests

* debounce-promise doesn't work with rollup?

* just some minor code clean up

* fix type import
2025-01-28 13:36:59 +00:00
grafana-delivery-bot[bot]
af2c7a19d1 Release: update changelog for 11.4.1 (#99650)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-28 12:29:59 +00:00
grafana-delivery-bot[bot]
b1f39f4b8b Release: update changelog for 11.3.3 (#99647)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-28 12:06:25 +00:00
Fayzal Ghantiwala
f8e7e9e024 Alerting: Make pagination token empty if an invalid token is passed (#99644)
Reset token to empty if invalid
2025-01-28 11:54:11 +00:00
grafana-delivery-bot[bot]
1cc9f8f0c2 Release: update changelog for 11.2.6 (#99645)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-28 11:46:25 +00:00
Gareth Dawson
ecc9b0c10c partner data sources: remove experimental imports from datasources (#99370)
* remove experimental imports from datasources

* add plugin-ui deps

* remove

* trigger workflow

* Make versions of plugin-ui fixed

* Fix import in test

---------

Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
2025-01-28 18:44:22 +07:00
grafana-delivery-bot[bot]
d2eac460cf Release: update changelog for 11.1.11 (#99639)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-28 11:25:01 +00:00
renovate[bot]
8e6a868178 Update dependency papaparse to v5.5.2 (#99635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 10:56:34 +00:00
grafana-delivery-bot[bot]
a66857dfbe Release: update changelog for 11.0.10 (#99636)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-28 10:54:23 +00:00
Alexander Akhmetov
a28328d764 Alerting: Call the deletion reason provider even if the rule is no longer scheduled (#99571)
Alerting: Call the deletion reason provider even if the rule is not scheduled anymore
2025-01-28 11:34:26 +01:00
renovate[bot]
f6fc39e71f Update dependency @types/webpack-env to v1.18.7 (#99633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 10:30:33 +00:00
grafana-delivery-bot[bot]
58a279e109 Release: update changelog for 10.4.15 (#99634)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-28 10:28:22 +00:00
Tobias Skarhed
8c2824cf3b MultiCombobox: Autosize (#99510)
* Add input auto resizing

* Initial auotsize

* Initial implementation

* Remove px

* Remove unused import

* Handle backspace and support the width prop

* Make sizing work with useComboboxFloat

* Remove unused expression

* Add supoport for min and max width

* Change space for clicking
2025-01-28 11:03:08 +01:00
renovate[bot]
a05f539dd2 Update dependency @types/lodash to v4.17.15 (#99632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 10:02:23 +00:00
Stephanie Closson
9c7618160d Update queries-conditions.md (#99592) 2025-01-28 10:52:50 +01:00
Ivana Huckova
58a3e0ae86 Remove @grafana/experimental in @grafana/o11y-ds-frontend and @grafana/sql (#99501)
* Remove @grafana/experimental in @grafana/o11y-ds-frontend

* Remove @grafana/experimental in @grafana/sql

* Fix mock in test
2025-01-28 10:48:19 +01:00
renovate[bot]
ae0de61b92 Update dependency @types/babel__preset-env to v7.10.0 (#99611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 09:39:55 +00:00
Stephanie Hingtgen
959a942b5c K8s: Dashboards: fix in folder count (#99622) 2025-01-28 10:28:12 +01:00
Stephanie Hingtgen
9949a56f3b K8s: Fix legacy stats (#99623) 2025-01-28 10:08:48 +01:00
Tom Ratcliffe
3ed138543d Chore: Fix translation imports from @grafana/ui (#99614) 2025-01-28 08:36:31 +00:00
Joey
acbdc1f415 Tempo: Add separate options groups (#99310)
* Separate options groups

* Editor row for styling
2025-01-28 08:20:23 +00:00
Ryan McKinley
4e703576b0 K8s/OpenAPI: Render openapi into a static file (#99561) 2025-01-28 10:30:53 +03:00
Stephanie Hingtgen
61c5b4a25e Library elements: remove usage of dashboard table on get (#99619) 2025-01-27 17:39:18 -06:00
owensmallwood
fd85ddf647 Unified Storage: Fix search case sensitivity (#99603)
lowercase search query when doing a text query. Doing this makes the NewWildcardQuery be case-insensitive
2025-01-27 20:39:36 +00:00
Stephanie Hingtgen
078ce6a289 Library elements: Delete orphaned connections with the dashboard service (#99612) 2025-01-27 22:37:38 +02:00
Moustafa Baiou
82f457495a Alerting: Correctly escape provisioning API exports (#99039)
When exporting contact-points, mute-timings, and notification policies in the provisioning API, we need to escape the `$` character which is used in interpolation by file provisioning.

Follow up to #97985
2025-01-27 14:59:50 -05:00
Yuri Tseretyan
d71904cb27 Alerting: Expose updated_by in rules GET APIs (#99525)
---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-01-27 14:31:40 -05:00
renovate[bot]
32ae292334 Update dependency rudder-sdk-js to v2.48.44 (#99609)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 19:07:34 +00:00
Stephanie Hingtgen
7ebe599389 Library elements: do not error if dashboard is not found (#99608) 2025-01-27 20:35:30 +02:00
renovate[bot]
8954800d37 Update dependency react-window-infinite-loader to v1.0.10 (#99607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 18:34:18 +00:00
William Assis
be8396cafa Setup legacy search based on mode (#98908) 2025-01-27 12:32:07 -06:00
renovate[bot]
060182a3ba Update dependency ol-ext to v4.0.25 (#99606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 18:07:47 +00:00
Galen Kistler
5c785e6101 LogsPanel: Fix safari text selection bug (#99522)
* feat: a11y review - remove anchor wrapping LogMessage, instead style expand button focus to wrap row
2025-01-27 12:05:50 -06:00
Alexander Akhmetov
cb43f4b696 Alerting: Add compressed protobuf-based alert state storage (#99193) 2025-01-27 18:47:33 +01:00
Josh Hunt
6edd4f5a7c Combobox: Remove circular dependency caused by ComboboxOption type (#99601) 2025-01-27 19:45:09 +02:00
Stephanie Hingtgen
6e705ee67c Revert "LibraryPanel: Fallback to panel title if library panel title is not set" (#99602)
Revert "LibraryPanel: Fallback to panel title if library panel title is not s…"

This reverts commit c862aa4d68.
2025-01-27 10:31:35 -07:00
renovate[bot]
2f2c6360cd Update dependency knip to v5.43.5 (#99600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 17:29:46 +00:00
renovate[bot]
b5ca30c69e Update dependency i18next to v24.2.2 (#99593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 16:59:34 +00:00
Andreas Christou
30ee8b9813 Azure: Correctly set application insights resource values (#99214)
Correctly set resource values
2025-01-27 16:57:43 +00:00
Ryan McKinley
a5c14db051 Folders: Convert between unstructured and legacy (#99504) 2025-01-27 17:37:28 +01:00
renovate[bot]
b4c13defa6 Update dependency eslint-plugin-jsdoc to v50.6.3 (#99591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 16:36:36 +00:00
Andreas Christou
763f0bac90 Azure: Support more complex variable interpolation (#99284)
Support more complex variable interpolation

- Update test
2025-01-27 16:21:24 +00:00
Joey
1f19fc8e0f Tempo: Limit tags and tag values (#98306)
* Limit tags and tag values API response

* Add tag limit setting in datasource

* Add docs

* Update limit options

* Update docs
2025-01-27 16:20:51 +00:00
Alex Spencer
9bdeca8d10 ExemplarMarker: Fix exemplar tooltip box shadow (#99464)
fix: exempla tooltip box shadow
2025-01-27 09:16:31 -07:00
renovate[bot]
1c66e0fe30 Update dependency centrifuge to v5.3.1 (#99577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 16:08:05 +00:00
Fayzal Ghantiwala
848ef72100 Alerting: Check if pagination token is greater than or equal to (#99576)
Use goe for token comparison
2025-01-27 15:56:06 +00:00
Andreas Christou
cc09f38421 MSSQL: Correctly type UDPConnectionLimit (#99011)
* Correctly type UDPConnectionLimit

* Update tests

* Handle legacy case
2025-01-27 15:53:46 +00:00
Andreas Christou
e01d8ad5b5 Azure: Add support for custom namespace and custom metrics variable queries (#99279)
* Add custom metric namespace and metric name queries

* Fix outdated type

* Support specifying custom

- Add custom support to getMetricNamespaces
- Ensure the customNamespace is specified in getMetricNames calls

* Update data source tests

* Support custom namespace/metrics variable queries

- Add tests

* Add fields to variable editor

- Update tests
- Update docs
- Update selectors

* Remove unneeded Promise.resolve

* Add comment

* Don't mutate expected path

* Lint

* Update docs/sources/datasources/azure-monitor/template-variables/index.md

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>

* Update docs/sources/datasources/azure-monitor/template-variables/index.md

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>

* Update docs

* Update conditionals

* Lint

---------

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-01-27 15:53:00 +00:00
renovate[bot]
c6ba0910b4 Update dependency @types/webpack-env to v1.18.6 (#99575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 15:47:36 +00:00
Andres Martinez Gotor
b0e74cf737 Grafana Advisor: Plugin checks (#99502) 2025-01-27 16:39:46 +01:00
renovate[bot]
50b14c533c Update dependency @types/node to v22.10.10 (#99570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 15:25:51 +00:00
Dominik Prokop
ae62b3817b Dashboards: Change the way dashboard not found error is handled (#98950)
* Get rid of _dashboardLoadFailed

* Get rid of dashboardNotFound meta

* Update public dashboards tests

* Fix DashboardPage tests

* DashboardPageProxy tests

* DashboardScenePageStateManager test fix

* Beterer

* Fix merge

* Nits

* Fix test

* remove debugger

* Update get folder to throw

* translate error title

* Update public/app/features/apiserver/types.ts

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>

* Update public/app/features/dashboard/services/DashboardLoaderSrv.ts

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>

* Update public/app/features/dashboard/services/DashboardLoaderSrv.ts

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>

* Update public/app/features/dashboard/services/DashboardLoaderSrv.ts

Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>

* Betterer

* Update test cases

* More test updates

* More translations

---------

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
2025-01-27 15:54:10 +01:00
John Naizer
571f20676d Azure: Bump grafana-azure-sdk-go to 2.1.6 (#99524)
* added changes for rebase

* ran go mod tidy and ran a build

* ran a build

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* updated go.work.sum to upstream

* added newline to match upstream

* added more specificity in documentation

* bump grafana-azure-sdk-go to update package for currentuser auth support

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-01-27 14:50:31 +00:00
Georges Chaudy
7720f0b64e folder: allow standalone folder apiserver (#99508)
* add standalone folders

* add validate

* fix auth
2025-01-27 15:50:06 +01:00
renovate[bot]
a5916116b1 Update dependency @tanstack/react-virtual to v3.11.3 (#99567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 14:28:12 +00:00
Stephanie Hingtgen
dde199f684 Unistore: use object from legacy in mode2 (#99533) 2025-01-27 08:11:31 -06:00
Konrad Lalik
c5ff5d89df Alerting: Add GMA action buttons to the new list view (#98449)
* Add GMA action buttons based on the ruler rule definition

* Improve imports

* Remove rulesSource from Grafana group identifier

* Improve ruler loader error handling

* Clean imports, add details page link

* Remove unnecessary property from the API:

* Change Prometheus page size in the FilterView

* Fix lint errors and tests

* Revert filtered items page size

* Fix cache invalidation for RTKQ ruler requests

* Fix tags ids

* Naming improvements

* Fix lint errors, use util function for pause checking

* Alerting: Add ruleGroupIdentifierV2toV1 function to PR 98449 (#99326)

* Move params validation to the rulerUrlBuilder, tidy up code

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-01-27 15:08:33 +01:00
Isabella Siu
49f8359ce5 Elasticsearch: Fix adhoc filters with number fields (#99514) 2025-01-27 09:04:48 -05:00
renovate[bot]
53cc790180 Update dependency @swc/core to v1.10.11 (#99565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 13:59:18 +00:00
Leonor Oliveira
abe2a5370d Use dashboards service to query for dashboard uid when getting library elements (#99369) 2025-01-27 14:42:57 +01:00
renovate[bot]
e94c9f733b Update dependency @reduxjs/toolkit to v2.5.1 (#99563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 13:30:24 +00:00
Arati R.
a2097fbc2f Folders: Add user service to folder service implementation (#99518)
Add user service to folder service implementation
2025-01-27 14:29:47 +01:00
Haris Rozajac
de1df2f4e9 Dashboard: Add ScopeMeta to DashboardModel (#99475) 2025-01-27 06:28:51 -07:00
Karl Persson
d5d8abcd64 Authn: Use authenticator for inproc (#99550)
Use generic authenticator for inproc
2025-01-27 14:28:46 +01:00
Alexa V
8f3fd8f91d Schema v2: Write Path Implement saveDashboard in v2 client API (#98263)
Create new function for save dashboards written in schema v2 and using the v2 api from k8s
2025-01-27 14:14:19 +01:00
renovate[bot]
ead8236cec Update babel monorepo to v7.26.7 (#99558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 13:05:11 +00:00
Scott Lepper
629b20700c [search] mimic sql search (#99526) 2025-01-27 08:03:39 -05:00
Erik Sundell
394d081df2 Selectors: Add selectors for alert rule steps (#99553)
* add selectors for alert rule steps

* refactor alert rule tests
2025-01-27 13:57:31 +01:00
renovate[bot]
103a8f0793 Update dependency @grafana/plugin-e2e to v1.16.2 (#99492)
* Update dependency @grafana/plugin-e2e to v1.16.1

* bump plugin-e2e

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
2025-01-27 12:44:19 +01:00
Alexander Akhmetov
12bda63871 Alerting: Optional function to find the rule deletion reason (#99422) 2025-01-27 11:35:52 +01:00
Shay Molcho
84da64462e Added missing period for consistency and readability (#99549) 2025-01-27 05:20:24 -05:00
Dominik Prokop
8e078315f0 Schema v2: Reason about new dashboard based on UID (#98879)
* Schema v2: Reason about new dashboard based on UID

* Fix test

* Alerting: respect isNew dashboard for legacy and new arch

* Translate untranslated strings

* Unify is new checks

* PanelInspectDrawer update

* typo fix

* on close test for panel inspect drawer

* Update public/app/features/alerting/unified/PanelAlertTabContent.tsx
2025-01-27 11:18:06 +01:00
Leonor Oliveira
0003efa285 Library Panels: Remove dashboards table dependency when getting all library panels (#99160)
* Remove dashboards table dependency when getting all library panels
* Filter library elements a user can see using the folder service
* Stop using folder name as UID in get all elements tests
* Set actual folder name not UID when getting all elements
* Stop selecting folder name in the get all elements sql query
* Introduce a library elements param selector without where clause
* Include empty string as general folder UID when getting all library elements

---------

Co-authored-by: suntala <arati.rana@grafana.com>
2025-01-27 10:51:41 +01:00
Misi
25bb210ca3 Auth: Store array settings from the config UI in JSON array format (#99454)
* Store array settings in JSON array format

* Align tests
2025-01-26 10:08:07 -05:00
Sven Grossmann
154a57cd30 Explore Metrics: Add panel menu with "Explore" and "Investigations" options (#98900)
* Explore Metrics: Add panel menu with "Explore" and "Investigations" features

* Explore Metrics: Get better explore link

* hide menu in metricSelect

* Update public/app/features/trails/Breakdown/LabelBreakdownScene.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/MetricSelect/MetricSelectScene.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* fix: formatting

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
Co-authored-by: Nick Richmond <nick.richmond@grafana.com>
2025-01-24 22:51:04 +02:00
Alex Spencer
35a581a2ba GroupingToMatrix: Type fix to resolve localeCompare error (#98710)
* draft: coerce types to string to prevent localCompare bug

* chore: update with comment for draft

* chore: cleanup and change fix

* fix: instantiate compare outside of functions scope

* chore: update tests!

* fix: make the linter happy again

* fix: remove unnecessary loop to generate array

* chore: revert forEach to for loops, other changes also

* chore: reduce diff

* chore: one more revert

---------

Co-authored-by: drew08t <drew08@gmail.com>
2025-01-24 13:45:20 -07:00
Kristina
d409853683 StatusHistory: Add pagination option (#99517)
* first pass

* Add to docs

* Move pagination hook and styles to a shared util

* Update docs/sources/panels-visualizations/visualizations/status-history/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-01-24 21:52:04 +02:00
Yuri Tseretyan
af663dadc7 Alerting: Refactor integration tests (#99519)
---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-01-24 14:49:05 -05:00
Adam Yeats
4570f7319d Add E2E smoke tests for Jaeger, PostgreSQL, Zipkin (#99515) 2025-01-24 20:21:41 +01:00
Yuri Tseretyan
92d6762a3a Alerting: Store information about user that created\updated alert rule (#99395)
* introduce new fields created_by in rule tables
* update domain model and compat layer to support UpdatedBy
* add alert rule generator mutators for UpdatedBy
* ignore UpdatedBy in diff and hash calculation
* Add user context to alert rule insert/update operations
  Updated InsertAlertRules and UpdateAlertRules methods to accept a user context parameter. This change ensures auditability and better tracking of user actions when creating or updating alert rules. Adjusted all relevant calls and interfaces to pass the user context accordingly.

* set UpdatedBy in PreSave because this is where Updated is set
* Use nil userID for system-initiated updates
This ensures differentiation between system and user-initiated changes for better traceability and clarity in update origins.

---------

Signed-off-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
2025-01-24 12:09:17 -05:00
lean.dev
b3209b1e01 CloudMigrations: Remove onPremToCloudMigrationsAuthApiMig feature flag (#99368) 2025-01-24 13:53:58 -03:00
Sonia Aguilar
63a89afe00 Alerting: Fix silence drawer being re-rendered when the alert list is refreshed (#99468)
* Fix silence drawer being re-rendered when the alert list is refreshed

* remove unnecessary formValues usage as prop

* remove AlertmanagerProvider in RuleActionsButtonsV2
2025-01-24 17:03:58 +01:00
Sonia Aguilar
888965023c Alerting: Fix getting targets in dag when using classic condition (#99503)
* fix getting targets in dag when using classic condition

* remove query fingerprinting
the DAG function is probably fast enough and the fingerprinting function is too complex to make it work for all expression types

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-01-24 17:45:46 +02:00
Santiago
361312bbd7 Alerting: Expect 406s from the remote Alertmanager during the readiness check (#99507)
* Alerting: Expect 406s from the remote Alertmanager during the readiness check

* make it clear in the warning logs that we'll attempt to send the confgiuration/state without comparing in case of error pulling the current state/config
2025-01-24 16:26:57 +01:00
Stephanie Hingtgen
6284dd61ae K8s: Fix get dashboard by plugin id (#99509) 2025-01-24 15:26:42 +00:00
Sofia Papagiannaki
d192a44469 Plugins: Modify interface for plugin validations to allow taking PDC into account (#96089)
* Request interceptor: Do not block PDC

* Apply change after feedback received

* Add test

* Check if secure socks proxy configured for the instance

* Apply suggestions from code review

* Add dedicated service for datasource request URL validation (#99179)

---------

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2025-01-24 17:01:46 +02:00
Ieva
33a53d170b AuthZ service: Add metrics (#99007)
* add metrics for authZ MT service

* remove metrics that are already tracked by the GRPC server metrics

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

* undo unneeded change

* test fix

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2025-01-24 14:03:23 +00:00
Misi
437b7a565d Auth: Add access token to in-proc communication and ServiceIdentity (#98926)
Use fake access token for in-proc grpc and add ServiceIdentity 
---------

Co-authored-by: gamab <gabriel.mabille@grafana.com>
Co-authored-by: Karl Persson <23356117+kalleep@users.noreply.github.com>
2025-01-24 14:03:23 +01:00
John Naizer
eb2d276a42 OAuth: Add support for new user identity flags for grafana-azure-sdk-go (#98703)
* added changes for rebase

* ran go mod tidy and ran a build

* ran a build

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

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

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* updated go.work.sum to upstream

* added newline to match upstream

* added more specificity in documentation

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-01-24 12:48:27 +00:00
Gareth Dawson
33d82c43df Jaeger: run health check through backend (#99322)
run health check through backend
2025-01-24 19:37:36 +07:00
Ivana Huckova
e3ba96113c @grafana/plugin-ui: use fixed version of package (#99500)
@grafana/plugin-ui: use set version of package
2025-01-24 13:35:55 +01:00
Tobias Skarhed
a9f62953df Combobox: Add fuzzy search (#99359)
* Add initial fuzzy match

* Remove unused import

* Fuzzy search for Multi

* Remove old filter function

* Restore changes to Multi while waiting for async

* Add non ascii support and memoize stringified version

* updates

* Add tests

* Add tests for real this time

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-01-24 13:31:55 +01:00
Ivana Huckova
2dfb796f21 Prometheus package: Replace deprecated @grafana/experimental with @grafana/plugin-ui and @grafana/llm (#99385)
* Prometheus package: Replace deprecated @grafana/experimental with @grafana/plugin-ui and @grafana/llm

* Fix @grafana/llm mock in test

* Keep version exact

* Keep version exact

* Update lock
2025-01-24 12:46:31 +01:00
Alex Bikfalvi
b07a39bb46 docs: Fixes broken link in data source LBAC (#99496)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-01-24 11:28:15 +00:00
Stephanie Hingtgen
c787239252 Folder guardian: fail on empty uid (#99465) 2025-01-24 11:26:05 +01:00
Josh Hunt
7cb6845d44 Combobox: refactor stories (#99482)
refactor stories
2025-01-24 09:57:20 +00:00
Josh Hunt
df024793d8 GrafanaUI: Fix error handling from rejected promises in Combobox (#99478)
fix error handling not actually catching rejected promises from options fn
2025-01-24 09:55:49 +00:00
renovate[bot]
5da15ccdc4 Update scenes to v5.38.0 (#99470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 09:37:35 +00:00
Tom Ratcliffe
8c2a74bd74 Chore: Add vscode ESLint debug target (#98277) 2025-01-24 09:34:32 +00:00
Gabriel MABILLE
a9f0e15778 AuthZ: Change cache interface (#99058)
* Authz: Switch to remotecache

* Todos

* lint

* lint test

* test readibility

* Remove ttls

* implement a cache wrap

* Rm unused func

* Comment

* Update workspace:

* Use cache

* Fix comment
2025-01-24 09:51:39 +01:00
Stephanie Hingtgen
6a205af5fe K8s: Fix GetDashboards (#99484) 2025-01-24 00:37:15 +02:00
Alex Spencer
af640e2e50 PanelDataPane: Render bottom border on tabs bar (#99471)
fix: render bottom border on tabs bar
2025-01-23 14:37:11 -07:00
Ezequiel Victorero
3a94057ec8 PublicDashboards: Delete on folder deletion (#99040) 2025-01-23 17:23:59 -03:00
Kristina
fdbac6fb54 State Timeline / Status History / Heatmap: Show vertical lines for regional annotations (#99480)
* show vertical annotation lines when canvasRegionRendering is not true

* simplify

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-01-23 22:20:40 +02:00
Galen Kistler
be40f531e6 Loki: Add fetchDetectedFields to LanguageProvider (#99394)
* feat: add fetchDetectedFields to loki LanguageProvider
2025-01-23 12:56:37 -06:00
Adela Almasan
572be19f76 DataLinks: Add one-click option (#98563)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-01-23 12:47:42 -06:00
Kristina
e9d9b15295 StateTimeline / StatusHistory: Add axis visibility and width controls (#98548)
* Allow setting the y axis width

* Add to docs

* Add to status history as well

* Add to status history docs and schema

* Change config to come from generic axis builder

* keep axis

* Change overridden label

* Update docs/sources/panels-visualizations/visualizations/status-history/index.md

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

* Update docs/sources/panels-visualizations/visualizations/state-timeline/index.md

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

* Remove the category/label override

* Move axis to its own section in docs as well

* clean

* rename to addAxisWidth

* Apply suggestions from code review

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

* Move sections to match UI order

* Update docs/sources/shared/visualizations/axis-options-all.md

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

* Change other axis options doc to be consistent.

* Fix linter

* add AxisPlacement

* Add new placement option to docs

* change some wording

* Apply suggestions from code review

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

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-01-23 12:21:24 -06:00
renovate[bot]
d24e7c126d Update dependency yaml to v2.7.0 (#99466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 17:21:11 +00:00
ismail simsek
6b227bb374 Prometheus: Handle non-json errors in a better way (#99342)
* handle json errors in a better way

* update comments

* update unit tests

* Update pkg/promlib/converter/prom.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/promlib/querydata/response_test.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/promlib/querydata/response_test.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/promlib/querydata/response_test.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* update import

---------

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2025-01-23 18:05:23 +01:00
renovate[bot]
75e7236687 Update dependency type-fest to v4.33.0 (#99463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 16:41:27 +00:00
Todd Treece
a4ef1f76e4 Dashboards: Backend schema version migration (#99392) 2025-01-23 11:40:22 -05:00
Stephanie Hingtgen
192a81d07f Folders: Fix guardian to use folder service (#99339) 2025-01-23 10:30:14 -06:00
renovate[bot]
59b246dbea Update dependency stylelint to v16.13.2 (#99455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 16:10:59 +00:00
Juan Cabanas
ef3a53f85c Share: Add tracking to invite user button (#99376) 2025-01-23 13:06:48 -03:00
ismail simsek
ec9f59fe9e Chore: Bump promlib to v.0.0.8 (#99458)
* bump promlib

* make update-workspace
2025-01-23 18:06:14 +02:00
Andres Martinez Gotor
3993d691f4 Advisor: Implement authorizer (#99440) 2025-01-23 18:00:02 +02:00
Josh Hunt
a540c2fe7c MultiCombobox: Refactor open state (#99453)
* Make downshift useCombobox own the isOpen state again

* oopsie, removed my console logs
2025-01-23 15:31:34 +00:00
Andres Martinez Gotor
b066a63131 Grafana Advisor: Datasource checks (#99313) 2025-01-23 16:19:50 +01:00
renovate[bot]
7d2eb83cbd Update dependency @playwright/test to v1.50.0 (#99452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 15:11:05 +00:00
Gabriel MABILLE
05015a57b3 Chore: Upgrade authlib (#99447) 2025-01-23 15:52:03 +01:00
Tobias Skarhed
5ca24fde02 AutoSizeInput: Improve performance when typing (#99443)
* AutoSizeInput: Fix performance issue

* Add comments

* Fix a little oopsie
2025-01-23 16:48:06 +02:00
renovate[bot]
f6202f59d4 Update dependency rollup to v4.31.0 (#99449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 14:38:27 +00:00
Ryan McKinley
a037c6f344 K8s/Folders: Remove kubernetesFolders flag and full path metadata (#99256)
* remove full path

* remove more

* remove KubernetesFolders tests

* remove feature toggles

* remove feature toggles

* skip permissions test

* skip permissions test

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-01-23 17:25:03 +03:00
renovate[bot]
d39e57e836 Update dependency react-i18next to v15.4.0 (#99444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 13:42:29 +00:00
Stephanie Hingtgen
89dd54a474 Folder: delete from folder table after children (#99399)
Co-authored-by: maicon <maiconscosta@gmail.com>
2025-01-23 07:36:07 -06:00
Sonia Aguilar
2716db4270 Alerting: Use stack_id instead of id in cloud failures panel in the Insights page (#99424)
* Use stack_id instead of id in cloud failures panel in the insights page

* update all the wrong id to stack_id
2025-01-23 14:13:29 +01:00
Andreas Christou
4e740d8410 GCM: Time-range fix (#98455)
* Include timeRange on all query executors

* Ensure queries run against query specific time range

* Fix lint

* Improve safety of annotations queries
2025-01-23 14:57:00 +02:00
renovate[bot]
e110338dce Update dependency react-highlight-words to v0.21.0 (#99442)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 14:51:31 +02:00
renovate[bot]
c62bc501d3 Update dependency @types/node to v22.10.9 (#99413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 12:33:13 +00:00
Karl Persson
b79f1b2a29 AuzerAD: Handle empty client_authentication case (#99437)
AuzerAD: Require client secret when client_authentication is set to empty string
2025-01-23 13:04:51 +01:00
Karl Persson
b0347792cc Zazana: Fix verb to relation mapping (#99409) 2025-01-23 13:04:41 +01:00
Ivan Ortega Alba
83bbdbf8b6 LibraryPanel: Use id and title from panel model (#99281) 2025-01-23 13:57:45 +02:00
Anton Engelhardt
750027d0a7 fix(docs): add team call returns uid (#99425)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-01-23 12:03:56 +01:00
Ryan McKinley
c4c934e0bd SQL/Storage: Remove SkipDataMigration flag (#99404) 2025-01-23 12:34:48 +02:00
Jack Baldry
fc7db91bf1 Use tags for documentation-ci actions (#99419) 2025-01-23 10:26:37 +00:00
Ieva
723fa7ddf9 MT AuthZ: Resolve renderer permissions in MT authZ service (#99362)
* resolve renderer permissions in MT authZ service

* also include DS read perms

* fix tests and linting
2025-01-23 10:21:43 +00:00
Mariell Hoversholm
4fb7b47971 Trivy: Document Vulnerability Observability (#99414)
We use Vulnerability Observability for Docker images. The current comments say we simply don't scan them at all, so
let's make it clear for future readers that we do, in fact, scan Docker images, too.
2025-01-23 11:02:23 +01:00
Nick Botticelli
d476b65d34 Docs: Fix chmod command for LetsEncrypt cert/key file access (#98354)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-01-23 10:46:32 +01:00
Mariell Hoversholm
25447ea93a Fix: Update yarn.lock so CI can pass again (#99416)
Chore: Update yarn.lock

`yarn install && yarn build`
2025-01-23 10:38:43 +01:00
renovate[bot]
db3dcd4f7d Update dependency knip to v5.43.1 (#99381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 09:50:25 +01:00
Ivan Ortega Alba
c862aa4d68 LibraryPanel: Fallback to panel title if library panel title is not set (#99377) 2025-01-23 09:46:25 +01:00
Karl Persson
d740f9fc60 Authz: Simplify mapper and only check folders if its supported (#99357)
* Simplify mapper and only check folders if its supported
2025-01-23 09:23:00 +01:00
Mitch Seaman
36fadf19d1 Docs: add user de-duplication description, update usage billing instructions (#99333)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2025-01-23 08:33:26 +01:00
Ida Štambuk
dfc565db8d Datasources: Replace deprecated @grafana/experimental with @grafana/plugin-ui in Cloudwatch and Elasticsearch (#99374) 2025-01-23 03:00:30 +01:00
Brendan O'Handley
1a634b0539 Explore metrics: Add metadata heuristic for native histograms (#99348) 2025-01-22 18:09:03 -06:00
Brendan O'Handley
887e9fb5b5 Explore metrics: fix flexGrow issue with native histograms banner (#99346) 2025-01-22 18:07:51 -06:00
Ryan McKinley
7564ce8ce1 Chore: update feature toggle git stats (#99390) 2025-01-22 14:48:51 -05:00
maicon
8de4b64047 Unistore: get folder by title (#99391)
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-01-22 16:47:46 -03:00
Haris Rozajac
1c8a7d8872 Dashboard Schema V2: Remove type assertions and anys from schemav2 code (#99222)
* Remove type assertions and anys from schemav2 code

* Handle type conversion

* fix test

* Filter undefined
2025-01-22 09:45:49 -07:00
Alex Spencer
29d9d8cf51 GroupingToMatrix: Defensively guard against null column name (#99286)
* bugfix: defensive guard against null columnName

* fix: per suggestion limit diff and revert alphabetization of properties

* test: add test for null case

* chore: remove it.only

* test: convert to inline snapshot
2025-01-22 09:37:21 -07:00
Haris Rozajac
a0e7569e4f Dashboard Schema V2: ResponseTransformers: Transform layout, panels, annotations and variables when ensuring v1 (#99050)
* wip

* Fix annotationV1

* variables

* tests

* Fix query variable

* Don't need extra chaining arg in maxPerRow

* Logic for libary panels; tests for variables and library panels

* lint
2025-01-22 08:56:20 -07:00
Dominik Prokop
daced46d27 Schema v2: Remove schemaVersion property (#99375)
* Schema v2: Remove schemaVersion property

* ah snap
2025-01-22 16:52:34 +01:00
ismail simsek
88ab29f6ba Explore Metrics: Open queries that have utf8 labels in explore properly (#99117)
* open queries that have utf8 labels in explore properly

* remove unnecessary line

* Revert "open queries that have utf8 labels in explore properly"

This reverts commit 85b81c96

* remove quoting

* support open in explore
2025-01-22 16:41:40 +01:00
renovate[bot]
974cec2936 Update dependency fs-extra to v11.3.0 (#99378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 17:05:55 +02:00
renovate[bot]
a05bb05e60 Update dependency eslint-plugin-jest to v28.11.0 (#99365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 14:44:52 +00:00
Andres Martinez Gotor
003f0e5918 Plugins: Expose function to retrieve gcom info (#99372) 2025-01-22 16:41:34 +02:00
Ivana Huckova
23f495d4cd Big tent data sources: Replace deprecated @grafana/experimental with @grafana/plugin-ui (#99331)
* Zipkin: Replace deprecated @grafana/experimental with @grafana/plugin-ui

* Prometheus: Replace deprecated @grafana/experimental with @grafana/plugin-ui

* Mysql: Replace deprecated @grafana/experimental with @grafana/plugin-ui

* Jaeger: Replace deprecated @grafana/experimental with @grafana/plugin-ui

* Postgresql: Replace deprecated @grafana/experimental with @grafana/plugin-ui

* Brin experimental back to main package.json - accidentally removed

* Fix order of imports
2025-01-22 15:18:41 +01:00
Bogdan Matei
d2d6dd2e5f Dashboards: Prevent rows nesting (#99246) 2025-01-22 15:57:45 +02:00
Dominik Prokop
51b4ac50aa Panel inspect: Fix inspect keyboard shortcut when grafana served from subpath (#99366)
* Panel inspect: Fix inspect keyboard shortcut when grafana served from a subpath

* Add e2e test
2025-01-22 13:25:10 +01:00
Sven Grossmann
5b8e6f8fa8 Explore: Prevent hidden queries from being run as supplementary query (#99356)
fix(loki/elasticsearch): prevent hidden queries from being run as supplementary query
2025-01-22 13:13:57 +01:00
Ida Štambuk
149bc74191 ElasticSearch: Parse histogram interval as float instead int (#99270) 2025-01-22 12:51:24 +01:00
owensmallwood
dd483fc17f Unified Storage: Search permissions put behind feature flag (#99340)
* add feature flag

* puts search permission filtering behind a feature flag

* fixes issue with doc match id. When the match is for an in-memory index, the internal id is a string (this is what we expected). However, when its a file-based index, the internal id is a binary encoded int64 that point to something internally. So to get the id, we need to use ExternalID() instead of relying on the indexInternalID to be the correct format.

* adds debug log

* update comment

* formatting
2025-01-22 05:38:37 -06:00
Torkel Ödegaard
5b5831ae34 Dashboard: Simplify repeating logic and panel menu interaction (#99352)
* Dashboard: Simplify repeating logic and panel menu interaction

* Update

* Remove unused behavior
2025-01-22 12:25:04 +01:00
Ryan McKinley
9d30911107 SQL/Storage: Use xorm code migration for DeletionMarker (#99353) 2025-01-22 14:07:08 +03:00
renovate[bot]
3ae6e09fee Update scenes to v5.37.1 (#99364)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 11:01:37 +00:00
dependabot[bot]
2dfa0abfbe Bump undici from 6.19.8 to 6.21.1 (#99345)
Bumps [undici](https://github.com/nodejs/undici) from 6.19.8 to 6.21.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.19.8...v6.21.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-22 11:59:57 +01:00
Sam Jewell
97db8b19c7 [Prometheus]: Mark ALERTS synthetic metric as a gauge (#99328)
Mark ALERTS synthetic metric as a gauge

It's not a counter. It can go down in value, but counters cannot
2025-01-22 10:50:33 +00:00
renovate[bot]
4b8e6b3401 Update dependency @grafana/plugin-e2e to v1.16.0 (#99358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 10:39:10 +00:00
antonio
88d5ae8153 docs>alert-rules>templates:example-fix (#99355)
* docs>alert-rules>templates:example-fix

* second-fix

* fixed 2 other label templates
2025-01-22 11:01:11 +01:00
renovate[bot]
5791115b0a Update dependency centrifuge to v5.3.0 (#99337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 09:41:11 +00:00
maicon
28ad61ff6c Unistore: Get Folder By ID (#99131)
* Unistore: Get Folder By ID

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

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-01-22 01:45:59 -03:00
Matthew Jacobson
20d25c6ad9 Alerting: Use rule uid in silenceURL template instead of alertname and folder (#99221)
* Update grafana/alerting to a5e8136407d4

Includes:
- Alerting: Use rule uid in silenceURL template instead of alertname and folder (#266)

* Fix tests
2025-01-21 18:11:22 -05:00
Dave Henderson
f1e9c5b1ef chore: Use non-zero version to reference github.com/grafana/grafana Go module (#99343)
Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2025-01-21 23:59:22 +02:00
Todd Treece
2622449718 Dashboards: Use dashboard service in access control (#99053) 2025-01-21 22:57:43 +02:00
maicon
45e2f95a41 Unistore: Avoid circular dependency when injecting restcfgprovider into FolderSvc (#99295)
* Avoid circular dependency when getting a restCfgProvider for Folder Svc

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

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-01-21 17:42:38 -03:00
Leon Sorokin
1c858caec3 Transformations: Use FrameMultiSelectionEditor in Filter data by refId (#97212)
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-01-21 13:36:34 -06:00
Leon Sorokin
a03f897cd5 Table: Fix viz suggestions (#99335) 2025-01-21 13:25:33 -06:00
Matias Chomicki
dccca0729f Logs Volume: Do not throw when fields are missing (#99318)
* Logs Volume: Do not throw when fields are missing

* Add removed line back

* Prevent permanent mutations

* Decrease nesting

* Move conditional up

* Update public/app/features/logs/utils.ts

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>

* Use dataframe length and remove from function

* Use getFieldDisplayName

* Keep original dependency array

* Keep original dependency array

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2025-01-21 20:02:07 +01:00
renovate[bot]
ad30ca2ccd Update dependency @react-types/shared to v3.27.0 (#99332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 17:54:06 +00:00
Syerikjan Kh
97d8f68b70 Feat: Data source connections tab in plugin detail page (#99049)
* feat: datasource connections tab in plugin detail page

* test: no ds defined test added

* feat: configure feature toggle

* chore: i18n extract

* test: added unit tests for page and list
2025-01-21 12:39:48 -05:00
Bogdan Matei
b11d3bc045 Dashboards: Prevent panel selection on drag and items click (#99190) 2025-01-21 19:26:06 +02:00
Ashley Harrison
2982d95a74 Chore: Convert query library to use generated RTK query apis (#99314)
* add generate script and endpoints.gen.ts

* temp state with delete working

* list + save working

* edit working

* starting to clean up

* fix remaining type errors

* remove withNamespace function

* fix richhistory

* clean up some types

* extract query limit to endpoint definition

* extract namespace logic into common util

* update CODEOWNERS

* move script to be nearer generated endpoints

* remove nonexistent script from CODEOWNERS
2025-01-21 17:25:45 +00:00
renovate[bot]
bd84fdad51 Update dependency @swc/core to v1.10.9 (#99330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 16:37:29 +00:00
Ryan McKinley
3bc9f10bb3 Dashboards/SQL: Improve SQL query behavior (#99253)
* update legacy dashboard SQL

* merge main

* trim message
2025-01-21 19:35:33 +03:00
Victor Marin
eaca8e501f DashboardScenes: Fix issue where timezone was not considered in relative time override (#99316)
* Fix issue where timezone was not considered in relative time override

* fix
2025-01-21 18:09:23 +02:00
renovate[bot]
5532d7007c Update dependency @grafana/plugin-e2e to v1.15.0 (#99320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 16:01:21 +00:00
ismail simsek
12ae2a520c Explore Metrics: Remove overview tab in metric select view (#97118)
* introduce the exploreMetricsRemoveOverviewTab feature toggle

* handle actionView equal to overview in url

* set description in selected metric scene

* fix import

* ExploreMetrics: Disable the Overview tab by default (#98988)

feat: disable overview tab by default

* fix: remove unnecessary feature toggle

* chore: remove overview

* make i18n-extract

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
Co-authored-by: Nick Richmond <nick.richmond@grafana.com>
2025-01-21 16:51:02 +01:00
owensmallwood
6f12b8e3a4 Unified Storage: Add more debug logs to permission filtering (#99325)
add more debug logs
2025-01-21 17:34:58 +02:00
Stephanie Hingtgen
2fe510eb6f Dashboards: set max length of message to 500 (#99229) 2025-01-21 08:50:24 -06:00
Ezequiel Victorero
865e911e10 Share: Add analytics to invite user flow (#99116) 2025-01-21 11:47:57 -03:00
Pepe Cano
c7edbffd82 Alerting docs: add Admonitions to Link Doc pages with practical Tutorials (#99317)
Alerting docs: add admonitions to link to practical tutorials
2025-01-21 15:18:57 +01:00
Galen Kistler
ee0129e8cf Loki datasource: move loki-editor e2e test to playwright (#99192)
* test: rewrite cypress test in playwright

* Update e2e/plugin-e2e/plugin-e2e-api-tests/as-admin-user/lokiEditor.spec.ts

Co-authored-by: Matias Chomicki <matyax@gmail.com>

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>
2025-01-21 15:39:33 +02:00
renovate[bot]
5a45f59573 Update dependency @faker-js/faker to v9.4.0 (#99315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 13:37:00 +00:00
Tobias Skarhed
36f850601f MultiCombobox: Extract message rows (#98614)
* Extract messagerows

* Fix imports

* Fix again

* Remove export

* Fix text color
2025-01-21 14:22:09 +01:00
Yulia Shanyrova
3177e33470 Plugins: Return styles for info section at Plugin details panel (#99307)
return styles for info section
2025-01-21 14:08:17 +01:00
Ryan McKinley
1740ee82ba Chore: Avoid authlib/claims in go.mod (#99311) 2025-01-21 14:01:21 +01:00
renovate[bot]
c1eac9f997 Update dependency @bsull/augurs to ^0.9.0 (#99309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 13:50:06 +02:00
Andres Martinez Gotor
e747350fee Grafana Advisor: Skeleton app (#99242) 2025-01-21 12:31:33 +01:00
renovate[bot]
1b5eaebb6e Update dependency knip to v5.42.2 (#99308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 11:28:24 +00:00
renovate[bot]
83fffe83a2 Update dependency eslint-plugin-jsdoc to v50.6.2 (#99305)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 11:09:55 +00:00
renovate[bot]
13121ccf23 Update dependency @types/node to v22.10.7 (#99288)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 12:22:37 +02:00
Ryan McKinley
0f023e7039 FeatureToggles: remove panelTitleSearchInV1 (#99292)
remove panelTitleSearchInV1
2025-01-21 12:59:32 +03:00
Ryan McKinley
d8b6ded101 K8s: use deprecatedInternalID label rather than SQL annotation (#99263) 2025-01-21 12:38:14 +03:00
Pepe Cano
9ce9ad1777 Alerting docs: add instructions to execute notification template examples (#99275) 2025-01-21 10:32:04 +01:00
Ryan McKinley
d91d729749 Storage/SQL: Support more filter by namespace/group/resource (#99249) 2025-01-21 12:15:08 +03:00
Ryan McKinley
680e6bc1f8 Authlib: Use types package rather than claims (#99243) 2025-01-21 12:06:55 +03:00
Ryan McKinley
b2d0359e72 K8s/Folders: Remove slow/redundant folder integration tests (#99291) 2025-01-21 11:14:31 +03:00
Victor Marin
bf1a0837af DashboardScenes: Fix issue where relative time does not pass properly (#99282)
fix issue where relative time does not pass properly
2025-01-21 09:37:40 +02:00
ismail simsek
d3a27a8c73 Chore: Remove redundant test files (#99293)
remove redundant test files
2025-01-21 07:17:38 +03:00
owensmallwood
c45aff1251 Unified Storage: Permissions can filter search results (#99042)
* fix bug when parsing results in search handler

* applies permissions filtering to bleve query

* formatting

* wraps in check for access being present, adds some comments

* update go mod

* fix tests

* add dep owner

* fix go mod

* add space after //

* clean up returns

Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>

* fixed formatting

* Uses single checker since index is for single resource. Passes folderId using dvReader to checker func. Adds debug logging.

* handles federation with index permission checkers

* formatting

* move import

---------

Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
2025-01-20 14:30:09 -06:00
Isabel Matwawana
9801a5a943 Docs: Reporting restructure (#98913)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2025-01-20 14:17:54 -05:00
renovate[bot]
8c90f30e68 Update dependency @swc/core to v1.10.8 (#99287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 18:57:53 +00:00
Ryan McKinley
2756bc9a87 Zipkin: Fix key order in flaky test (#99285)
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2025-01-20 20:24:45 +02:00
Tom Ratcliffe
52c95f77cd Alerting: Include error from current condition when previewing queries (#98202) 2025-01-20 17:56:21 +00:00
renovate[bot]
80a2d8ad34 Update dependency @react-types/overlays to v3.8.12 (#99283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 17:49:39 +00:00
renovate[bot]
4fb9f0a386 Update dependency @react-types/menu to v3.9.14 (#99280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 17:27:44 +00:00
Ryan McKinley
52c1a3dccd Search: Delete old indexes once not in use (#99251) 2025-01-20 20:25:26 +03:00
renovate[bot]
427a601980 Update dependency @react-types/button to v3.10.2 (#99274)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 17:03:10 +00:00
renovate[bot]
15d0b139c7 Update dependency @grafana/faro-web-tracing to v1.12.3 (#99272)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 15:49:38 +00:00
Leon Sorokin
863d56b7e1 Prometheus: Sort Table format data frames by first field's values (#99223) 2025-01-20 09:42:13 -06:00
renovate[bot]
cc3b3ccdef Update dependency @grafana/faro-web-sdk to v1.12.3 (#99268)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 15:27:15 +00:00
Karl Persson
7329d2c34b Authz: Account for fixed roles when running oss and using authz service (#99244)
* Extract "PermissionStore" from general store interface

* Add static and union permission stores

* Add GetStaticRoles

* Use accesscontrol.Service for inproc to provide static permissions
2025-01-20 16:00:36 +01:00
renovate[bot]
0baf3a8f95 Update dependency @grafana/faro-web-sdk to v1.12.3 (#99267)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 14:47:41 +00:00
Juan Cabanas
37b7776b21 PublicDashboards: HorizontalGroup removal (#98697) 2025-01-20 11:41:58 -03:00
renovate[bot]
c241ac57d8 Update dependency @grafana/faro-core to v1.12.3 (#99265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 14:26:06 +00:00
Eric Leijonmarck
cf19d6d4b7 Teams: Consistency in save/update on the team settings page (#99200)
* make team page consistent

* fmt/linting

* fix tests
2025-01-20 14:07:38 +00:00
renovate[bot]
c601d79889 Update dependency @grafana/monaco-logql to ^0.0.8 (#99226)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 13:58:36 +00:00
Sonia Aguilar
80b8dd3fc8 Alerting: Set alert form simple modes enabled by default (#99233)
set alert form simple modes enabled by default
2025-01-20 14:55:34 +02:00
Ivan Ortega Alba
95d4f83889 DashboardSchema: Add library panel to v2 (#98484)
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-01-20 12:44:36 +01:00
Misi
f96a2082d0 Auth: Allow self serve for improved external session handling feature toggles (#99245)
Auth: Allow self serve for improved external session handling
2025-01-20 12:33:37 +01:00
Alexander Akhmetov
651430e34a Alerting: Add sync state persister to save entire state of the rule (#96628) 2025-01-20 12:12:27 +01:00
Ivana Huckova
63a68f3e99 Zipkin: Fix test file name (#99238)
Zipkin: Fix test file name
2025-01-20 12:01:17 +01:00
Marc M.
27cdd25917 FlameGraph: Add prop to keep focused items when the profile data changes (#98356) 2025-01-20 12:34:48 +02:00
Joao Silva
b3b044b54b MultiCombobox: Add "All" option (#98377)
* MultiCombobox: Add All option

* Translate

* Add prop to show All option

* Change variable name

* betterer update

* Extract variable

* Update packages/grafana-ui/src/components/Combobox/MultiCombobox.tsx

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>

* Return All item

* Update checkboxes

* Add filtering functionality

* Handle deduplication when selecting already selected items

* Performance improvements when selecting and modifying all items

* Handle bug with isOpen for tests to pass

* Small fixes

* Add filtered phrase

* Address PR feedback

* Reset okg/services from main

* Reset from main

* Restore main

* Add counter to filtered all

* Fix OptionListItem

* Hide all when there are no results

* Refactor to use useMemo instead

* Fix comments

* Remove useEffect

---------

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
2025-01-20 12:32:09 +02:00
Andres Martinez Gotor
c1364d6be6 New feature flag grafanaAdvisor (#99235) 2025-01-20 11:08:00 +01:00
jackyin
55ec66c416 Datasources: timeEnd not work (#98375)
* time end not work
2025-01-20 10:04:43 +00:00
Jack Baldry
1f780fdce1 Lint for Writers' Toolkit style (#99234) 2025-01-20 09:55:37 +00:00
Jack Baldry
1e53ab609e Only run documentation linter on branches that target main (#99163) 2025-01-20 09:52:39 +00:00
Jack Westbrook
dea2e41e9f Grafana UI: Use Eslint no-restricted-imports in tests and stories (#99191)
* style(eslint): remove ignore from grafana/ui-overrides

* style(grafana-ui): update imports for tests

* style(grafana-ui): update imports for stories

* chore(betterer): update results file

* Fix useTheme import

* Change deprecated Horizontal/Vertical group usages

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-01-20 09:44:19 +01:00
Stephanie Hingtgen
1a2a284972 K8s: Dashboards: Set message as annotation (#99230) 2025-01-20 08:40:23 +03:00
Stephanie Hingtgen
b309c5daed K8s: Refactor client to be generic (#99231) 2025-01-19 16:53:53 -06:00
antonio
d346819d62 add note to part 4 (#99194) 2025-01-19 09:37:36 +01:00
Matias Chomicki
a61548c5b9 PreviewLogRow: fix LogRowMessageDisplayedFields being unnecessarily rendered (#99217) 2025-01-17 23:40:53 +02:00
Stephanie Hingtgen
e33936398c Public dashboards: return full list when more than 1000 (#99216) 2025-01-17 23:16:30 +02:00
Sonia Aguilar
8fabc66bd2 Alerting: Fix not showing metadata in contact point when rendering an existing alert rule (#98956)
show metadata in contact point when loading an existing alert rule
2025-01-17 22:02:10 +01:00
Matthew Jacobson
a6dffd7552 Upgrade grafana/alerting to 209e052dba64 (#99118)
Update grafana/alerting to 209e052dba64

Includes:
- Add NoopDecode function for non-base64-encoded secrets (#264)
- Log duplicated receivers (#265)
2025-01-17 21:53:41 +02:00
Stephanie Hingtgen
fb3a858726 Revert "Remove dependency on dashboards table to get library element and library element connection" (#99213)
Revert "Remove dependency on dashboards table to get library element and libr…"

This reverts commit 32790c6918.
2025-01-17 21:43:14 +02:00
Andreas Christou
414f8d14f4 Azure: User-auth updates (#99113)
* Bump Azure sdk

* Minor fix because of credentials update

* Revert "Minor fix because of credentials update"

This reverts commit 1f49949ee3.
2025-01-17 12:13:34 -06:00
Andreas Christou
f39c5bb45c Azure: Correctly set instance settings based on new credentials (#99112)
Correctly set value based on new credentials
2025-01-17 12:13:15 -06:00
Sonia Aguilar
798b32138d Alerting: Use useProduceNewAlertmanagerConfiguration for notification policies (#98615)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-01-17 20:06:50 +02:00
Ronald McCollam
59184628e1 Add Apache instructions (#97369)
Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-01-17 11:53:25 -06:00
Haris Rozajac
4f337b99d4 Dashboards Schema V2: ResponseTransformers: Transform remaining variables when ensuring v2 (#98777)
* add missing vars

* Don't create undefined variable fields

* tests

* Fix test; remove allValue from groupBy

* Fix tests

* betterer

* Use @ts-expect-error

* betterer
2025-01-17 09:54:42 -07:00
SeamusGrafana
40baca699a Alerting: Add Missing Quotes to Failed Evaluations Queries (#99067)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-01-17 16:43:33 +00:00
Tom Ratcliffe
55644faa9d Chore: Remove alerting frontend from app/alerting codeowners (#99147)
Remove alerting frontend from app/alerting codeowners
2025-01-17 18:06:31 +02:00
Ashley Harrison
7411663b74 Chore: Upgrade to React 18.3 (#99183)
upgrade to react 18.3
2025-01-17 15:56:44 +00:00
Brendan O'Handley
ac94e81423 Explore metrics: Update copy for missing metrics message when OTel is on (#99056)
* Update copy for missing metrics when OTel is on

* update message

* Add OTel message in no metrics found message, not the warning banner

* Otel > OTel
2025-01-17 09:32:22 -06:00
Brendan O'Handley
7ccc811203 Explore metrics: Add class to metric prefix dropdown for fullstory (#99106)
add class to metric prefix dropdown for fullstory
2025-01-17 09:31:30 -06:00
Ivan Ortega Alba
feae06d81c QueryVariable: Default query is not set when creating a new variable (#99029)
* QueryVariable: Default query is not set when creating a new variable

* use correct getDefaultQuery

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-01-17 15:11:25 +00:00
Arati R.
2bce8c5e29 Folders: Use folder UID instead of folder ID in query for getting library elements (#99028) 2025-01-17 16:04:11 +01:00
Isabel Matwawana
348c0319c4 Docs: move DynamoDB to Unsupported list (#99120) 2025-01-17 09:52:37 -05:00
Igor Suleymanov
bc6b7a4df6 Update playlists app schemas to work with app SDK v0.29.0 (#98974)
* Update playlists app schemas to work with app SDK v0.29.0

What

* Added the manifest for the playlists app
* Updated playlist kind definition to match the new format
* Re-generated the files
* Changed Makefile to not use post-processing flag

Why

To make sure the codegen works with the latest version of the app SDK.

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

* Update app SDK to v0.30.0

* Skip generating custom resource definitions

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

* Fix SDK not generating the manifest Go file

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

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2025-01-17 16:17:31 +02:00
Bogdan Matei
1d7d658934 Dashboard: Show hidden elements (#99073) 2025-01-17 15:40:18 +02:00
Ryan McKinley
356b32008b Storage: Show history+trash using the list command (#99009)
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-01-17 15:54:25 +03:00
Karl Persson
67252dfa46 Zanzana: Add grpc health and readiness checks for standalone zanzana (#99176)
Add grpc health and readiness checks for standalone zanzana
2025-01-17 13:39:42 +01:00
Daniel Holmes
032f465ac6 Grafana UI: W/m2 should still support SI prefixes (#98362)
fix: W/m2 should still support SI prefixes

Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
2025-01-17 12:59:21 +01:00
Ryan McKinley
7c04247d6f K8s/Dashboard: Set generation from version (#99142) 2025-01-17 13:52:01 +02:00
Arati R.
a0d1a197e3 Folders: Use folder UID when deleting library elements in folder (#98967)
* Refactor  deleteLibraryElementsInFolderUID to use folder UID only
* Convert dashboard error to folder one when deleting library elements
* Fix incorrectly set folder UID in nested folder test

---------

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2025-01-17 12:04:02 +01:00
Esteban Beltran
f65e9fa9ab Sandbox: Add SRI validation for CDN assets loaded in the sandbox (#99023)
Add SRI validation for frontend sandbox
2025-01-17 11:47:36 +01:00
Mariell Hoversholm
f9cc08a42d Test: Skip loki-editor spec test for being flaky (#99145)
test: skip loki-editor spec test

This is a flaky test. Examples:

 * Failure:    https://drone.grafana.net/grafana/grafana/217717/6/21
 * Successful: https://drone.grafana.net/grafana/grafana/217748/6/21
 * Failure:    https://drone.grafana.net/grafana/grafana/217795/6/21
 * Successful: https://drone.grafana.net/grafana/grafana/217796/6/21
 * Failure:    https://drone.grafana.net/grafana/grafana/217826/6/21
 * Failure:    https://drone.grafana.net/grafana/grafana/217834/6/21
2025-01-17 12:20:47 +02:00
Alexander Zobnin
c5f14407cc Zanzana: Refactor stores listing (#99098)
Zanzana: Refactor store loading
2025-01-17 11:10:22 +01:00
Ivana Huckova
5e23b2c07f Zipkin: Improve error source (#99099)
* Zipkin: Improve error source

* Revert file name change
2025-01-17 10:04:33 +01:00
renovate[bot]
f9a61e2eb2 Update React Aria (#99129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 09:49:39 +01:00
Alexander Zobnin
17a09c28dd Chore: Upgrade openfga to 1.8.4 (#99095) 2025-01-17 09:36:08 +01:00
Mariell Hoversholm
a08f406781 Security: Update to Go 1.23.5 (#99121)
* feat: update to Go 1.23.5

* chore: make drone

* chore: make update-workspace

* CI: Force re-build

* CI: Force re-build
2025-01-17 09:29:52 +01:00
Stephanie Hingtgen
e019e34eb5 Stats: use dashboard stats rather than list (#99130) 2025-01-17 08:19:56 +03:00
Stephanie Hingtgen
5a930e0ec6 K8s search: add legacy id to dashboard response (#99132) 2025-01-17 08:16:48 +03:00
ismail simsek
6901bad03b Chore: Export some more from index for explore metrics (#99110)
* export some more from index.ts for explore metrics

* lint

* export default member

* update imports in explore metrics

* Update packages/grafana-prometheus/src/index.ts

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/helpers/MetricDatasourceHelper.ts

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
2025-01-16 22:38:40 +01:00
Nick Richmond
c63c869bca ExploreMetrics: Add label cross-reference technique in Related Logs tab (#98775)
* feat: fetch logs containing active labels

* refactor: simplify & handle unhappy path

* refactor: avoid local plugins

* refactor: simplify, clarify, and add operator flexibility

* fix: messaging for no related logs

* refactor: prefer early return

* refactor: avoid problematic `instanceof` checks

* test: `getDataSources` + `getLokiQueryExpr` functionality

* refactor: add clarity

* refactor: clean up

* refactor: add clarity

* feat: account for known label name differences

* refactor: prefer shared type

* test: label name conversions

* test: update to match refactor

* fix: multi-connector query combination

* perf: prefer labels queries to full Loki queries

* fix: limit number of Loki data sources

* docs: explain purpose of parsing solution

* refactor: simplify logs queries

* docs: add clarity

* fix: handle unhappy path w/variable updates

* fix: handle unhealthy Loki data sources
2025-01-16 14:29:17 -05:00
Andreas Christou
f6194931f5 Azure: Improve resource request error handling (#99017)
* Improve resource request error handling

- Correctly parse JSON responses
- Log erroneous failures in JSON marshalling/unmarshalling
- Correctly set response status code
- Do not attempt to use the response writer as it will be nil

* Minor change

* Improve type assertion handling
2025-01-16 18:38:20 +00:00
maicon
b4ec11e150 Unistore: Ensure deprecated Folder ID gets stored on all modes (#99043)
* Unistore: Ensure deprecated Folder ID gets stored on all modes

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

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-01-16 15:01:00 -03:00
Ashley Harrison
8e59f618c1 CodeEditor: Fix cursor alignment (#99090)
* remeasure fonts once they've loaded

* add test mock

* fix unit test

* remeasure fonts after the editor has mounted just to be safe
2025-01-16 16:54:16 +00:00
Irene Rodríguez
54440811b3 Add DynamoDB to unconfirmed list (#99087) 2025-01-16 17:32:13 +01:00
ismail simsek
e96b5a68c4 Prometheus: Support utf8 metrics and labels in scopes (#99015)
* support utf8 in scopes

* separate the utf8 tests

* remove redundant test after enabling utf8 validation in prometheus
2025-01-16 18:11:44 +02:00
kay delaney
c0b3932168 Graphite: Fix issue where duplicated panels share same query object (#99077) 2025-01-16 16:07:57 +00:00
Brendan O'Handley
1eb45dd0f8 Explore metrics: Do not show otel switch in related metrics tab (#99054)
do not show otel switch in related metrics tab
2025-01-16 10:00:39 -06:00
Ashley Harrison
cff07c9fb6 Chore: Replace rc-time-picker with rc-picker (#99022)
* replace rc-time-picker with rc-picker

* remove unnecessary stack

* remove TimePickerInput

* make props stricter

* fix type assertions

* remove outdated comment

* fix types

* fix clear icon

* fix styling

* fix z-index and 6 tests

* fix remaining unit tests

* betterer results

* styling tweaks

* don't show/hide scrollbars on hover
2025-01-16 15:58:02 +00:00
ismail simsek
106af5d0ee Prometheus: UTF8 support in metrics browser (#98612)
* utf8 metrics for prometheus devenv

* introduce utf8 support

* completions and suggestions

* don't wrap the utf8 label in quotes

* linting

* support utf8 labels and metrics on visual query builder

* lint

* update raw view for utf8 metric syntax

* betterer

* support utf8 metric names in explore metrics

* utf8 support in grouop by

* utf8 support in label break down

* utf8 metric and label support in metric_find_query for label values

* use the same regex to check label values

* no need to escape

* support series endpoint

* support series endpoint

* support series endpoint

* support series endpoint

* fix tests

* fix extracting labels from labelValuesQuery

* show explanation with right syntax

* support utf8 metrics and labels
2025-01-16 17:50:35 +02:00
ismail simsek
029edcb6be Prometheus: Render metrics and labels in explanation with right syntax (#98591)
* utf8 metrics for prometheus devenv

* introduce utf8 support

* completions and suggestions

* don't wrap the utf8 label in quotes

* linting

* support utf8 labels and metrics on visual query builder

* lint

* update raw view for utf8 metric syntax

* betterer

* support utf8 metric names in explore metrics

* utf8 support in grouop by

* utf8 support in label break down

* utf8 metric and label support in metric_find_query for label values

* use the same regex to check label values

* no need to escape

* support series endpoint

* support series endpoint

* support series endpoint

* support series endpoint

* fix tests

* fix extracting labels from labelValuesQuery

* show explanation with right syntax

* betterer
2025-01-16 17:30:29 +02:00
ismail simsek
4386cfc984 Prometheus: Support utf8 metrics and labels in variable editor (#98345)
* utf8 metrics for prometheus devenv

* introduce utf8 support

* completions and suggestions

* don't wrap the utf8 label in quotes

* linting

* support utf8 labels and metrics on visual query builder

* lint

* update raw view for utf8 metric syntax

* betterer

* support utf8 metric names in explore metrics

* utf8 support in grouop by

* utf8 support in label break down

* utf8 metric and label support in metric_find_query for label values

* use the same regex to check label values

* no need to escape

* support series endpoint

* support series endpoint

* support series endpoint

* support series endpoint

* fix tests

* fix extracting labels from labelValuesQuery

* betterer
2025-01-16 17:10:34 +02:00
Ihor Yeromin
019ee9c2d4 Table: Fix inspect drawer disappears unexpectedly (#99025)
fix(table): inspect drawer disappears unexpectedly
2025-01-16 15:58:56 +01:00
ismail simsek
b532df36c4 Explore Metrics: Support prometheus utf8 metrics names and labels (#98285)
* utf8 metrics for prometheus devenv

* introduce utf8 support

* completions and suggestions

* don't wrap the utf8 label in quotes

* linting

* support utf8 labels and metrics on visual query builder

* lint

* update raw view for utf8 metric syntax

* betterer

* support utf8 metric names in explore metrics

* utf8 support in grouop by

* utf8 support in label break down

* support series endpoint

* support series endpoint

* support series endpoint

* Explore metrics: Utf8 support in Explore metrics with OTel experience enabled (#98707)

* betterer

---------

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2025-01-16 16:49:06 +02:00
Sergej-Vlasov
a32eed1d13 TransformationFilter: Include transformation outputs in transformation filtering options (#98323)
* wip: include transformation output as filtering option

* add refId to joinByField transformation

* clean up

* add refId to transformations that create new data frames

* adjust duplicate query removal for filtering options

* refactor transformation input/output subscription effect

* adjust input data frame filtering logic to include transformations as input for debug view

* transformation filter can only filter on output of previous transformation
2025-01-16 14:45:23 +00:00
Sergej-Vlasov
3df1fa86ae setDashboardPanelContext: Allow to add filters from the table with the same key (#99004)
* always add filters for elastic seach ds when filtering table value

* simplify update filter logic and restore behaviour from old arch

* remove unnecessary modifications

* adjust namig
2025-01-16 14:43:46 +00:00
Ryan McKinley
d95484fba6 K8s/Client: Add watch support (#99060)
* add watch client

* add watch client

* add support for selectors

* parse labels

* always send watch

* reuse decoder

* Update public/app/features/apiserver/client.ts

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Update public/app/features/apiserver/client.ts

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Update public/app/features/apiserver/client.ts

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-01-16 17:41:52 +03:00
ismail simsek
31deddafb6 Prometheus: Support utf8 labels and metrics on visual query builder (#98274)
* utf8 metrics for prometheus devenv

* introduce utf8 support

* completions and suggestions

* don't wrap the utf8 label in quotes

* linting

* support utf8 labels and metrics on visual query builder

* lint

* update raw view for utf8 metric syntax

* betterer

* support series endpoint

* support series endpoint

* betterer
2025-01-16 16:24:56 +02:00
ismail simsek
4c0fa629da Prometheus: Support utf8 metric/label/label value suggestions in code mode (#98253)
* utf8 metrics for prometheus devenv

* introduce utf8 support

* completions and suggestions

* don't wrap the utf8 label in quotes

* linting

* support series endpoint
2025-01-16 15:01:51 +01:00
Tom Ratcliffe
862c0ce9b5 Alerting: Fix check for contact point email in IRM essentials page (#98977) 2025-01-16 13:59:32 +00:00
Gabriel MABILLE
70ddf9cb76 Authenticator: Return gRPC errors (#99000) 2025-01-16 14:33:57 +01:00
Georges Chaudy
98e9f3a534 [unistore] wire authlib compile (#99027)
* Wire authz client compile method

* add verb to metric

* remove tipo
2025-01-16 14:11:55 +01:00
Sven Grossmann
4936c53072 chore: upgrade @grafana/lezer-logql and @grafana/monaco-logql (#99076) 2025-01-16 15:08:32 +02:00
Arati R.
a3cdad25a3 Docs: Fix broken link to provisioning instructions in elasticsearch doc page (#98871)
Fix broken link in elasticsearch data source doc page
2025-01-16 13:40:00 +01:00
Karl Persson
2187a66f2b Zanzana: Split up settings into client and server sections (#99066)
* Split up zanzana settings into client and server sections

* Update workspace
2025-01-16 13:39:39 +01:00
Gaurav Soni
ee4016f4bc Docs: add that traces panel works with traceID to show a singular trace (#98451)
* update that traces panel works with traceID to show a singular trace

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

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

---------

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-01-16 13:21:11 +01:00
Kévin Gomez
77f7ab27be Use cog as a cli tool to generate code for kinds v2 schemas (#99044)
* Use cog as a cli tool to generate code for kinds v2 schemas

* Update imports to dashboard v2 package in frontend

* Ensure cog is installed before using it
2025-01-16 13:18:47 +01:00
Yaelle Chaudy
4fcd529d0e Dashboards Versions: Add event to dashboards restore version (#98855)
* Add event to dashboards restore version

* moved changes to scenes instead

* remove last non-scene change

* Move events to centralised file

* remove ? from properties copy pasta

* Add tests
2025-01-16 12:37:45 +01:00
Brendan O'Handley
76a7987427 Explore metrics: Support native histograms (#98894)
* identify native histograms by classic histograms

* use trail to expose ds helper

* identify native histograms for preview panel

* refactor ds helper to initialize all native histograms

* remove await

* add info message for native histograms

* hide button on show examples

* show nh in metric scene by passing check for nh and storing in url for url loads, bookmarks and recent explorations

* add badge for native histograms

* click native histogram examples in info message to see them

* add link for learn more

* close banner on select when selecting native histogram in info banner

* show message for newly selected data sources

* capitalize Native Histogram badge

* prettier

* fix badge ui width

* add padding for badge

* add images, styling and tests for native histogram banner

* move images to img folder

* fix store tests

* run i18n

* fix betterer

* fix betterer with translations

* cannot translate interpolated metric in button text

* Fix import

* do  not indent the > See examples section

* trans component interferes with text with special chars

* update sm text with 4px padding and 16px spacing between images

* do not show banner after closing then changing data sources

* prettier

* Update public/app/features/trails/helpers/MetricDatasourceHelper.ts

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/banners/NativeHistogramBanner.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/banners/NativeHistogramBanner.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* update comments

* remove unnecessary code check

* add rudderstack types

* add close example functionality

* prettier

* add t() for betterer

* prettier

* fix betterer and trans issues

* fix test

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
2025-01-16 03:36:10 +02:00
owensmallwood
7da6e48036 Unified Storage: Remove history stub (#99048)
remove history stub
2025-01-16 03:05:13 +02:00
Matias Chomicki
3641b28e84 Explore: fix logs no results and scanning states (#98605) 2025-01-15 22:08:19 +00:00
Yuri Tseretyan
d025523a8b Alerting: Log reason for taking image. (#99036) 2025-01-15 16:11:38 -05:00
Ryan McKinley
cd46f1ddb9 Search: Remove history query (#99026) 2025-01-15 12:49:47 -06:00
Andreas Christou
f9f341e9c9 Azure: Fix interface conversion (#99034) 2025-01-15 13:28:04 -05:00
Adam Yeats
bab55a4cb8 Elasticsearch: Process ES multisearch JSON response by streaming (#93689)
Co-authored-by: Isabella Siu <isabella.siu@grafana.com>
2025-01-15 12:05:54 -05:00
Matthew Jacobson
fc90a446c6 Alerting: Ensure long-lived repeat alerts keep images after 24h expiry (#98993)
Ensures we retake images after expiration on long-lived repeat alerts.
Otherwise, logs would show "Image not found in database" and notifications
would cease to contain an image after 24h of continuous firing.
2025-01-15 11:45:43 -05:00
Gabriel MABILLE
b6fc695598 ExtJwtClient: Use user namespace for k8s allowed namespace (#93687)
* ExtJwtClient: Use user namespace for k8s allowed namespace

* fix test
2025-01-15 17:38:46 +01:00
Andrej Ocenas
5d45af1110 I18n: Add doc comment for t() (#99024)
* Add comment doc

* Reorder information
2025-01-15 17:31:06 +01:00
owensmallwood
d00592ffa0 Unified Storage: Make all dashboard fields searchable (#98899)
* wip. adding sprinkles fields.

* some refactoring. Works with sprinkles now.

* exclude top level dashboard hit fields from hit "fields"

* adds unit test for DecodeCell helper

* test can search for specific dashboard fields on bleve index

* adds search handler tests for the fields and tests for fields when transforming the search req to a bleve search req

* fix panic when calling fields.Set() with int32

* adds regression test

* remove unneeded method on test mock client

* fix linter issues

* updates dashboard test data for bleve tests

* remove DASHBOARD_LEGACY_ID from bleve_tests

* dont cast twice

* updates test to sort by dashboard_views_last_1_days

* declare excludedFields outside of function

* fixes sorting by dashboard fields - prepends "fields." to any dashboard fields we try to sort by

* uses map for excludedFields

* expects fields to be array-style url param

* change method name

* fixes failing tests - needed to add column type to mocks
2025-01-15 10:23:05 -06:00
William Wernert
8415089534 Alerting: Use correct status code for UID conflict in contact point provisionining API (#98970)
Use correct status code for UID conflict in contact point provisioning API
2025-01-15 11:07:56 -05:00
Misi
125fdc8f21 Auth: Fix AzureAD public client configuration (#99019)
Auth: Add client auth none as default to ensure public clients can be configured on the UI
2025-01-15 16:49:58 +01:00
Jack Baldry
f142f12887 Ignore spelling errors in bold formatting (#99006) 2025-01-15 15:08:20 +00:00
Jean-Philippe Quéméner
c03586dfe8 fix(unified-storage): initialize blob storage when using grpc (#99020) 2025-01-15 16:04:41 +01:00
Jean-Philippe Quéméner
38927f0719 fix(indexer): reduce cardinality of indexer metric (#99018) 2025-01-15 16:01:31 +01:00
beejeebus
a290db6a7e Ensure we delete playlists when deleting an org, fixes #98736 (#98771) 2025-01-15 08:13:56 -06:00
Josh Hunt
e3e580edfa Chore: Prevent direct path imports from workspace grafana packages (#98940)
* restrict imports from @grafana/ui/src paths

* prevent path imports from all grafana packages

* just run on ui, runtime, data packages

* update
2025-01-15 15:47:44 +02:00
antonio
1dcff0a71f docs/alerting/tutorials/part4 (#98942)
* docs/alerting/tutorials/part4

* interactives

* refs

* links

* formatting

* links2

* alt text

* steps, new alert configuration sections

* feedback

* bypass spellcheck

* Update docs/sources/tutorials/alerting-get-started-pt4/index.md

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

* Update docs/sources/tutorials/alerting-get-started-pt4/index.md

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

* Update docs/sources/tutorials/alerting-get-started-pt4/index.md

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

* Update docs/sources/tutorials/alerting-get-started-pt4/index.md

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

* added note and minor formatting

* made links killercoda friendly

* all pretty no pity

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2025-01-15 14:35:51 +01:00
Syerikjan Kh
dfe0712955 feat: pass gcom sso_api_token to repo created from install command (#98973)
* feat: pass gcom sso_api_token to repo created from install command

* fix

* fix: extract gcom section to a func

* Update pkg/cmd/grafana-cli/utils/command_line.go

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>

* fix: only set gcom token when the request is to GCOM

---------

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
2025-01-15 08:15:18 -05:00
ismail simsek
79fc26ea87 Chore: Remove prometheus replace directive (#98966)
* remove replace directive

* have an adapter

* go mod tidy

* make update-workspace

* make update-workspace
2025-01-15 14:04:14 +01:00
Santiago
ea6cb8f139 Alerting: Panic when rule being evaluated has unexpected key (#99002) 2025-01-15 14:59:50 +02:00
Konrad Lalik
5aeaccadff Alerting: Add read-only GMA rules to the new list view (#98116)
* Reuse prom groups generator between GMA, external DS and list view

* Improve generators, add initial support for GMA in grouped view components

* Improve handling of GMA rules

* Split componentes into files

* Improve error handling, simplify groups grouping

* Extract grafana rules component

* Reset yarn.lock

* Reset yarn.lock 2

* Update filters, adjust file names, add folder display name to GMA rules

* Re-enable filtering for cloud rules

* Rename AlertRuleLoader

* Add missing translations, fix lint errors

* Remove unused imports, update translations

* Fix responses in BE tests

* Update backend tests

* Update integration test

* Tidy up group page size constants

* Add error throwing to getGroups endpoint to prevent grafana usage

* Refactor FilterView to remove exhaustive check

* Refactor common props for grafana rule rendering

* Unify identifiers' discriminators, add comments, minor refactor

* Update translations

* Remove unnecessary prev page condition, add a few explanations

---------

Co-authored-by: fayzal-g <fayzal.ghantiwala@grafana.com>
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-01-15 11:36:32 +01:00
Igor Suleymanov
7f04f66137 Allow listing Dashboards through k8s APIs (#98997)
What

This PR changes the dashboard authorizer logic to no longer require
requester to be the super admin user in order to list dashboards using
k8s APIs.

Why

We no longer need this precondition - dashboards should be listable
based on the regular authorizer logic.

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2025-01-15 11:50:28 +02:00
Leonor Oliveira
32790c6918 Remove dependency on dashboards table to get library element and library element connection (#98941)
* Remove dependency on dashboards table to get library element

* WIP

* Don't use dashboard id when getting library connections

* Lint

* Don;t include folder_uid in library element
2025-01-15 10:32:24 +01:00
Matias Chomicki
bbade6b011 Shard query splitting: run queries through time query splitting (#98126)
* Query splitting: add skipPartialUpdates option

* Shard query splitting: run queries through time splitting

* Query splitting: delegate error retry to shard splitting

* Shard query splitting: update unit tests

* Shard query splitting: test combined requests

* Formatting

* Query splitting: test new options

* Query splitting: update assertion

* Formatting
2025-01-15 10:26:23 +01:00
Jack Baldry
a6eb8abd05 Simplify language and lint for style (#98964) 2025-01-15 08:36:31 +00:00
Karl Persson
3f71a72c1a Authz: Remove "wrapper" interface and only check feature toggle for grpc mode (#98933)
* Remove "wrapper" interface and only check feature toggle for grpc and cloud mode

* Only set name for update checks

* Set dashboard permissions for admin user
2025-01-15 09:23:56 +01:00
Ryan McKinley
0d302a161a BackendSrv: Support streaming chunked responses (#98691) 2025-01-15 10:01:22 +03:00
Ryan McKinley
0fce8799eb Chore: go.mod cleanup (#98987) 2025-01-15 08:35:22 +03:00
Stephanie Hingtgen
2a08c9ed82 K8s Dashboards: Fix creating a dashboard inside a folder (#98982) 2025-01-15 07:15:58 +02:00
Stephanie Hingtgen
dbfc412ed8 K8s: Fix dashboard search (#98989) 2025-01-14 18:45:27 -05:00
Yuri Tseretyan
e15fc984c3 Alerting: Deprecate Alertmanager config and receivers APIs (#98918) 2025-01-14 17:22:01 -05:00
jackyin
69da0bb22c FieldReducers: Fix median (#98184)
Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-01-14 23:38:34 +02:00
Piotr Jamróz
c5111b8132 Explore: Add missing translations (#98984)
Add missing translation
2025-01-14 21:55:58 +01:00
Scott Lepper
3b8477dcda Search: fix uid/name filter (#98981)
[search] fix uid/name filter
2025-01-14 15:48:14 -05:00
Isabel Matwawana
feb334cdbb Docs: update broken Play link (#98985) 2025-01-14 15:47:07 -05:00
Piotr Jamróz
f7e0710f53 Explore: Limit number of columns shown in Explore table (#98726) 2025-01-14 17:01:34 +01:00
Edvard Falkskär
e38bab43db Remove console.log from correlations service (#98969) 2025-01-14 16:09:32 +01:00
Gábor Farkas
1ff4053f03 go.mod: updated grafana-plugin-sdk-go from v0.261.0 to v0.262.0 (#98930) 2025-01-14 16:06:41 +01:00
Karl Persson
ce0d986673 Zanzana: Use cache for both streamed and non-stream version of list objects (#98882)
* Add prefix constants and use string builders / string concatinations

* Use cache for both streamed and non-stream versions of list objects

* Remove unused constants
2025-01-14 16:00:59 +01:00
Selene
7151ea6abc Codegen: Generate Golang code using cog (#98812)
* Use cog for Go types

* Delete old generation code

* Fix plugins generation

* workspaces update

* Update datasources with new generated code

* More fixes

* Update swagger and openapi specs

* Fixes

* More files...

* Update workspace

* More fixes...

* Remove unused functions
2025-01-14 15:58:38 +01:00
renovate[bot]
b96a752db3 Update dependency rc-tree to v5.13.0 (#98959)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 14:36:58 +00:00
Haris Rozajac
125a11ca99 Dashboard: Fix snapshots for the old arch (#98902)
Fix snapshots for the old arch
2025-01-14 07:33:29 -07:00
Jack Baldry
3884c0e896 Replace codespell with Vale spelling check (#98406) 2025-01-14 14:08:01 +00:00
Alexander Zobnin
037570b9c8 Chore: Add vscode config for zanzana server (#98957) 2025-01-14 15:01:10 +01:00
Leonor Oliveira
7c87ff1b84 Folders: Use folder service to count library panels (#98802)
* Use folder service to count library panels

---------

Co-authored-by: suntala <arati.rana@grafana.com>
2025-01-14 14:58:36 +01:00
renovate[bot]
2594b4f7af Update scenes to v5.37.0 (#98958)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 15:42:21 +02:00
renovate[bot]
0032e839ce Update dependency rc-tooltip to v6.4.0 (#98952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 13:17:49 +00:00
Ashley Harrison
6b5146651f Select/Combobox: Tweak menu styling so hover states don't overflow (#98944)
tweak menu styling so hover states don't overflow
2025-01-14 13:16:42 +00:00
Pepe Cano
7771768363 Alerting docs: clarify data source-managed rules for Prometheus (#98378)
* Clarify DS managed rules support only the creation of Mimir and Loki rules

* additional copy changes

* Extend `Manage alerts via Alerting UI` description

* fix capital letter

* further details for `Manage alerts via Alerting UI`
2025-01-14 13:34:02 +01:00
renovate[bot]
0b5b21548b Update dependency rc-cascader to v3.33.0 (#98949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 14:19:52 +02:00
Will Browne
70fb7b9545 Plugins: Remove bundled plugins feature (#96490)
* remove bundled plugins

* Add echo to command

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

* remove folder entirely

* remove folder from CODEOWNERS

---------

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2025-01-14 12:04:01 +00:00
renovate[bot]
ff032a61d5 Update dependency postcss to v8.5.1 (#98945)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 11:44:11 +00:00
Jack Baldry
5570a7e42e Fix broken link (#98947) 2025-01-14 11:38:32 +00:00
Edvard Falkskär
e45eb95812 Correlations: Expose correlations logic through correlations service (#98124)
* Correlations: Expose correlations logic through correlations service

* Resolve remaining todos

* Marked new items as @alpha
2025-01-14 13:27:13 +02:00
renovate[bot]
33a91f22c0 Update dependency postcss to v8.5.0 (#98943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 13:22:57 +02:00
renovate[bot]
dbd3bb7667 Update dependency papaparse to v5.5.1 (#98939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 11:01:57 +00:00
Ashley Harrison
740cd22fe5 Query Library: Add feature toggle for query library in dashboards (#98938)
add feature toggle for query library in dashboards
2025-01-14 11:01:15 +00:00
renovate[bot]
64617886d9 Update dependency sass to v1.83.4 (#98936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 10:30:40 +00:00
renovate[bot]
1281b0f094 Update dependency @types/node to v22.10.6 (#98934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 12:09:54 +02:00
renovate[bot]
5c49b6cf73 Update dependency knip to v5.42.0 (#98892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-14 09:46:18 +00:00
Josh Hunt
65f5a176a8 Chore: Import Combobox from main grafana-ui package (#98897) 2025-01-14 09:35:27 +00:00
Mariell Hoversholm
36d6fad421 Feat: Setup the App SDK logging module (#98927)
* Feat: Setup the App SDK logging module

* Build: Depend on logging pkg and update App SDK

* Chore: Assign owner to logging module
2025-01-14 10:34:57 +01:00
3003 changed files with 116805 additions and 56916 deletions

View File

@@ -86,6 +86,10 @@ module.exports = [
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.',
},
],
},
],

File diff suppressed because it is too large Load Diff

View File

@@ -5,6 +5,10 @@ GOPATH ?= $(shell go env GOPATH)
GOBIN ?= $(firstword $(subst :, ,${GOPATH}))/bin
GO ?= $(shell which go)
# Add this near the top of the file, after the initial variable definitions
ifndef VARIABLES_MK
VARIABLES_MK := 1
# 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 bra variable:
@@ -23,6 +27,12 @@ $(BRA): $(BINGO_DIR)/bra.mod
@echo "(re)installing $(GOBIN)/bra-v0.0.0-20200517080246-1e3013ecaff8"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=bra.mod -o=$(GOBIN)/bra-v0.0.0-20200517080246-1e3013ecaff8 "github.com/unknwon/bra"
COG := $(GOBIN)/cog-v0.0.15
$(COG): $(BINGO_DIR)/cog.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)/cog-v0.0.15"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=cog.mod -o=$(GOBIN)/cog-v0.0.15 "github.com/grafana/cog/cmd/cli"
CUE := $(GOBIN)/cue-v0.5.0
$(CUE): $(BINGO_DIR)/cue.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@@ -59,3 +69,4 @@ $(SWAGGER): $(BINGO_DIR)/swagger.mod
@echo "(re)installing $(GOBIN)/swagger-v0.30.6-0.20240310114303-db51e79a0e37"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=swagger.mod -o=$(GOBIN)/swagger-v0.30.6-0.20240310114303-db51e79a0e37 "github.com/go-swagger/go-swagger/cmd/swagger"
endif

5
.bingo/cog.mod Normal file
View File

@@ -0,0 +1,5 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.23.4
require github.com/grafana/cog v0.0.15 // cmd/cli

View File

@@ -1,33 +1,30 @@
cuelabs.dev/go/oci/ociregistry v0.0.0-20240906074133-82eb438dd565 h1:R5wwEcbEZSBmeyg91MJZTxfd7WpBo2jPof3AYjRbxwY=
cuelabs.dev/go/oci/ociregistry v0.0.0-20240906074133-82eb438dd565/go.mod h1:5A4xfTzHTXfeVJBU6RAUf+QrlfTCW+017q/QiW+sMLg=
cuelang.org/go v0.11.1 h1:pV+49MX1mmvDm8Qh3Za3M786cty8VKPWzQ1Ho4gZRP0=
cuelang.org/go v0.11.1/go.mod h1:PBY6XvPUswPPJ2inpvUozP9mebDVTXaeehQikhZPBz0=
cuelang.org/go v0.11.0 h1:2af2nhipqlUHtXk2dtOP5xnMm1ObGvKqIsJUJL1sRE4=
cuelang.org/go v0.11.0/go.mod h1:PBY6XvPUswPPJ2inpvUozP9mebDVTXaeehQikhZPBz0=
github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg=
github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/emicklei/proto v1.13.2 h1:z/etSFO3uyXeuEsVPzfl56WNgzcvIr42aQazXaQmFZY=
github.com/emicklei/proto v1.13.2/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A=
github.com/expr-lang/expr v1.17.0 h1:+vpszOyzKLQXC9VF+wA8cVA0tlA984/Wabc/1hF9Whg=
github.com/expr-lang/expr v1.17.0/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
github.com/getkin/kin-openapi v0.132.0 h1:3ISeLMsQzcb5v26yeJrBcdTCEQTag36ZjaGk7MIRUwk=
github.com/getkin/kin-openapi v0.132.0/go.mod h1:3OlG51PCYNsPByuiMB0t4fjnNlIDnaEDsjiKUV8nL58=
github.com/expr-lang/expr v1.16.9 h1:WUAzmR0JNI9JCiF0/ewwHB1gmcGw5wW7nWt8gc6PpCI=
github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4=
github.com/getkin/kin-openapi v0.128.0/go.mod h1:OZrfXzUfGrNbsKj+xmFBx6E5c6yH3At/tAKSc2UszXM=
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/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
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/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grafana/codejen v0.0.4-0.20230321061741-77f656893a3d h1:hrXbGJ5jgp6yNITzs5o+zXq0V5yT3siNJ+uM8LGwWKk=
github.com/grafana/codejen v0.0.4-0.20230321061741-77f656893a3d/go.mod h1:zmwwM/DRyQB7pfuBjTWII3CWtxcXh8LTwAYGfDfpR6s=
github.com/grafana/cog v0.0.5 h1:BCa+10i3KvV+KMSQuxlN1DS9cZEwN+EAFc7ZmXqHxQE=
github.com/grafana/cog v0.0.5/go.mod h1:lzetOuhGUl/JaSACiJoHvBokf9/fS6PEFaWZvnQu2vs=
github.com/grafana/cog v0.0.14 h1:sBK89oSu9BK4S9l3G9ewVJnGYnNQJTHFBC/01DZDRZs=
github.com/grafana/cog v0.0.14/go.mod h1:HwJbc60fZ+viayROClLGdDwO5w/JjBOpO9wjGnAfMLc=
github.com/grafana/cog v0.0.15 h1:e2pMY+Hf2nS22HcKJuguEzl0BVmV9DSINwCfWt+dFZQ=
github.com/grafana/cog v0.0.15/go.mod h1:jrS9indvWuDs60RHEZpLaAkmZdgyoLKMOEUT0jiB1t0=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -35,26 +32,18 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso=
github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA=
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.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
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/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/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
@@ -63,36 +52,35 @@ github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNH
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
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/protocolbuffers/txtpbfmt v0.0.0-20241112170944-20d2c9ebc01d h1:HWfigq7lB31IeJL8iy7jkUmU/PG1Sr8jVGhS749dbUA=
github.com/protocolbuffers/txtpbfmt v0.0.0-20241112170944-20d2c9ebc01d/go.mod h1:jgxiZysxFPM+iWKwQwPR+y+Jvo54ARd4EisXxKYpB5c=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
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/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
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.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
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.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
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=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View File

@@ -10,6 +10,8 @@ fi
BRA="${GOBIN}/bra-v0.0.0-20200517080246-1e3013ecaff8"
COG="${GOBIN}/cog-v0.0.15"
CUE="${GOBIN}/cue-v0.5.0"
DRONE="${GOBIN}/drone-v1.5.0"

File diff suppressed because it is too large Load Diff

68
.github/CODEOWNERS vendored
View File

@@ -57,7 +57,6 @@
/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
/.bra.toml @grafana/grafana-backend-group
@@ -68,12 +67,9 @@
/hack/ @grafana/grafana-app-platform-squad
/pkg/apis/provisioning @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
/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/investigations/ @fcjack @matryer @svennergr
/apps/advisor/ @grafana/plugins-platform-backend
@@ -81,7 +77,6 @@
/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/cmd/ @grafana/grafana-backend-group
/pkg/cmd/grafana-cli/commands/install_command.go @grafana/plugins-platform-backend
@@ -127,7 +122,6 @@
/pkg/apimachinery/errutil/ @grafana/grafana-backend-group
/pkg/promlib @grafana/oss-big-tent
/pkg/storage/ @grafana/grafana-search-and-storage
/pkg/storage/secret/ @grafana/grafana-operator-experience-squad
/pkg/services/annotations/ @grafana/grafana-search-and-storage
/pkg/services/apikey/ @grafana/identity-squad
/pkg/services/cleanup/ @grafana/grafana-backend-group
@@ -138,7 +132,6 @@
/pkg/services/dashboardversion/ @grafana/grafana-backend-group
/pkg/services/encryption/ @grafana/grafana-operator-experience-squad
/pkg/services/folder/ @grafana/grafana-search-and-storage
/pkg/services/frontend/ @grafana/grafana-frontend-platform
/pkg/services/apiserver @grafana/grafana-app-platform-squad
/pkg/services/hooks/ @grafana/grafana-backend-group
/pkg/services/kmsproviders/ @grafana/grafana-operator-experience-squad
@@ -319,7 +312,6 @@
/Makefile @grafana/grafana-developer-enablement-squad
/scripts/build/ @grafana/grafana-developer-enablement-squad
/scripts/list-release-artifacts.sh @grafana/grafana-developer-enablement-squad
/scripts/releasefinder.sh @baldm0mma
/.trivyignore @grafana/grafana-backend-services-squad
# OSS Plugin Partnerships backend code
@@ -388,9 +380,12 @@
/crowdin.yml @grafana/grafana-frontend-platform
/public/locales/ @grafanabot
/public/locales/i18next-parser.config.cjs @grafana/grafana-frontend-platform
/public/locales/i18next-parser-enterprise.config.cjs @grafana/grafana-frontend-platform
/public/locales/ @grafana/grafana-frontend-platform
/public/locales/de-DE @grafanabot
/public/locales/es-ES @grafanabot
/public/locales/fr-FR @grafanabot
/public/locales/pt-BR @grafanabot
/public/locales/zh-Hans @grafanabot
/public/app/core/internationalization/ @grafana/grafana-frontend-platform
/e2e/ @grafana/grafana-frontend-platform
/e2e/cloud-plugins-suite/ @grafana/partner-datasources
@@ -425,7 +420,7 @@
/packages/grafana-ui/src/components/PluginSignatureBadge/ @grafana/plugins-platform-frontend
/packages/grafana-ui/src/components/Sparkline/ @grafana/grafana-frontend-platform @grafana/app-o11y-visualizations
/packages/grafana-ui/src/components/Table/ @grafana/dataviz-squad
/packages/grafana-ui/src/components/Table/Cells/SparklineCell.tsx @grafana/dataviz-squad @grafana/app-o11y-visualizations
/packages/grafana-ui/src/components/Table/SparklineCell.tsx @grafana/dataviz-squad @grafana/app-o11y-visualizations
/packages/grafana-ui/src/components/uPlot/ @grafana/dataviz-squad
/packages/grafana-ui/src/components/ValuePicker/ @grafana/dataviz-squad
/packages/grafana-ui/src/components/VizLayout/ @grafana/dataviz-squad
@@ -436,7 +431,6 @@
/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
# root files, mostly frontend
/.browserslistrc @grafana/frontend-ops
@@ -464,6 +458,7 @@
/stylelint.config.js @grafana/frontend-ops
/tools/ @grafana/frontend-ops
/lefthook.yml @grafana/frontend-ops
/lefthook.rc @grafana/frontend-ops
/.husky/pre-commit @grafana/frontend-ops
/cypress.config.js @grafana/grafana-frontend-platform
/.levignore.js @grafana/plugins-platform-frontend
@@ -505,8 +500,9 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/dimensions/ @grafana/dataviz-squad
/public/app/features/dataframe-import/ @grafana/dataviz-squad
/public/app/features/explore/ @grafana/observability-traces-and-profiling
/public/app/features/expressions/ @grafana/grafana-datasources-core-services
/public/app/features/expressions/ @grafana/observability-metrics
/public/app/features/folders/ @grafana/grafana-frontend-platform
/public/app/features/iam/ @grafana/grafana-frontend-platform
/public/app/features/inspector/ @grafana/dashboards-squad
/public/app/features/invites/ @grafana/grafana-frontend-platform
/public/app/features/library-panels/ @grafana/dashboards-squad
@@ -544,6 +540,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/plugins/panel/datagrid/ @grafana/dataviz-squad
/public/app/plugins/panel/gauge/ @grafana/dataviz-squad
/public/app/plugins/panel/gettingstarted/ @grafana/grafana-frontend-platform
/public/app/plugins/panel/graph/ @grafana/dataviz-squad
/public/app/plugins/panel/heatmap/ @grafana/dataviz-squad
/public/app/plugins/panel/histogram/ @grafana/dataviz-squad
/public/app/plugins/panel/logs/ @grafana/observability-logs
@@ -556,6 +553,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/plugins/panel/status-history/ @grafana/dataviz-squad
/public/app/plugins/panel/table/ @grafana/dataviz-squad
/public/app/plugins/panel/table/cells/SparklineCellOptionsEditor.tsx @grafana/dataviz-squad @grafana/app-o11y-visualizations
/public/app/plugins/panel/table-old/ @grafana/dataviz-squad
/public/app/plugins/panel/timeseries/ @grafana/dataviz-squad
/public/app/plugins/panel/trend/ @grafana/dataviz-squad
/public/app/plugins/panel/geomap/ @grafana/dataviz-squad
@@ -567,12 +565,12 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/plugins/panel/text/ @grafana/grafana-frontend-platform
/public/app/plugins/panel/welcome/ @grafana/grafana-frontend-platform
/public/app/plugins/panel/xychart/ @grafana/dataviz-squad
/public/app/plugins/sdk.ts @grafana/plugins-platform-frontend
/public/app/routes/ @grafana/grafana-frontend-platform
/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
/public/gazetteer/ @ryantxu
/public/img/ @grafana/grafana-frontend-platform
@@ -600,6 +598,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/api-merged.json @grafana/grafana-backend-group
/public/api-enterprise-spec.json @grafana/grafana-backend-group
/public/openapi3.json @grafana/grafana-backend-group
/public/app/angular/ @torkelo
/public/app/app.ts @grafana/frontend-ops
/public/app/dev.ts @grafana/frontend-ops
/public/app/core/utils/metrics.ts @grafana/plugins-platform-frontend
@@ -621,7 +620,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/scripts/import_many_dashboards.sh @torkelo
/scripts/mixin-check.sh @bergquist
/scripts/openapi3/ @grafana/grafana-operator-experience-squad
/scripts/prepare-npm-package.js @grafana/frontend-ops
/scripts/prepare-packagejson.js @grafana/frontend-ops
/scripts/protobuf-check.sh @grafana/plugins-platform-backend
/scripts/stripnulls.sh @grafana/grafana-as-code
/scripts/tag_release.sh @grafana/grafana-developer-enablement-squad
@@ -734,7 +733,6 @@ embed.go @grafana/grafana-as-code
/pkg/registry/apis/ @grafana/grafana-app-platform-squad
/pkg/registry/apis/alerting @grafana/grafana-app-platform-squad @grafana/alerting-backend
/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/codegen/ @grafana/grafana-as-code
@@ -756,18 +754,13 @@ embed.go @grafana/grafana-as-code
/.github/pr-checks.json @tolzhabayev
/.github/pr-commands.json @tolzhabayev
/.github/renovate.json5 @grafana/frontend-ops
/.github/actions/setup-enterprise/action.yml @grafana/grafana-backend-group
/.github/actions/test-coverage-processor/action.yml @grafana/grafana-backend-group
/.github/actions/setup-grafana-bench/ @Proximyst
/.github/workflows/add-to-whats-new.yml @grafana/docs-tooling
/.github/workflows/auto-triager/ @grafana/plugins-platform-frontend
/.github/workflows/alerting-swagger-gen.yml @grafana/alerting-backend
/.github/workflows/alerting-update-module.yml @grafana/alerting-backend
/.github/workflows/auto-milestone.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/backend-code-checks.yml @grafana/grafana-backend-group
/.github/workflows/backend-unit-tests.yml @grafana/grafana-backend-group
/.github/workflows/backport.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/bump-version.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/close-milestone.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/release-pr.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/release-comms.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/migrate-prs.yml @grafana/grafana-developer-enablement-squad
@@ -778,25 +771,26 @@ embed.go @grafana/grafana-as-code
/.github/workflows/community-release.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/detect-breaking-changes-* @grafana/plugins-platform-frontend
/.github/workflows/documentation-ci.yml @grafana/docs-tooling
/.github/workflows/doc-validator.yml @grafana/docs-tooling
/.github/workflows/deploy-pr-preview.yml @grafana/docs-tooling
/.github/workflows/feature-toggles-ci.yml @grafana/docs-tooling
/.github/workflows/epic-add-to-platform-ux-parent-project.yml @meanmina
/.github/workflows/github-release.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/issue-opened.yml @grafana/grafana-community-support
/.github/workflows/lint-build-docs.yml @grafana/docs-tooling
/.github/workflows/metrics-collector.yml @torkelo
/.github/workflows/milestone.yml @tolzhabayev
/.github/workflows/pr-checks.yml @tolzhabayev
/.github/workflows/pr-codeql-analysis-go.yml @DanCech
/.github/workflows/pr-codeql-analysis-javascript.yml @DanCech
/.github/workflows/pr-codeql-analysis-python.yml @DanCech
/.github/workflows/pr-commands.yml @tolzhabayev
/.github/workflows/pr-patch-check-event.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/pr-test-integration.yml @grafana/grafana-backend-group
/.github/workflows/pr-backend-coverage.yml @grafana/grafana-backend-group
/.github/workflows/sync-mirror-event.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/pr-patch-check.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/sync-mirror.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/publish-technical-documentation-next.yml @grafana/docs-tooling
/.github/workflows/publish-technical-documentation-release.yml @grafana/docs-tooling
/.github/workflows/remove-milestone.yml @grafana/grafana-developer-enablement-squad
/.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/update-changelog.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/update-make-docs.yml @grafana/docs-tooling
/.github/workflows/scripts/kinds/verify-kinds.go @grafana/platform-monitoring
/.github/workflows/publish-kinds-next.yml @grafana/platform-monitoring
@@ -804,29 +798,18 @@ 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/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-backend-services-squad
/.github/workflows/create-security-patch-from-security-mirror.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/core-plugins-build-and-release.yml @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/.github/workflows/i18n-crowdin-upload.yml @grafana/grafana-frontend-platform
/.github/workflows/i18n-crowdin-download.yml @grafana/grafana-frontend-platform
/.github/workflows/i18n-crowdin-create-tasks.yml @grafana/grafana-frontend-platform
/.github/workflows/scripts/crowdin/create-tasks.js @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
/.github/workflows/go-lint.yml @grafana/grafana-backend-services-squad
/.github/workflows/trivy-scan.yml @grafana/grafana-backend-services-squad
/.github/workflows/changelog.yml @zserge
/.github/actions/changelog @zserge
/.github/workflows/pr-frontend-unit-tests.yml @grafana/grafana-frontend-platform
/.github/workflows/frontend-lint.yml @grafana/grafana-frontend-platform
/.github/workflows/analytics-events-report.yml @grafana/grafana-frontend-platform
/.github/workflows/pr-e2e-tests.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/run-e2e-suite.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/skye-add-to-project.yml @grafana/grafana-frontend-platform
/.github/zizmor.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/actions/changelog @zserge
# Generated files not requiring owner approval
/packages/grafana-data/src/types/featureToggles.gen.ts @grafanabot
@@ -845,4 +828,3 @@ embed.go @grafana/grafana-as-code
/conf/provisioning/dashboards/ @grafana/dashboards-squad
/conf/provisioning/datasources/ @grafana/plugins-platform-backend
/conf/provisioning/plugins/ @grafana/plugins-platform-backend
/conf/provisioning/sample/ @grafana/grafana-git-ui-sync-team

View File

@@ -1,48 +0,0 @@
name: 'Setup Grafana Enterprise'
description: 'Clones and sets up Grafana Enterprise repository for testing'
inputs:
github-app-name:
description: 'Name of the GitHub App in Vault'
required: false
default: 'grafana-ci-bot'
runs:
using: "composite"
steps:
- name: Retrieve GitHub App secrets
id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets-v1.0.1 # zizmor: ignore[unpinned-uses]
with:
repo_secrets: |
APP_ID=${{ inputs.github-app-name }}:app-id
APP_INSTALLATION_ID=${{ inputs.github-app-name }}:app-installation-id
PRIVATE_KEY=${{ inputs.github-app-name }}:private-key
- name: Generate GitHub App token
id: generate_token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ env.APP_ID }}
private-key: ${{ env.PRIVATE_KEY }}
repositories: "grafana-enterprise"
owner: "grafana"
- name: Setup Enterprise
shell: bash
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
git clone https://x-access-token:${GH_TOKEN}@github.com/grafana/grafana-enterprise.git ../grafana-enterprise;
cd ../grafana-enterprise
if git checkout ${GITHUB_HEAD_REF}; then
echo "checked out ${GITHUB_HEAD_REF}"
elif git checkout ${GITHUB_BASE_REF}; then
echo "checked out ${GITHUB_BASE_REF}"
else
git checkout main
fi
./build.sh

View File

@@ -1,45 +0,0 @@
name: 'Setup Grafana Bench'
description: 'Sets up and installs Grafana Bench'
inputs:
github-app-name:
description: 'Name of the GitHub App in Vault'
required: false
default: 'grafana-ci-bot'
branch:
description: 'The branch to install from'
required: false
default: 'main'
runs:
using: "composite"
steps:
- name: Retrieve GitHub App secrets
id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets-v1.0.1 # zizmor: ignore[unpinned-uses]
with:
repo_secrets: |
APP_ID=${{ inputs.github-app-name }}:app-id
APP_INSTALLATION_ID=${{ inputs.github-app-name }}:app-installation-id
PRIVATE_KEY=${{ inputs.github-app-name }}:private-key
- name: Generate GitHub App token
id: generate_token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ env.APP_ID }}
private-key: ${{ env.PRIVATE_KEY }}
repositories: "grafana-bench"
owner: "grafana"
- name: Setup Bench
shell: bash
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
BRANCH: ${{ inputs.branch }}
run: |
git clone https://x-access-token:${GH_TOKEN}@github.com/grafana/grafana-bench.git ../grafana-bench
cd ../grafana-bench
git switch "$BRANCH"
go install .

View File

@@ -1,50 +0,0 @@
name: 'Go Coverage Processor'
description: 'Process Go test coverage files and generate reports'
inputs:
test-type:
description: 'Type of test (e.g., be-unit, be-integration)'
required: true
type: string
coverage-file:
description: 'Path to the Go coverage file (.cov)'
required: true
type: string
codecov-token:
description: 'Token for CodeCov (required for CodeCov reporting)'
required: false
default: ''
codecov-flag:
description: 'Flag to categorize the upload to CodeCov'
required: false
default: ''
codecov-name:
description: 'Custom name for the upload to CodeCov'
required: false
default: ''
runs:
using: 'composite'
steps:
- name: Process Go coverage output
shell: bash
env:
COVERAGE_FILE: ${{ inputs.coverage-file }}
run: |
# Ensure valid coverage file even if empty
if [ ! -s "$COVERAGE_FILE" ]; then
echo "Coverage file is empty, creating a minimal valid file"
echo "mode: set" > "$COVERAGE_FILE"
fi
- name: Report coverage to CodeCov
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5
if: inputs.codecov-token != ''
with:
files: ${{ inputs.coverage-file }}
flags: ${{ inputs.codecov-flag || inputs.test-type }}
name: ${{ inputs.codecov-name || inputs.test-type }}
slug: grafana/grafana
# This URL doesn't use the Google auth, but is much more locked down. As such, it requires OIDC or a CodeCov-provided token to do anything.
url: https://codecov-webhook.grafana-dev.net
token: ${{ inputs.codecov-token }}

View File

@@ -8,7 +8,7 @@ updates:
directories:
- "/"
- "/apps/playlist"
- "/apps/investigation"
- "/apps/investigations"
- "/pkg/aggregator"
- "/pkg/apimachinery"
- "/pkg/apiserver"

View File

@@ -14,7 +14,6 @@
"public/**/*",
"packages/**/*",
"e2e/**/*",
"plugins-bundled/**/*",
"scripts/build/release-packages.sh",
"scripts/circle-release-next-packages.sh",
"scripts/ci-frontend-metrics.sh",
@@ -248,7 +247,8 @@
"/pkg/services/sqlstore/migrations/ualert/**/*",
"/pkg/services/alerting/**/*",
"/public/app/features/alerting/**/*",
"/pkg/tests/api/alerting/**/*"
"/pkg/tests/api/alerting/**/*",
"/pkg/tests/alertmanager/**/*"
],
"action": "updateLabel",
"addLabel": "area/alerting"
@@ -437,4 +437,4 @@
"action": "updateLabel",
"addLabel": "area/panel/table"
}
]
]

View File

@@ -13,13 +13,12 @@
"slate-react", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"@types/slate-react", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"@types/slate", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"storybook-dark-mode", // 4.0.2 causes storybook 8.4 to break with react hooks errors
// Temporarily pause updating lerna and nx until we resolve build issues
"lerna",
"nx"
],
includePaths: ["package.json", "packages/**", "public/app/plugins/**"],
ignorePaths: ["emails/**", "plugins-bundled/**", "**/mocks/**"],
ignorePaths: ["emails/**", "**/mocks/**"],
labels: ["area/frontend", "dependencies", "no-changelog"],
postUpdateOptions: ["yarnDedupeHighest"],
packageRules: [

View File

@@ -13,16 +13,15 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 2
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Build swagger
run: |
make -C pkg/services/ngalert/api/tooling post.json api.json
- name: Open Pull Request
uses: peter-evans/create-pull-request@4e1beaa7521e8b457b572c090b25bd3db56bf1c5
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "chore: update alerting swagger spec"
@@ -35,3 +34,4 @@ jobs:
labels: 'area/alerting,type/docs,no-changelog'
team-reviewers: 'grafana/alerting-backend'
draft: false

View File

@@ -1,137 +0,0 @@
name: Update Alerting Module
on:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
update-grafana:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4 # 4.2.2
with:
persist-credentials: false
- name: Check if update branch exists
run: |
if git ls-remote --heads origin update-alerting-module | grep -q 'update-alerting-module'; then
echo "Branch 'update-alerting-module' already exists. There might be an open PR with Grafana updates."
echo "Please review and merge/close the existing PR before running this workflow again."
exit 1
fi
- name: Setup Go
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # 5.3.0
with:
"go-version-file": "go.mod"
- name: Extract current commit hash of alerting module
id: current-commit
run: |
FROM_COMMIT=$(go list -m -json github.com/grafana/alerting | jq -r '.Version' | grep -oP '(?<=-)[a-f0-9]+$')
echo "from_commit=$FROM_COMMIT" >> $GITHUB_OUTPUT
- name: Get current branch name
id: current-branch-name
run: echo "name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> "$GITHUB_OUTPUT"
- name: Get latest commit
id: latest-commit
env:
GH_TOKEN: ${{ github.token }}
run: |
BRANCH="${{ steps.current-branch-name.outputs.name }}"
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"
exit 1
fi
echo "to_commit=$TO_COMMIT" >> $GITHUB_OUTPUT
- name: Compare commit hashes
run: |
FROM_COMMIT="${{ steps.current-commit.outputs.from_commit }}"
TO_COMMIT="${{ steps.latest-commit.outputs.to_commit }}"
# Compare just the length of the shorter hash
SHORT_TO_COMMIT="${TO_COMMIT:0:${#FROM_COMMIT}}"
if [ "$FROM_COMMIT" = "$SHORT_TO_COMMIT" ]; then
echo "Current version ($FROM_COMMIT) is already at latest ($SHORT_TO_COMMIT). No update needed."
exit 0
fi
echo "Updates available: $FROM_COMMIT -> $TO_COMMIT"
- name: Check for commit history
id: check-commits
env:
GH_TOKEN: ${{ github.token }}
run: |
# get all commits that contains 'Alerting:' in the message
ALERTING_COMMITS=$(gh api repos/grafana/alerting/compare/${{ steps.current-commit.outputs.from_commit }}...${{ steps.latest-commit.outputs.to_commit }} \
--jq '.commits[].commit.message | split("\n")[0]') || true
# Use printf instead of echo -e for better multiline handling
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)
echo "alerting_commits<<EOF" >> $GITHUB_OUTPUT
echo "$ALERTING_COMMITS_FORMATTED" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Update alerting module
env:
GOSUMDB: off
run: |
go get github.com/grafana/alerting@${{ steps.latest-commit.outputs.to_commit }}
make update-workspace
- id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main # zizmor: ignore[unpinned-uses]
with:
repo_secrets: |
GITHUB_APP_ID=alerting-team:app-id
GITHUB_APP_PRIVATE_KEY=alerting-team:private-key
- name: "Generate token"
id: generate_token
uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # 1.11.5
with:
app-id: ${{ env.GITHUB_APP_ID }}
private-key: ${{ env.GITHUB_APP_PRIVATE_KEY }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # 7.0.6
id: create-pr
with:
token: '${{ steps.generate_token.outputs.token }}'
title: 'Alerting: Update alerting module to ${{ steps.latest-commit.outputs.to_commit }}'
branch: alerting/update-alerting-module
delete-branch: true
body: |
Updates Grafana Alerting module to latest version.
Compare changes: https://github.com/grafana/alerting/compare/${{ steps.current-commit.outputs.from_commit }}...${{ steps.latest-commit.outputs.to_commit }}
<details>
<summary>Commits</summary>
${{ steps.check-commits.outputs.alerting_commits }}
</details>
Created by: [GitHub Action Job](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
- name: Add PR URL to Summary
if: steps.create-pr.outputs.pull-request-url != ''
run: |
echo "## Pull Request Created" >> $GITHUB_STEP_SUMMARY
echo "🔗 [View Pull Request](${{ steps.create-pr.outputs.pull-request-url }})" >> $GITHUB_STEP_SUMMARY

View File

@@ -1,25 +0,0 @@
name: Analytics Events Report
on:
workflow_dispatch:
jobs:
generate-report:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
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 --frozen-lockfile
- name: Generate analytics report
run: yarn analytics-report

View File

@@ -21,7 +21,7 @@ jobs:
# Note: Github will not trigger other actions from this because it uses
# the GITHUB_TOKEN token
- name: Run auto-milestone
uses: grafana/grafana-github-actions-go/auto-milestone@d4c452f92ed826d515dccf1f62923e537953acd8 # main
uses: grafana/grafana-github-actions-go/auto-milestone@main
with:
pr: ${{ github.event.pull_request.number }}
token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -32,7 +32,9 @@ area/dashboard/tv
area/dashboard/variable
area/dashboards/panel
area/data/export
area/editor
area/explore
area/exploremetrics
area/expressions
area/field/overrides
area/frontend/library-panels
@@ -41,7 +43,6 @@ area/image-rendering
area/internationalization
area/legend
area/library-panel
area/metricsdrilldown
area/navigation
area/panel/annotation-list
area/panel/barchart

View File

@@ -1,73 +0,0 @@
name: Backend Code Checks
on:
pull_request:
paths-ignore:
- '*.md'
- 'docs/**'
- 'latest.json'
push:
branches:
- main
paths-ignore:
- '*.md'
- 'docs/**'
- 'latest.json'
permissions:
contents: read
id-token: write
jobs:
validate-configs:
name: Validate Backend Configs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
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
# This ensures the GHAs environment matches what we use in the Drone pipeline
go-version: 1.24.1
cache: true
- name: Verify code generation
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
# Enterprise setup is needed for complete OpenAPI spec generation
# We only do this for internal PRs
- 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
if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.head.repo.fork }}" == "true" ]]; then
echo "PR is from a fork, skipping enterprise-based validation"
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
echo "OpenAPI specs are up to date!"
else
echo "OpenAPI specs are OUT OF DATE!"
git diff --cached
echo "Please ensure the branch is up-to-date, then regenerate the specification by running make swagger-clean && make openapi3-gen"
exit 1
fi

View File

@@ -1,71 +0,0 @@
name: Backend Unit Tests
on:
pull_request:
paths-ignore:
- 'docs/**'
- '**/*.md'
push:
branches:
- main
- release-*.*.*
paths-ignore:
- 'docs/**'
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
permissions: {}
jobs:
grafana:
# Run this workflow only for PRs from forks; if it gets merged into `main` or `release-*`,
# the `pr-backend-unit-tests-enterprise` workflow will run instead
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true
name: Grafana
runs-on: ubuntu-latest-8-cores
continue-on-error: true
permissions:
contents: read
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Generate Go code
run: make gen-go
- name: Run unit tests
run: make test-go-unit
grafana-enterprise:
# 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: Grafana Enterprise
runs-on: ubuntu-latest-8-cores
permissions:
contents: read
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Setup Enterprise
uses: ./.github/actions/setup-enterprise
with:
github-app-name: 'grafana-ci-bot'
- name: Generate Go code
run: make gen-go
- name: Run unit tests
run: make test-go-unit

View File

@@ -5,28 +5,23 @@ on:
- closed
- labeled
permissions:
contents: write
pull-requests: write
jobs:
main:
if: github.repository == 'grafana/grafana'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4 # 4.2.2
uses: actions/checkout@v4
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
persist-credentials: false
- run: git config --local user.name "github-actions[bot]"
- run: git config --local user.email "github-actions[bot]@users.noreply.github.com"
- run: git config --local --add --bool push.autoSetupRemote true
- name: Set remote URL
env:
GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git remote set-url origin "https://grafana-delivery-bot:$GIT_TOKEN@github.com/grafana/grafana.git"
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- run: git config --global user.email '132647405+grafana-delivery-bot[bot]@users.noreply.github.com'
- run: git config --global user.name 'grafana-delivery-bot[bot]'
- run: git remote set-url origin "https://grafana-delivery-bot:${{ steps.generate_token.outputs.token }}@github.com/grafana/grafana.git"
- name: Run backport
uses: grafana/grafana-github-actions-go/backport@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/backport@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -11,37 +11,33 @@ on:
dry_run:
default: false
required: false
permissions:
contents: write
pull-requests: write
jobs:
bump-version:
main:
runs-on: ubuntu-latest
steps:
- name: Checkout Grafana
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Update package.json versions
uses: ./pkg/build/actions/bump-version
with:
version: ${{ inputs.version }}
- if: ${{ inputs.push }}
name: Generate token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- if: ${{ inputs.push }}
name: Push & Create PR
env:
VERSION: ${{ inputs.version }}
DRY_RUN: ${{ inputs.dry_run }}
REF_NAME: ${{ github.ref_name }}
RUN_ID: ${{ github.run_id }}
GH_TOKEN: ${{ secrets.GITHUB_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 --add --bool push.autoSetupRemote true
git checkout -b "bump-version/${RUN_ID}/${VERSION}"
git checkout -b "bump-version/${{ github.run_id }}/${{ inputs.version }}"
git add .
git commit -m "bump version ${VERSION}"
git commit -m "bump version ${{ inputs.version }}"
git push
gh pr create --dry-run=$DRY_RUN -l "type/ci" -l "no-changelog" -B "$REF_NAME" --title "Release: Bump version to ${VERSION}" --body "Updated version to ${VERSION}"
gh pr create --dry-run=${{ inputs.dry_run }} -l "type/ci" -l "no-changelog" -B "${{ github.ref_name }}" --title "Release: Bump version to ${{ inputs.version }}" --body "Updated version to ${{ inputs.version }}"
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}

View File

@@ -51,21 +51,15 @@ on:
default: false
type: boolean
permissions: {}
permissions:
contents: write
pull-requests: write
jobs:
main:
env:
RUN_ID: ${{ github.run_id }}
VERSION: ${{ inputs.version }}
PREVIOUS_VERISON: ${{ inputs.previous_version }}
TARGET: ${{ inputs.target }}
DRY_RUN: ${{ inputs.dry_run }}
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
steps:
- name: "Generate token"
id: generate_token
@@ -85,7 +79,6 @@ jobs:
.prettierrc.js
fetch-depth: 0
fetch-tags: true
persist-credentials: false
- name: Setup nodejs environment
uses: actions/setup-node@v4
with:
@@ -96,10 +89,10 @@ jobs:
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local --add --bool push.autoSetupRemote true
- name: "Create branch"
run: git checkout -b "changelog/${RUN_ID}/${VERSION}"
run: git checkout -b "changelog/${{ github.run_id }}/${{ inputs.version }}"
- name: "Generate changelog"
id: changelog
uses: ./.github/actions/changelog
uses: ./.github/workflows/actions/changelog
with:
previous: ${{ inputs.previous_version }}
github_token: ${{ steps.generate_token.outputs.token }}
@@ -110,24 +103,24 @@ jobs:
# Prepare CHANGELOG.md content with version delimiters
(
echo
echo "# ${VERSION} ($(date '+%F'))"
echo "# ${{ inputs.version}} ($(date '+%F'))"
echo
cat changelog_items.md
) > CHANGELOG.part
# Check if a version exists in the changelog
if grep -q "<!-- ${VERSION} START" CHANGELOG.md ; then
if grep -q "<!-- ${{ inputs.version}} START" CHANGELOG.md ; then
# Replace the content between START and END delimiters
echo "Version ${VERSION} is found in the CHANGELOG.md, patching contents..."
sed -i -e "/${VERSION} START/,/${VERSION} END/{//!d;}" \
-e "/${VERSION} START/r CHANGELOG.part" CHANGELOG.md
echo "Version ${{ inputs.version }} is found in the CHANGELOG.md, patching contents..."
sed -i -e '/${{ inputs.version }} START/,/${{ inputs.version }} END/{//!d;}' \
-e '/${{ inputs.version }} START/r CHANGELOG.part' CHANGELOG.md
else
# Prepend changelog part to the main changelog file
echo "Version $VERSION not found in the CHANGELOG.md"
echo "Version ${{ inputs.version }} not found in the CHANGELOG.md"
(
echo "<!-- ${VERSION} START -->"
echo "<!-- ${{ inputs.version }} START -->"
cat CHANGELOG.part
echo "<!-- ${VERSION} END -->"
echo "<!-- ${{ inputs.version }} END -->"
cat CHANGELOG.md
) > CHANGELOG.tmp
mv CHANGELOG.tmp CHANGELOG.md
@@ -145,11 +138,11 @@ jobs:
- name: "Create changelog PR"
run: >
gh pr create \
--dry-run=${DRY_RUN} \
--dry-run=${{ inputs.dry_run }} \
--label "no-backport" \
--label "no-changelog" \
-B "${TARGET}" \
--title "Release: update changelog for ${VERSION}" \
--body "Changelog changes for release ${VERSION}"
-B "${{ inputs.target }}" \
--title "Release: update changelog for ${{ inputs.version }}" \
--body "Changelog changes for release ${{ inputs.version }}"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ steps.generate_token.outputs.token }}

44
.github/workflows/close-milestone.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: Close milestone
on:
workflow_dispatch:
inputs:
version:
required: true
description: Needs to match, exactly, the name of a milestone
workflow_call:
inputs:
version_call:
description: Needs to match, exactly, the name of a milestone
required: true
type: string
jobs:
main:
if: github.repository == 'grafana/grafana'
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Close milestone (manually invoked)
if: ${{ github.event.inputs.version != '' }}
uses: ./actions/close-milestone
with:
token: ${{ steps.generate_token.outputs.token }}
- name: Close milestone (workflow invoked)
if: ${{ inputs.version_call != '' }}
uses: ./actions/close-milestone
with:
version_call: ${{ inputs.version_call }}
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -10,10 +10,8 @@ jobs:
steps:
# Checks-out your repository, which is validated in the next step
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: GitHub CODEOWNERS Validator
uses: mszostok/codeowners-validator@7f3f5e28c6d7b8dfae5731e54ce2272ca384592f
uses: mszostok/codeowners-validator@v0.7.4
# input parameters
with:
# ==== GitHub Auth ====

View File

@@ -3,19 +3,18 @@
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL checks"
name: "CodeQL"
on:
workflow_dispatch:
push:
branches: ['**'] # run on all branches
branches: [main, v1.8.x, v2.0.x, v2.1.x, v2.6.x, v3.0.x, v3.1.x, v4.0.x, v4.1.x, v4.2.x, v4.3.x, v4.4.x, v4.5.x, v4.6.x, v4.7.x, v5.0.x, v5.1.x, v5.2.x, v5.3.x, v5.4.x, v6.0.x, v6.1.x, v6.2.x, v6.3.x, v6.4.x, v6.5.x, v6.6.x, v6.7.x, v7.0.x, v7.1.x, v7.2.x]
paths-ignore:
- '**/*.cue'
- '**/*.json'
- '**/*.md'
- '**/*.txt'
- '**/*.yml'
- pkg/storage/unified/sql/db/dbimpl/db.go # Ignoring warnings on the whole file for now while inline comments is not supported in Go (https://github.com/github/codeql/issues/11427)
schedule:
- cron: '0 4 * * 6'
@@ -26,7 +25,6 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
continue-on-error: true # doesn't block PRs from being merged if this fails
if: github.repository == 'grafana/grafana'
strategy:
@@ -45,17 +43,16 @@ jobs:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
persist-credentials: false
- if: matrix.language == 'go'
name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@v4
with:
go-version-file: go.mod
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -70,4 +67,4 @@ jobs:
make build-go
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v2

View File

@@ -12,7 +12,9 @@ on:
concurrency:
group: issue-commands-${{ github.event.issue.number }}
permissions: {}
permissions:
contents: read
id-token: write
jobs:
config:
@@ -32,13 +34,10 @@ jobs:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
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@main
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_commands_github_bot path in Vault
repo_secrets: |
@@ -53,12 +52,11 @@ jobs:
private_key: ${{ env.GH_APP_PEM }}
- name: Checkout Actions
uses: actions/checkout@v4 # v4.2.2
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
persist-credentials: false
- name: Install Actions
run: npm install --production --prefix ./actions

View File

@@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Run community-release (manually invoked)
uses: grafana/grafana-github-actions-go/community-release@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/community-release@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ inputs.version }}

View File

@@ -33,8 +33,6 @@ permissions:
jobs:
build-and-publish:
env:
PLUGIN_ID: ${{ inputs.plugin_id }}
name: Build and publish ${{ inputs.plugin_id }}
runs-on: ubuntu-latest
outputs:
@@ -44,13 +42,11 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Verify inputs
run: |
if [ -z $PLUGIN_ID ]; then echo "Missing plugin ID"; exit 1; fi
if [ -z ${{ inputs.plugin_id }} ]; then echo "Missing plugin ID"; exit 1; fi
- id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main # zizmor: ignore[unpinned-uses]
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
# Secrets placed in the ci/repo/grafana/<repo>/<path> path in Vault
repo_secrets: |
@@ -58,11 +54,11 @@ jobs:
PLUGINS_GRAFANA_API_KEY=core-plugins-build-and-release:PLUGINS_GRAFANA_API_KEY
PLUGINS_GCOM_TOKEN=core-plugins-build-and-release:PLUGINS_GCOM_TOKEN
- name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f'
uses: 'google-github-actions/auth@v2'
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@v2'
- name: Setup nodejs environment
uses: actions/setup-node@v4
with:
@@ -74,7 +70,7 @@ jobs:
run: |
dir=$(dirname \
$(egrep -lir --include=plugin.json --exclude-dir=dist \
'"id": "${PLUGIN_ID}"' \
'"id": "${{ inputs.plugin_id }}"' \
public/app/plugins \
) \
)
@@ -89,19 +85,19 @@ jobs:
working-directory: ${{ steps.get_dir.outputs.dir }}
run: |
[ ! -d ./bin ] && mkdir -pv ./bin || true
curl -fL -o ./bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v$GRABPL_VERSION/grabpl
curl -fL -o ./bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v${{ env.GRABPL_VERSION }}/grabpl
chmod 0755 ./bin/grabpl
- name: Check backend
id: check_backend
shell: bash
run: |
if egrep -qr --include=main.go 'datasource.Manage\("$PLUGIN_ID"' pkg/tsdb; then
if egrep -qr --include=main.go 'datasource.Manage\("${{ inputs.plugin_id }}"' pkg/tsdb; then
echo "has_backend=true" >> $GITHUB_OUTPUT
else
echo "has_backend=false" >> $GITHUB_OUTPUT
fi
- name: Setup golang environment
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@v4
if: steps.check_backend.outputs.has_backend == 'true'
with:
go-version-file: go.mod
@@ -155,7 +151,7 @@ jobs:
# Release branch, do not add commit hash to version
command="plugin:build"
fi
yarn $command --scope="@grafana-plugins/$PLUGIN_ID"
yarn $command --scope="@grafana-plugins/${{ inputs.plugin_id }}"
version=$(cat ${{ steps.get_dir.outputs.dir }}/dist/plugin.json | jq -r .info.version)
echo "version=${version}" >> $GITHUB_OUTPUT
- name: build:backend
@@ -164,7 +160,7 @@ jobs:
env:
VERSION: ${{ steps.build_frontend.outputs.version }}
run: |
make build-plugin-go PLUGIN_ID=$PLUGIN_ID
make build-plugin-go PLUGIN_ID=${{ inputs.plugin_id }}
- name: package
working-directory: ${{ steps.get_dir.outputs.dir }}
run: |
@@ -179,7 +175,7 @@ jobs:
VERSION: ${{ steps.build_frontend.outputs.version }}
run: |
api_res=$(curl -X 'GET' -H "Authorization: Bearer $GCOM_TOKEN" \
'${{ env.GCOM_API}}/api/plugins/$PLUGIN_ID?version=$VERSION' \
'${{ env.GCOM_API}}/api/plugins/${{ inputs.plugin_id }}?version=$VERSION' \
-H 'accept: application/json')
api_res_code=$(echo $api_res | jq -r .code)
if [ "$api_res_code" = "NotFound" ]; then
@@ -201,10 +197,10 @@ jobs:
run: |
echo "Publish release to Google Cloud Storage:"
touch ci/packages/windows ci/packages/darwin ci/packages/linux ci/packages/any
gsutil -m cp -r ci/packages/*windows* gs://${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/windows
gsutil -m cp -r ci/packages/*linux* gs://${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/linux
gsutil -m cp -r ci/packages/*darwin* gs://${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/darwin
gsutil -m cp -r ci/packages/*any* gs://${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/any
gsutil -m cp -r ci/packages/*windows* gs://${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/windows
gsutil -m cp -r ci/packages/*linux* gs://${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/linux
gsutil -m cp -r ci/packages/*darwin* gs://${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/darwin
gsutil -m cp -r ci/packages/*any* gs://${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/any
- name: Publish new plugin version on grafana.com
if: steps.check_backend.outputs.has_backend == 'true'
working-directory: ${{ steps.get_dir.outputs.dir }}
@@ -218,27 +214,27 @@ jobs:
\"url\": \"https://github.com/grafana/grafana/tree/main/${{ steps.get_dir.outputs.dir }}\",
\"download\": {
\"linux-amd64\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/linux/$PLUGIN_ID-${VERSION}.linux_amd64.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/linux/${{ inputs.plugin_id }}-${VERSION}.linux_amd64.zip\",
\"md5\": \"$(cat ci/packages/info-linux_amd64.json | jq -r .plugin.md5)\"
},
\"linux-arm64\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/linux/$PLUGIN_ID-${VERSION}.linux_arm64.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/linux/${{ inputs.plugin_id }}-${VERSION}.linux_arm64.zip\",
\"md5\": \"$(cat ci/packages/info-linux_arm64.json | jq -r .plugin.md5)\"
},
\"linux-arm\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/linux/$PLUGIN_ID-${VERSION}.linux_arm.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/linux/${{ inputs.plugin_id }}-${VERSION}.linux_arm.zip\",
\"md5\": \"$(cat ci/packages/info-linux_arm.json | jq -r .plugin.md5)\"
},
\"windows-amd64\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/windows/$PLUGIN_ID-${VERSION}.windows_amd64.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/windows/${{ inputs.plugin_id }}-${VERSION}.windows_amd64.zip\",
\"md5\": \"$(cat ci/packages/info-windows_amd64.json | jq -r .plugin.md5)\"
},
\"darwin-amd64\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/darwin/$PLUGIN_ID-${VERSION}.darwin_amd64.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/darwin/${{ inputs.plugin_id }}-${VERSION}.darwin_amd64.zip\",
\"md5\": \"$(cat ci/packages/info-darwin_amd64.json | jq -r .plugin.md5)\"
},
\"darwin-arm64\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/darwin/$PLUGIN_ID-${VERSION}.darwin_arm64.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/darwin/${{ inputs.plugin_id }}-${VERSION}.darwin_arm64.zip\",
\"md5\": \"$(cat ci/packages/info-darwin_arm64.json | jq -r .plugin.md5)\"
}
}
@@ -261,7 +257,7 @@ jobs:
\"url\": \"https://github.com/grafana/grafana/tree/main/${{ steps.get_dir.outputs.dir }}\",
\"download\": {
\"any\": {
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/$PLUGIN_ID/release/${VERSION}/any/$PLUGIN_ID-${VERSION}.any.zip\",
\"url\": \"https://storage.googleapis.com/${{ env.GCP_BUCKET }}/${{ inputs.plugin_id }}/release/${VERSION}/any/${{ inputs.plugin_id }}-${VERSION}.any.zip\",
\"md5\": \"$(cat ci/packages/info-any.json | jq -r .plugin.md5)\"
}
}

View File

@@ -11,9 +11,7 @@ on:
type: string
required: true
secrets:
GRAFANA_DELIVERY_BOT_APP_ID:
required: true
GRAFANA_DELIVERY_BOT_APP_PEM:
token:
required: true
outputs:
branch:
@@ -28,9 +26,7 @@ on:
type: string
required: true
secrets:
GRAFANA_DELIVERY_BOT_APP_ID:
required: true
GRAFANA_DELIVERY_BOT_APP_PEM:
token:
required: true
jobs:
main:
@@ -38,16 +34,10 @@ jobs:
outputs:
branch: ${{ steps.branch.outputs.branch }}
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Create release branch
id: branch
uses: grafana/grafana-github-actions-go/bump-release@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/bump-release@main
with:
ownerRepo: ${{ inputs.ownerRepo }}
source: ${{ inputs.source }}
token: ${{ steps.generate_token.outputs.token }}
token: ${{ secrets.token }}

View File

@@ -17,7 +17,7 @@ on:
jobs:
trigger_downstream_create_security_patch:
concurrency: create-patch-${{ github.ref_name }}
uses: grafana/security-patch-actions/.github/workflows/create-patch.yml@main # zizmor: ignore[unpinned-uses]
uses: grafana/security-patch-actions/.github/workflows/create-patch.yml@main
if: github.repository == 'grafana/grafana-security-mirror'
with:
repo: "${{ github.repository }}"
@@ -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 }}"
secrets: inherit # zizmor: ignore[secrets-inherit]
secrets: inherit

View File

@@ -22,7 +22,7 @@ jobs:
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@main
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_commands_github_bot path in Vault
repo_secrets: |
@@ -38,13 +38,11 @@ jobs:
- name: Check if issue is in target project
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
TARGET_PROJECT: ${{ env.TARGET_PROJECT }}
run: |
gh api graphql -f query='
query($org: String!, $repo: String!) {
repository(name: $repo, owner: $org) {
issue (number: $ISSUE_NUMBER) {
issue (number: ${{ github.event.issue.number }}) {
id
projectItems(first:20) {
nodes {
@@ -57,14 +55,12 @@ jobs:
}
}' -f org=$ORGANIZATION -f repo=$REPO > projects_data.json
echo 'IN_TARGET_PROJ='$(jq '.data.repository.issue.projectItems.nodes[] | select(.project.number=='"$TARGET_PROJECT"') | .project != null' projects_data.json) >> $GITHUB_ENV
echo 'IN_TARGET_PROJ='$(jq '.data.repository.issue.projectItems.nodes[] | select(.project.number==${{ env.TARGET_PROJECT }}) | .project != null' projects_data.json) >> $GITHUB_ENV
echo 'ITEM_ID='$(jq '.data.repository.issue.id' projects_data.json) >> $GITHUB_ENV
- name: Set up label array
if: env.IN_TARGET_PROJ
env:
LABEL_IDS: ${{ env.LABEL_IDS }}
run: |
IFS=',' read -ra LABEL_IDs <<< "$LABEL_IDS"
IFS=',' read -ra LABEL_IDs <<< "${{ env.LABEL_IDs }}"
for item in "${LABEL_IDs[@]}"; do
echo "Item: $item"
done
@@ -72,7 +68,6 @@ jobs:
if: env.IN_TARGET_PROJ
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
LABEL_IDS: ${{ env.LABEL_IDS }}
run: |
gh api graphql -f query='
mutation ($labelableId: ID!, $labelIds: [ID!]!) {
@@ -81,4 +76,4 @@ jobs:
) {
clientMutationId
}
}' -f labelableId=$ITEM_ID -f labelIds=$LABEL_IDS
}' -f labelableId=$ITEM_ID -f labelIds=${{ env.LABEL_IDs }}

View File

@@ -11,21 +11,14 @@ on:
jobs:
deploy-pr-preview:
if: "!github.event.pull_request.head.repo.fork"
uses: grafana/writers-toolkit/.github/workflows/deploy-preview.yml@main # zizmor: ignore[unpinned-uses]
if: ${{ ! github.event.pull_request.head.repo.fork }}
uses: grafana/writers-toolkit/.github/workflows/deploy-preview.yml@main
with:
sha: ${{ github.event.pull_request.head.sha }}
branch: ${{ github.head_ref }}
event_number: ${{ github.event.number }}
repo: grafana
sha: ${{ github.event.pull_request.head.sha }}
sources: |
[
{
"index_file": "content/docs/grafana/_index.md",
"relative_prefix": "/docs/grafana/latest/",
"repo": "grafana",
"source_directory": "docs/sources",
"website_directory": "content/docs/grafana/latest"
}
]
title: ${{ github.event.pull_request.title }}
repo: grafana
website_directory: content/docs/grafana/latest
relative_prefix: /docs/grafana/latest/
index_file: true

View File

@@ -6,7 +6,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
permissions:
contents: read
id-token: write
on:
pull_request:
@@ -22,15 +24,11 @@ jobs:
defaults:
run:
working-directory: './pr'
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
with:
path: './pr'
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: 22.11.0
@@ -69,9 +67,6 @@ jobs:
buildBase:
name: Build Base packages artifacts
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
defaults:
run:
working-directory: './base'
@@ -150,14 +145,14 @@ jobs:
run: unzip -j base_built_packages.zip -d ./base && rm base_built_packages.zip
- id: 'auth'
uses: 'google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f'
uses: 'google-github-actions/auth@v2'
with:
workload_identity_provider: ${{ secrets.WIF_PROVIDER }}
service_account: ${{ secrets.LEVITATE_SA }}
project_id: 'grafanalabs-global'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@6189d56e4096ee891640bb02ac264be376592d6a'
uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 363.0.0'
project_id: 'grafanalabs-global'
@@ -185,9 +180,6 @@ jobs:
name: Report breaking changes in PR comment
runs-on: ubuntu-latest
needs: ['Detect']
permissions:
contents: read
id-token: write
steps:
- name: "Generate token"
@@ -246,7 +238,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@v2
with:
header: levitate-breaking-change-comment
number: ${{ github.event.pull_request.number }}
@@ -263,7 +255,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@v2
with:
header: levitate-breaking-change-comment
number: ${{ github.event.pull_request.number }}

26
.github/workflows/doc-validator.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: "doc-validator"
on:
workflow_dispatch:
inputs:
include:
description: |
Regular expression that matches paths to include in linting.
For example: docs/sources/(?:alerting|fundamentals)/.+\.md
required: true
jobs:
doc-validator:
runs-on: "ubuntu-latest"
container:
image: "grafana/doc-validator:v5.2.0"
steps:
- name: "Checkout code"
uses: "actions/checkout@v4"
- name: "Run doc-validator tool"
# Only run doc-validator on specific directories.
run: >
doc-validator
'--include=${{ inputs.include }}'
'--skip-checks=^(?:image.+|canonical-does-not-match-pretty-URL)$'
./docs/sources
/docs/grafana/latest

View File

@@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: grafana/writers-toolkit/vale-action@vale-action/v1 # zizmor: ignore[unpinned-uses]
- uses: grafana/writers-toolkit/vale-action@vale-action/v1
with:
filter: '.Name in ["Grafana.GrafanaCom", "Grafana.WordList", "Grafana.Spelling", "Grafana.ProductPossessives"]'
filter: '.Name in ["Grafana.WordList", "Grafana.Spelling", "Grafana.ProductPossessives"]'
token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -47,7 +47,6 @@ jobs:
token: ${{ steps.generate_token.outputs.token }}
ref: main
path: ephemeral
persist-credentials: false
- name: build and deploy ephemeral instance
uses: ./ephemeral

View File

@@ -0,0 +1,149 @@
name: When epic issues changed in Platform UX squad projects, check if epic is part of specified child projects and update on Platform UX parent project
on:
issues:
types: [opened, closed, edited, reopened, assigned, unassigned, labeled, unlabeled]
labels:
- 'type/epic'
env:
GH_TOKEN: ${{ secrets.GH_BOT_PROJECTS_ACCESS_TOKEN }}
ORGANIZATION: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}
PARENT_PROJECT: 304
CHILD_PROJECT_1: 78
CHILD_PROJECT_2: 111
CHILD_PROJECT_3: 202
concurrency:
group: issue-add-to-parent-project-${{ github.event.number }}
jobs:
config:
runs-on: "ubuntu-latest"
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.GH_BOT_PROJECTS_ACCESS_TOKEN != '') || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
main:
needs: config
if: needs.config.outputs.has-secrets && contains(github.event.issue.labels.*.name, 'type/epic')
runs-on: ubuntu-latest
steps:
- name: Check if issue is in child or parent projects
run: |
gh api graphql -f query='
query($org: String!, $repo: String!) {
repository(name: $repo, owner: $org) {
issue (number: ${{ github.event.issue.number }}) {
projectItems(first:20) {
nodes {
id,
project {
number,
title
},
fieldValueByName(name:"Status") {
... on ProjectV2ItemFieldSingleSelectValue {
optionId
name
}
}
}
}
}
}
}' -f org=$ORGANIZATION -f repo=$REPO > projects_data.json
echo 'IN_PARENT_PROJ='$(jq '.data.repository.issue.projectItems.nodes[] | select(.project.number==${{ env.PARENT_PROJECT }}) | .project != null' projects_data.json) >> $GITHUB_ENV
echo 'PARENT_PROJ_STATUS_ID='$(jq '.data.repository.issue.projectItems.nodes[] | select(.project.number==${{ env.PARENT_PROJECT }}) | select(.fieldValueByName != null) | .fieldValueByName.optionId' projects_data.json) >> $GITHUB_ENV
echo 'ITEM_ID='$(jq '.data.repository.issue.projectItems.nodes[] | select(.project.number==${{ env.PARENT_PROJECT }}) | .id' projects_data.json) >> $GITHUB_ENV
echo 'IN_CHILD_PROJ='$(jq 'first(.data.repository.issue.projectItems.nodes[] | select(.project.number==${{ env.CHILD_PROJECT_1 }} or .project.number==${{ env.CHILD_PROJECT_2 }} or .project.number==${{ env.CHILD_PROJECT_3 }}) | .project != null)' projects_data.json) >> $GITHUB_ENV
echo 'CHILD_PROJ_STATUS='$(jq -r '.data.repository.issue.projectItems.nodes[] | select(.project.number==${{ env.CHILD_PROJECT_1 }} or .project.number==${{ env.CHILD_PROJECT_2 }} or .project.number==${{ env.CHILD_PROJECT_3 }}) | select(.fieldValueByName != null) | .fieldValueByName.name' projects_data.json) >> $GITHUB_ENV
- name: Get parent project project data
if: env.IN_CHILD_PROJ
run: |
gh api graphql -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectV2(number: $number) {
id
fields(first:20) {
nodes {
... on ProjectV2Field {
id
name
}
... on ProjectV2SingleSelectField {
id
name
options {
id
name
}
}
}
}
}
}
}' -f org=$ORGANIZATION -F number=$PARENT_PROJECT > project_data.json
echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
echo 'TODO_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
echo 'PROGRESS_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="In Progress") |.id' project_data.json) >> $GITHUB_ENV
echo 'DONE_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Done") |.id' project_data.json) >> $GITHUB_ENV
- name: Add issue to parent project
if: env.IN_CHILD_PROJ && !env.IN_PARENT_PROJ
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $issue:ID!) {
addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) {
item {
id
}
}
}' -f project=$PROJECT_ID -f issue=${{ github.event.issue.node_id }} --jq '.data.addProjectV2ItemById.item.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Set parent project status Done
if: contains(env.CHILD_PROJ_STATUS, 'Done')
run: |
echo 'OPTION_ID='$DONE_OPTION_ID >> $GITHUB_ENV
- name: Set parent project status In Progress
if: contains(env.CHILD_PROJ_STATUS, 'In ') || contains(env.CHILD_PROJ_STATUS, 'Blocked')
run: |
echo 'OPTION_ID='$PROGRESS_OPTION_ID >> $GITHUB_ENV
- name: Set parent project status To do
if: env.CHILD_PROJ_STATUS && !contains(env.CHILD_PROJ_STATUS, 'In ') && !contains(env.CHILD_PROJ_STATUS, 'Blocked') && ! contains(env.CHILD_PROJ_STATUS, 'Done')
run: |
echo 'OPTION_ID='$TODO_OPTION_ID >> $GITHUB_ENV
- name: Set issue status in parent project
if: env.OPTION_ID && (env.OPTION_ID != env.PARENT_PROJ_STATUS_ID)
run: |
gh api graphql -f query='
mutation (
$project: ID!
$item: ID!
$status_field: ID!
$status_value: String!
) {
set_status: updateProjectV2ItemFieldValue(input: {
projectId: $project
itemId: $item
fieldId: $status_field
value: {
singleSelectOptionId: $status_value
}
}) {
projectV2Item {
id
}
}
}' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.OPTION_ID }} --silent

View File

@@ -1,25 +0,0 @@
name: Feature toggles CI
on:
pull_request:
paths:
- 'pkg/services/featuremgmt/toggles_gen_test.go'
- 'pkg/services/featuremgmt/registry.go'
- 'docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Run feature toggle tests
run: go test -v -run TestFeatureToggleFiles ./pkg/services/featuremgmt/

View File

@@ -1,133 +0,0 @@
name: Lint Frontend
on:
pull_request:
push:
branches:
- main
- release-*.*.*
permissions: {}
jobs:
lint-frontend-verify-i18n:
name: Verify i18n
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
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
- run: |
extract_error_message='::error::Extraction failed. Make sure that you have no dynamic translation phrases, such as "t(`preferences.theme.{themeID}`, themeName)" and that no translation key is used twice. Search the output for '[warning]' to find the offending file.'
make i18n-extract || (echo "${extract_error_message}" && false)
- run: |
uncommited_error_message="::error::Translation extraction has not been committed. Please run 'make i18n-extract', commit the changes and push again."
file_diff=$(git diff --dirstat public/locales)
if [ -n "$file_diff" ]; then
echo $file_diff
echo "${uncommited_error_message}"
exit 1
fi
lint-frontend-prettier:
permissions:
contents: read
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
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- run: yarn install --immutable --check-cache
- run: yarn run prettier:check
- run: yarn run lint
lint-frontend-prettier-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: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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
- run: yarn run prettier:check
- run: yarn run lint
lint-frontend-typecheck:
permissions:
contents: read
id-token: write
# Run this workflow only for PRs from forks; if it gets merged into `main` or `release-*`,
# the `lint-frontend-typecheck-enterprise` workflow will run instead
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true
name: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- run: yarn install --immutable --check-cache
- run: yarn run typecheck
lint-frontend-typecheck-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: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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
- run: yarn run typecheck
lint-frontend-betterer:
permissions:
contents: read
id-token: write
name: Betterer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- run: yarn install --immutable --check-cache
- run: yarn run betterer:ci

View File

@@ -40,7 +40,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Create GitHub release (manually invoked)
uses: grafana/grafana-github-actions-go/github-release@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/github-release@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ inputs.version }}

View File

@@ -17,16 +17,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-go@v5
with:
go-version-file: ./go.mod
- run: make gen-go
- name: golangci-lint
uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd
uses: golangci/golangci-lint-action@v6
with:
version: v2.0.2
version: v1.62.0
args: |
--verbose $(go list -m -f '{{.Dir}}' | xargs -I{} sh -c 'test ! -f {}/.nolint && echo {}/...')
install-mode: binary

View File

@@ -1,27 +0,0 @@
name: Crowdin Create Tasks
on:
workflow_dispatch:
# schedule:
# - cron: "0 0 * * *"
jobs:
create-tasks-in-crowdin:
runs-on: ubuntu-latest
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: Create tasks
env:
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
run: node ./.github/workflows/scripts/crowdin/create-tasks.js

View File

@@ -26,11 +26,10 @@ jobs:
with:
ref: ${{ github.head_ref }}
token: ${{ steps.generate_token.outputs.token }}
persist-credentials: false
- name: Download sources
id: crowdin-download
uses: crowdin/github-action@b8012bd5491b8aa8578b73ab5b5f5e7c94aaa6e2
uses: crowdin/github-action@v2
with:
upload_sources: false
upload_translations: false
@@ -73,7 +72,7 @@ jobs:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
- name: Get project board ID
uses: octokit/graphql-action@51bf543c240dcd14761320e2efc625dc32ec0d32
uses: octokit/graphql-action@v2.x
id: get-project-id
if: steps.crowdin-download.outputs.pull_request_url
with:
@@ -93,7 +92,7 @@ jobs:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
- name: Add to project board
uses: octokit/graphql-action@51bf543c240dcd14761320e2efc625dc32ec0d32
uses: octokit/graphql-action@v2.x
if: steps.crowdin-download.outputs.pull_request_url
with:
projectid: ${{ fromJson(steps.get-project-id.outputs.data).organization.projectV2.id }}
@@ -110,7 +109,7 @@ jobs:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
- name: Run auto-milestone
uses: grafana/grafana-github-actions-go/auto-milestone@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/auto-milestone@main
if: steps.crowdin-download.outputs.pull_request_url
with:
pr: ${{ steps.crowdin-download.outputs.pull_request_number }}
@@ -118,7 +117,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@main
with:
# Secrets placed in ci/repo/grafana/grafana/grafana-pr-approver
repo_secrets: |

View File

@@ -15,11 +15,9 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Upload sources
uses: crowdin/github-action@b8012bd5491b8aa8578b73ab5b5f5e7c94aaa6e2
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_sources_args: '--dest=public/locales/en-US/grafana.json'

View File

@@ -10,24 +10,22 @@ on:
concurrency:
group: issue-opened-${{ github.event.issue.number }}
permissions: {}
permissions:
contents: read
id-token: write
jobs:
main:
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
permissions:
contents: read
id-token: write
steps:
- name: Checkout Actions
uses: actions/checkout@v4 # v4.2.2
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
persist-credentials: false
- name: Install Actions
run: npm install --production --prefix ./actions
@@ -39,7 +37,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@main
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_commands_github_bot path in Vault
repo_secrets: |
@@ -62,16 +60,13 @@ jobs:
auto-triage:
needs: [main]
permissions:
contents: read
id-token: write
if: github.repository == 'grafana/grafana' && github.event.issue.author_association != 'MEMBER' && github.event.issue.author_association != 'OWNER'
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@main
with:
# Secrets placed in the ci/repo/grafana/grafana/plugins_platform_issue_triager path in Vault
repo_secrets: |
@@ -88,11 +83,11 @@ jobs:
private_key: ${{ env.GH_APP_PEM }}
- name: Checkout
uses: actions/checkout@v4 # v4.2.2
uses: actions/checkout@v4
- name: Send issue to the auto triager action
id: auto_triage
uses: grafana/auto-triager@main # zizmor: ignore[unpinned-uses]
uses: grafana/auto-triager@main
with:
token: ${{ steps.generate_token.outputs.token }}
issue_number: ${{ github.event.issue.number }}
@@ -104,7 +99,7 @@ jobs:
- name: "Send Slack notification"
if: ${{ steps.auto_triage.outputs.triage_labels != '' }}
uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0
uses: slackapi/slack-github-action@v1.27.0
with:
payload: >
{

View File

@@ -1,62 +0,0 @@
name: Documentation
on:
pull_request:
paths:
- '*.md'
- 'docs/**'
- 'packages/**/*.md'
- 'latest.json'
push:
branches:
- main
paths:
- '*.md'
- 'docs/**'
- 'packages/**/*.md'
- 'latest.json'
jobs:
docs:
name: Build & Verify Docs
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.11.0'
cache: 'yarn'
- name: Install dependencies
run: yarn install --immutable
- name: Lint docs
run: yarn run prettier:checkDocs
env:
# Increase memory for prettier due to large number of files
NODE_OPTIONS: --max_old_space_size=8192
- name: Build docs website
run: |
# Create and start a container from the docs-base image in detached mode
docker run -d --name docs-builder grafana/docs-base:latest tail -f /dev/null
# Create the directory structure inside the container
docker exec docs-builder mkdir -p /hugo/content/docs/grafana/latest
# Create the _index.md file
docker exec docs-builder /bin/sh -c "echo -e '---\nredirectURL: /docs/grafana/latest/\ntype: redirect\nversioned: true\n---\n' > /hugo/content/docs/grafana/_index.md"
# Copy the docs sources from the host to the container
docker cp docs/sources/. docs-builder:/hugo/content/docs/grafana/latest/
# Run the make prod command inside the container
docker exec -w /hugo docs-builder make prod || echo "Build completed with warnings"
# Clean up the container
docker rm -f docs-builder

View File

@@ -15,9 +15,6 @@ on:
issues:
types: [opened, closed]
permissions:
contents: read
jobs:
config:
runs-on: "ubuntu-latest"
@@ -38,12 +35,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v4 # v4.2.2
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
persist-credentials: false
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run metrics collector

View File

@@ -16,9 +16,7 @@ on:
required: true
type: string
secrets:
GRAFANA_DELIVERY_BOT_APP_ID:
required: true
GRAFANA_DELIVERY_BOT_APP_PEM:
token:
required: true
workflow_dispatch:
inputs:
@@ -35,25 +33,17 @@ on:
required: true
type: string
secrets:
GRAFANA_DELIVERY_BOT_APP_ID:
required: true
GRAFANA_DELIVERY_BOT_APP_PEM:
token:
required: true
jobs:
main:
runs-on: ubuntu-latest
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Migrate PRs
uses: grafana/grafana-github-actions-go/migrate-open-prs@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/migrate-open-prs@main
with:
token: ${{ steps.generate_token.outputs.token }}
token: ${{ secrets.token }}
ownerRepo: ${{ inputs.ownerRepo }}
from: ${{ inputs.from }}
to: ${{ inputs.to }}

19
.github/workflows/milestone.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: Close Milestone
on:
workflow_dispatch:
inputs:
version_input:
description: 'The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example: 7.4.3, 7.4.3-preview or 7.4.3-preview1'
required: true
jobs:
call-remove-milestone:
uses: grafana/grafana/.github/workflows/remove-milestone.yml@main
with:
version_call: ${{ github.event.inputs.version_input }}
secrets: inherit
call-close-milestone:
uses: grafana/grafana/.github/workflows/close-milestone.yml@main
with:
version_call: ${{ github.event.inputs.version_input }}
secrets: inherit
needs: call-remove-milestone

View File

@@ -1,71 +0,0 @@
name: Coverage
on:
workflow_dispatch:
push:
branches:
- main
paths-ignore:
- 'docs/**'
- '**/*.md'
permissions:
contents: read
id-token: write
env:
EDITION: 'oss'
WIRE_TAGS: 'oss'
jobs:
main:
name: Backend Unit Tests
runs-on: ubuntu-latest-8-cores
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential shared-mime-info
go install github.com/mfridman/tparse@c1754a1f484ac5cd422697b0fec635177ddc8507 # v0.17.0
- name: Generate Go code
run: make gen-go
- name: Run unit tests
run: COVER_OPTS="-coverprofile=be-unit.cov -coverpkg=github.com/grafana/grafana/..." GO_TEST_OUTPUT="/tmp/unit.log" make test-go-unit-cov
- name: Process and upload coverage
uses: ./.github/actions/test-coverage-processor
with:
test-type: 'be-unit'
# Needs to be named 'unit.cov' based on the Makefile command `make test-go-unit`
coverage-file: 'unit.cov'
codecov-token: ${{ secrets.CODECOV_TOKEN }}
codecov-flag: 'be-unit'
codecov-name: 'be-unit'
- name: Install Grafana Bench
# We can't allow forks here, as we need secret access.
if: ${{ github.event_name != 'pull_request' }}
uses: ./.github/actions/setup-grafana-bench
- name: Process output for Bench
if: ${{ github.event_name != 'pull_request' }}
run: |
grafana-bench report \
--trigger pr-backend-unit-tests-oss \
--report-input go \
--report-output log \
--grafana-version "$(git rev-parse HEAD)" \
--suite-name grafana-oss-unit-tests \
/tmp/unit.log || true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

View File

@@ -31,12 +31,11 @@ jobs:
if: github.event.pull_request.draft == false
steps:
- name: Checkout Actions
uses: actions/checkout@v4 # v4.2.2
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
persist-credentials: false
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run PR Checks

View File

@@ -0,0 +1,53 @@
name: "CodeQL for PR / go"
on:
workflow_dispatch:
pull_request:
branches: [main]
paths:
- '**/*.go'
permissions:
security-events: write
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
steps:
- name: "Generate token"
id: generate_token
continue-on-error: true
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Checkout repository
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
token: ${{ steps.generate_token.outputs.token }}
- name: Set go version
uses: actions/setup-go@v4
with:
go-version-file: go.mod
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: "go"
- name: Build go files
run: |
go mod verify
make build-go
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@@ -25,13 +25,12 @@ jobs:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
persist-credentials: false
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v2
with:
languages: "javascript"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v2

View File

@@ -23,13 +23,12 @@ jobs:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
persist-credentials: false
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v2
with:
languages: "python"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v2

View File

@@ -30,12 +30,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v4 # v4.2.2
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
persist-credentials: false
- name: Install Actions
run: npm install --production --prefix ./actions
- name: "Generate token"

View File

@@ -22,7 +22,7 @@ jobs:
steps:
- name: Retrieve GitHub App secrets
id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets-v1.0.1 # zizmor: ignore[unpinned-uses]
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets-v1.0.1
with:
repo_secrets: |
APP_ID=grafana-go-workspace-bot:app-id
@@ -42,10 +42,9 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
token: ${{ steps.generate_token.outputs.token }}
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@v4
with:
go-version-file: go.mod
@@ -66,4 +65,4 @@ jobs:
echo "Committing and pushing workspace changes"
git commit -a -m "update workspace"
git push origin $BRANCH_NAME
fi
fi

View File

@@ -1,72 +0,0 @@
name: End-to-end tests
on:
pull_request:
push:
branches:
- main
- release-*.*.*
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
build-grafana:
name: Build & Package Grafana
runs-on: ubuntu-latest-16-cores
outputs:
artifact: ${{ steps.artifact.outputs.artifact }}
steps:
- uses: actions/checkout@v4
with:
repository: 'grafana/grafana-build'
ref: 'main'
persist-credentials: false
- uses: actions/checkout@v4
with:
path: ./grafana
- run: echo "GRAFANA_GO_VERSION=$(grep "go 1." grafana/go.work | cut -d\ -f2)" >> "$GITHUB_ENV"
- uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
verb: run
args: go run ./cmd artifacts -a targz:grafana:linux/amd64 --grafana-dir=grafana --go-version=${GRAFANA_GO_VERSION} > out.txt
- run: mv $(cat out.txt) grafana.tar.gz
- run: echo "artifact=grafana-e2e-${{github.run_number}}" >> "$GITHUB_OUTPUT"
id: artifact
- uses: actions/upload-artifact@v4
id: upload
with:
retention-days: 1
name: ${{ steps.artifact.outputs.artifact }}
path: grafana.tar.gz
e2e-matrix:
name: ${{ matrix.suite }}
strategy:
matrix:
suite:
- various-suite
- dashboards-suite
- smoke-tests-suite
- panels-suite
needs:
- build-grafana
uses: ./.github/workflows/run-e2e-suite.yml
with:
package: ${{ needs.build-grafana.outputs.artifact }}
suite: ${{ matrix.suite }}
e2e-matrix-old-arch:
name: ${{ matrix.suite }} (old arch)
strategy:
matrix:
suite:
- old-arch/various-suite
- old-arch/dashboards-suite
- old-arch/smoke-tests-suite
- old-arch/panels-suite
needs:
- build-grafana
uses: ./.github/workflows/run-e2e-suite.yml
with:
package: ${{ needs.build-grafana.outputs.artifact }}
suite: ${{ matrix.suite }}

View File

@@ -1,69 +0,0 @@
name: Frontend tests
on:
pull_request:
push:
branches:
- main
- release-*.*.*
permissions: {}
jobs:
frontend-unit-tests:
permissions:
contents: read
id-token: write
# 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
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true
runs-on: ubuntu-latest-8-cores
name: "Unit tests (${{ matrix.chunk }} / 8)"
strategy:
fail-fast: false
matrix:
chunk: [1, 2, 3, 4, 5, 6, 7, 8]
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
- run: yarn run test:ci
env:
TEST_MAX_WORKERS: 2
TEST_SHARD: ${{ matrix.chunk }}
TEST_SHARD_TOTAL: 8
frontend-unit-tests-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
runs-on: ubuntu-latest-8-cores
name: "Unit tests (${{ matrix.chunk }} / 8)"
strategy:
fail-fast: false
matrix:
chunk: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- uses: actions/checkout@v4
- 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
- run: yarn run test:ci
env:
TEST_MAX_WORKERS: 2
TEST_SHARD: ${{ matrix.chunk }}
TEST_SHARD_TOTAL: 8

View File

@@ -22,13 +22,10 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@v4
with:
cache: false
go-version-file: go.mod
- name: Update workspace
@@ -44,4 +41,4 @@ jobs:
exit 1
fi
- name: Ensure Dockerfile contains submodule COPY commands
run: ./scripts/go-workspace/validate-dockerfile.sh
run: ./scripts/go-workspace/validate-dockerfile.sh

View File

@@ -9,7 +9,6 @@ on:
- "pkg/aggregator/apis/**"
- "pkg/apimachinery/apis/**"
- "hack/**"
- "apps/**"
- "*.sum"
jobs:
@@ -20,11 +19,9 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set go version
uses: actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639
uses: actions/setup-go@v4
with:
go-version-file: go.mod
@@ -38,4 +35,4 @@ jobs:
git diff
echo "Please run './hack/update-codegen.sh' and commit the changes."
exit 1
fi
fi

View File

@@ -1,63 +0,0 @@
# Owned by grafana-delivery-squad
# Intended to be dropped into the base repo Ex: grafana/grafana
name: Dispatch check for patch conflicts
run-name: dispatch-check-patch-conflicts-${{ github.base_ref }}-${{ github.head_ref }}
on:
pull_request_target:
types:
- opened
- reopened
- synchronize
branches:
- "main"
- "v*.*.*"
- "release-*"
permissions: {}
# Since this is run on a pull request, we want to apply the patches intended for the
# target branch onto the source branch, to verify compatibility before merging.
jobs:
dispatch-job:
permissions:
id-token: write
contents: read
actions: write
env:
HEAD_REF: ${{ github.head_ref }}
BASE_REF: ${{ github.base_ref }}
REPO: ${{ github.repository }}
SENDER: ${{ github.event.sender.login }}
SHA: ${{ github.sha }}
PR_COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
runs-on: ubuntu-latest
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
# App needs Actions: Read/Write for the grafana/security-patch-actions repo
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: "Dispatch job"
uses: actions/github-script@v7
with:
github-token: ${{ steps.generate_token.outputs.token }}
script: |
const {HEAD_REF, BASE_REF, REPO, SENDER, SHA, PR_COMMIT_SHA} = process.env;
await github.rest.actions.createWorkflowDispatch({
owner: 'grafana',
repo: 'security-patch-actions',
workflow_id: 'test-patches-event.yml',
ref: 'main',
inputs: {
src_repo: REPO,
src_ref: HEAD_REF,
src_merge_sha: SHA,
src_pr_commit_sha: PR_COMMIT_SHA,
patch_repo: REPO + '-security-patches',
patch_ref: BASE_REF,
triggering_github_handle: SENDER
}
})

27
.github/workflows/pr-patch-check.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
# Owned by grafana-release-guild
# Intended to be dropped into the base repo Ex: grafana/grafana
name: Check for patch conflicts
run-name: check-patch-conflicts-${{ github.base_ref }}-${{ github.head_ref }}
on:
pull_request:
types:
- opened
- reopened
- synchronize
branches:
- "main"
- "v*.*.*"
- "release-*"
# Since this is run on a pull request, we want to apply the patches intended for the
# target branch onto the source branch, to verify compatibility before merging.
jobs:
trigger_downstream_patch_check:
uses: grafana/security-patch-actions/.github/workflows/test-patches.yml@main
if: github.repository == 'grafana/grafana'
with:
src_repo: "${{ github.repository }}"
src_ref: "${{ github.head_ref }}" # this is the source branch name, Ex: "feature/newthing"
patch_repo: "${{ github.repository }}-security-patches"
patch_ref: "${{ github.base_ref }}" # this is the target branch name, Ex: "main"
secrets: inherit

View File

@@ -1,89 +0,0 @@
name: Integration Tests
on:
push:
branches:
- main
- release-*.*.*
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
sqlite:
name: Sqlite
runs-on: ubuntu-latest-8-cores
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: |
make gen-go
go test -tags=sqlite -timeout=5m -run '^TestIntegration' $(find ./pkg -type f -name '*_test.go' -exec grep -l '^func TestIntegration' '{}' '+' | grep -o '\(.*\)/' | sort -u)
mysql:
name: MySQL
runs-on: ubuntu-latest-8-cores
env:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: 127.0.0.1
services:
mysql:
image: mysql:8.0.32
env:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana_tests
MYSQL_USER: grafana
MYSQL_PASSWORD: password
options: --health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 3306:3306
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- run: |
sudo apt-get update -yq && sudo apt-get install mariadb-client
cat devenv/docker/blocks/mysql_tests/setup.sql | mariadb -h 127.0.0.1 -P 3306 -u root -prootpass --disable-ssl-verify-server-cert
make gen-go
go test -tags=mysql -p=1 -timeout=5m -run '^TestIntegration' $(find ./pkg -type f -name '*_test.go' -exec grep -l '^func TestIntegration' '{}' '+' | grep -o '\(.*\)/' | sort -u)
postgres:
name: Postgres
runs-on: ubuntu-latest-8-cores
services:
postgres:
image: postgres:12.3-alpine
env:
POSTGRES_USER: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_DB: grafanatest
ports:
- 5432:5432
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- env:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: 127.0.0.1
run: |
sudo apt-get update -yq && sudo apt-get install postgresql-client
psql -p 5432 -h 127.0.0.1 -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
make gen-go
go test -p=1 -tags=postgres -timeout=5m -run '^TestIntegration' $(find ./pkg -type f -name '*_test.go' -exec grep -l '^func TestIntegration' '{}' '+' | grep -o '\(.*\)/' | sort -u)

View File

@@ -32,10 +32,9 @@ jobs:
uses: "actions/checkout@v4"
with:
fetch-depth: 0
persist-credentials: false
- name: "Setup Go"
uses: "actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639"
uses: "actions/setup-go@v4"
with:
go-version-file: go.mod

View File

@@ -35,10 +35,9 @@ jobs:
with:
# required for the `grafana/grafana-github-actions/has-matching-release-tag` action to work
fetch-depth: 0
persist-credentials: false
- name: "Setup Go"
uses: "actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639"
uses: "actions/setup-go@v4"
with:
go-version-file: go.mod

View File

@@ -16,6 +16,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: grafana/writers-toolkit/publish-technical-documentation@publish-technical-documentation/v1 # zizmor: ignore[unpinned-uses]
- uses: grafana/writers-toolkit/publish-technical-documentation@publish-technical-documentation/v1
with:
website_directory: content/docs/grafana/next

View File

@@ -20,8 +20,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- uses: grafana/writers-toolkit/publish-technical-documentation-release@publish-technical-documentation-release/v2 # zizmor: ignore[unpinned-uses]
- uses: grafana/writers-toolkit/publish-technical-documentation-release@publish-technical-documentation-release/v2
with:
release_tag_regexp: "^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
release_branch_regexp: "^release-(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"

View File

@@ -19,7 +19,7 @@ on:
- closed
branches:
- 'main'
- 'release-*.*.*'
- 'v*.*.*'
jobs:
setup:
@@ -30,16 +30,25 @@ jobs:
release_branch: ${{ steps.output.outputs.release_branch }}
dry_run: ${{ steps.output.outputs.dry_run }}
latest: ${{ steps.output.outputs.latest }}
env:
HEAD_REF: ${{ github.head_ref }}
DRY_RUN: ${{ inputs.dry_run }}
LATEST: ${{ inputs.latest && '1' || '0' }}
VERSION: ${{ inputs.version }}
token: ${{ steps.output.outputs.token }}
runs-on: ubuntu-latest
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
# The github-release action expects a `LATEST` value of a string of either '1' or '0'
- if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
echo setting up GITHUB_ENV for ${{ github.event_name }}
echo "VERSION=${{ inputs.version }}" >> $GITHUB_ENV
echo "DRY_RUN=${{ inputs.dry_run }}" >> $GITHUB_ENV
echo "LATEST=${{ inputs.latest && '1' || '0' }}" >> $GITHUB_ENV
- if: ${{ github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/') }}
run: |
echo "VERSION=$(echo ${HEAD_REF} | sed -e 's/release\/.*\//v/g')" >> $GITHUB_ENV
echo "VERSION=$(echo ${{ github.head_ref }} | sed -e 's/release\/.*\///g')" >> $GITHUB_ENV
echo "DRY_RUN=${{ contains(github.event.pull_request.labels.*.name, 'release/dry-run') }}" >> $GITHUB_ENV
echo "LATEST=${{ contains(github.event.pull_request.labels.*.name, 'release/latest') && '1' || '0' }}" >> $GITHUB_ENV
- id: output
@@ -49,6 +58,7 @@ jobs:
echo "version: $VERSION"
echo "release_branch=$(echo $VERSION | sed -s 's/^v/release-/g')" >> "$GITHUB_OUTPUT"
echo "token=${{ steps.generate_token.outputs.token }}" >> "$GITHUB_OUTPUT"
echo "dry_run=$DRY_RUN" >> "$GITHUB_OUTPUT"
echo "latest=$LATEST" >> "$GITHUB_OUTPUT"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
@@ -56,46 +66,42 @@ jobs:
name: Create next release branch (Grafana)
needs: setup
uses: ./.github/workflows/create-next-release-branch.yml
secrets:
GRAFANA_DELIVERY_BOT_APP_ID: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
GRAFANA_DELIVERY_BOT_APP_PEM: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
with:
ownerRepo: 'grafana/grafana'
source: ${{ needs.setup.outputs.release_branch }}
secrets:
token: ${{ needs.setup.outputs.token }}
create_next_release_branch_enterprise:
name: Create next release branch (Grafana Enterprise)
needs: setup
uses: ./.github/workflows/create-next-release-branch.yml
secrets:
GRAFANA_DELIVERY_BOT_APP_ID: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
GRAFANA_DELIVERY_BOT_APP_PEM: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
with:
ownerRepo: 'grafana/grafana-enterprise'
ownerRepo: 'grafana/grafana'
source: ${{ needs.setup.outputs.release_branch }}
secrets:
token: ${{ needs.setup.outputs.token }}
migrate_prs_grafana:
needs:
- setup
- create_next_release_branch_grafana
uses: ./.github/workflows/migrate-prs.yml
secrets:
GRAFANA_DELIVERY_BOT_APP_ID: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
GRAFANA_DELIVERY_BOT_APP_PEM: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
with:
ownerRepo: 'grafana/grafana'
from: ${{ needs.setup.outputs.release_branch }}
to: ${{ needs.create_next_release_branch_grafana.outputs.branch }}
secrets:
token: ${{ needs.setup.outputs.token }}
migrate_prs_enterprise:
needs:
- setup
- create_next_release_branch_enterprise
uses: ./.github/workflows/migrate-prs.yml
secrets:
GRAFANA_DELIVERY_BOT_APP_ID: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
GRAFANA_DELIVERY_BOT_APP_PEM: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
with:
ownerRepo: 'grafana/grafana-enterprise'
from: ${{ needs.setup.outputs.release_branch }}
to: ${{ needs.create_next_release_branch_enterprise.outputs.branch }}
secrets:
token: ${{ needs.setup.outputs.token }}
post_changelog_on_forum:
needs: setup
uses: ./.github/workflows/community-release.yml
@@ -118,10 +124,7 @@ jobs:
post_on_slack:
needs: setup
runs-on: ubuntu-latest
env:
DRY_RUN: ${{ needs.setup.outputs.dry_run }}
VERSION: ${{ needs.setup.outputs.version }}
steps:
- run: |
echo announce on slack that $VERSION has been released
echo dry run: $DRY_RUN
echo announce on slack that ${{ needs.setup.outputs.version }} has been released
echo dry run: ${{ needs.setup.outputs.dry_run }}

View File

@@ -33,13 +33,12 @@ on:
default: false
type: boolean
permissions: {}
permissions:
contents: write
pull-requests: write
jobs:
push-changelog-to-main:
permissions:
contents: write
pull-requests: write
name: Create PR to main to update the changelog
uses: ./.github/workflows/changelog.yml
with:
@@ -51,33 +50,30 @@ jobs:
secrets:
GRAFANA_DELIVERY_BOT_APP_ID: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
GRAFANA_DELIVERY_BOT_APP_PEM: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
create-prs:
permissions:
contents: write
pull-requests: write
name: Create Release PR
runs-on: ubuntu-latest
if: github.repository == 'grafana/grafana'
env:
VERSION: ${{ inputs.version }}
LATEST: ${{ inputs.latest }}
DRY_RUN: ${{ inputs.dry_run }}
steps:
- name: Generate bot token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Get release branch
id: branch
uses: grafana/grafana-github-actions-go/latest-release-branch@main # zizmor: ignore[unpinned-uses]
uses: grafana/grafana-github-actions-go/latest-release-branch@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ steps.generate_token.outputs.token }}
ownerRepo: 'grafana/grafana'
pattern: ${{ inputs.target }}
- name: Checkout Grafana
uses: actions/checkout@v4
with:
ref: ${{ steps.branch.outputs.branch }}
fetch-depth: 0
fetch-tags: true
token: ${{ secrets.GITHUB_TOKEN }}
persist-credentials: false
- name: Checkout Grafana (main)
uses: actions/checkout@v4
with:
@@ -85,8 +81,6 @@ jobs:
fetch-depth: '0'
fetch-tags: 'false'
path: .grafana-main
token: ${{ secrets.GITHUB_TOKEN }}
persist-credentials: false
- name: Setup nodejs environment
uses: actions/setup-node@v4
with:
@@ -98,43 +92,37 @@ jobs:
git config --local --add --bool push.autoSetupRemote true
- name: Create branch
run: git checkout -b "release/${{ github.run_id }}/$VERSION"
- name: Generate changelog token
id: generate_changelog_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
run: git checkout -b "release/${{ github.run_id }}/${{ inputs.version }}"
- name: Generate changelog
id: changelog
uses: ./.grafana-main/.github/actions/changelog
uses: ./.grafana-main/.github/workflows/actions/changelog
with:
github_token: ${{ steps.generate_changelog_token.outputs.token }}
target: v${{ env.VERSION }}
github_token: ${{ steps.generate_token.outputs.token }}
target: v${{ inputs.version }}
output_file: changelog_items.md
- name: Patch CHANGELOG.md
run: |
# Prepare CHANGELOG.md content with version delimiters
(
echo
echo "# $VERSION ($(date '+%F'))"
echo "# ${{ inputs.version}} ($(date '+%F'))"
echo
cat changelog_items.md
) > CHANGELOG.part
# Check if a version exists in the changelog
if grep -q "<!-- $VERSION START" CHANGELOG.md ; then
if grep -q "<!-- ${{ inputs.version}} START" CHANGELOG.md ; then
# Replace the content between START and END delimiters
echo "Version $VERSION is found in the CHANGELOG.md, patching contents..."
sed -i -e "/$VERSION START/,/$VERSION END/{//!d;}" \
-e "/$VERSION START/r CHANGELOG.part" CHANGELOG.md
echo "Version ${{ inputs.version }} is found in the CHANGELOG.md, patching contents..."
sed -i -e '/${{ inputs.version }} START/,/${{ inputs.version }} END/{//!d;}' \
-e '/${{ inputs.version }} START/r CHANGELOG.part' CHANGELOG.md
else
# Prepend changelog part to the main changelog file
echo "Version $VERSION not found in the CHANGELOG.md"
echo "Version ${{ inputs.version }} not found in the CHANGELOG.md"
(
echo "<!-- $VERSION START -->"
echo "<!-- ${{ inputs.version }} START -->"
cat CHANGELOG.part
echo "<!-- $VERSION END -->"
echo "<!-- ${{ inputs.version }} END -->"
cat CHANGELOG.md
) > CHANGELOG.tmp
mv CHANGELOG.tmp CHANGELOG.md
@@ -155,47 +143,36 @@ jobs:
- name: Add package.json changes
run: |
git add package.json lerna.json yarn.lock packages public
test -e e2e/test-plugins && git add e2e/test-plugins
git commit -m "Update version to $VERSION"
git add package.json lerna.json yarn.lock packages public e2e/test-plugins
git commit -m "Update version to ${{ inputs.version }}"
- name: Git push
if: ${{ inputs.dry_run }} != true
run: git push --set-upstream origin "release/${{ github.run_id }}/$VERSION"
run: git push --set-upstream origin release/${{ github.run_id }}/${{ inputs.version }}
- name: Create PR without backports
if: "${{ inputs.backport == '' }}"
run: >
gh pr create \
$( [ "x${{ inputs.latest }}" == "xtrue" ] && printf %s '-l "release/latest"') \
-l "no-changelog" \
--dry-run=${{ inputs.dry_run }} \
-B "${{ steps.branch.outputs.branch }}" \
--title "Release: ${{ inputs.version }}" \
--body "These code changes must be merged after a release is complete"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: ${{ steps.branch.outputs.branch }}
run: |
LATEST_FLAG=""
if [ "$LATEST" = "true" ]; then
LATEST_FLAG='-l "release/latest"'
fi
gh pr create \
$LATEST_FLAG \
-l "no-changelog" \
--dry-run="$DRY_RUN" \
-B "$BRANCH" \
--title "Release: $VERSION" \
--body "These code changes must be merged after a release is complete"
- name: Create PR with backports
if: "${{ inputs.backport != '' }}"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: ${{ steps.branch.outputs.branch }}
run: |
LATEST_FLAG=""
if [ "$LATEST" = "true" ]; then
LATEST_FLAG='-l "release/latest"'
fi
run: >
gh pr create \
$LATEST_FLAG \
$( [ "x${{ inputs.latest }}" == "xtrue" ] && printf %s '-l "release/latest"') \
-l "product-approved" \
-l "no-changelog" \
--dry-run="$DRY_RUN" \
-B "$BRANCH" \
--title "Release: $VERSION" \
--dry-run=${{ inputs.dry_run }} \
-B "${{ steps.branch.outputs.branch }}" \
--title "Release: ${{ inputs.version }}" \
--body "These code changes must be merged after a release is complete"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

60
.github/workflows/remove-milestone.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: Remove milestone
on:
workflow_dispatch:
inputs:
version:
required: true
description: Needs to match, exactly, the name of a milestone
workflow_call:
inputs:
version_call:
description: Needs to match, exactly, the name of a milestone
required: true
type: string
jobs:
config:
runs-on: "ubuntu-latest"
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.GRAFANA_DELIVERY_BOT_APP_ID != '' && secrets.GRAFANA_DELIVERY_BOT_APP_PEM != '') || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
main:
needs: config
if: needs.config.outputs.has-secrets
permissions:
issues: write
runs-on: ubuntu-latest
steps:
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: "grafana/grafana-github-actions"
path: ./actions
ref: main
- name: Install Actions
run: npm install --production --prefix ./actions
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Remove milestone from open issues (manually invoked)
if: ${{ github.event.inputs.version != '' }}
uses: ./actions/remove-milestone
with:
token: ${{ steps.generate_token.outputs.token }}
- name: Remove milestone from open issues (workflow invoked)
if: ${{ inputs.version_call != '' }}
uses: ./actions/remove-milestone
with:
version_call: ${{ inputs.version_call }}
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -1,130 +0,0 @@
name: run-dashboard-search-e2e
on:
workflow_run:
workflows:
- trigger-dashboard-search-e2e
types:
- completed
workflow_dispatch:
env:
ARCH: linux-amd64
permissions: {}
jobs:
setup:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
outputs:
ini_files: ${{ steps.get_files.outputs.ini_files }}
permissions:
contents: read
id-token: write
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'
cache: true
- run: go version
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- name: Cache Node Modules
id: cache-node-modules
uses: actions/cache@v3
with:
path: |
node_modules
/home/runner/.cache/Cypress
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: yarn install --immutable
- name: Install Cypress dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f
with:
runTests: false
- name: Cache Grafana Build and Dependencies
id: cache-grafana
uses: actions/cache@v3
with:
path: |
bin/
scripts/grafana-server/
tools/
public/
conf/
e2e/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 )
- name: Build Grafana (Runs Only If Not Cached)
if: steps.cache-grafana.outputs.cache-hit != 'true'
run: make build
- name: Get list of .ini files
id: get_files
run: |
INI_FILES=$(ls ${{ github.workspace }}/e2e/dashboards-search-suite/*.ini | jq -R -s -c 'split("\n")[:-1]')
echo "ini_files=$INI_FILES" >> $GITHUB_OUTPUT
shell: bash
run_tests:
needs: setup
runs-on: ubuntu-latest
continue-on-error: true
if: github.event.pull_request.draft == false
strategy:
matrix:
ini_file: ${{ fromJson(needs.setup.outputs.ini_files) }}
permissions:
contents: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Restore Cached Node Modules
uses: actions/cache@v3
with:
path: |
node_modules
/home/runner/.cache/Cypress
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
- name: Restore Cached Grafana Build and Dependencies
uses: actions/cache@v3
with:
path: |
bin/
scripts/grafana-server/
tools/
public/
conf/
e2e/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
id: set_file_name
env:
INI_NAME: ${{ matrix.ini_file }}
run: |
FILE_NAME=$(basename "$env.INI_NAME" .ini)
echo "FILE_NAME=$FILE_NAME" >> $GITHUB_OUTPUT
- name: Run tests for ${{ steps.set_file_name.outputs.FILE_NAME }}
env:
INI_NAME: ${{ matrix.ini_file }}
run: |
cp -rf $INI_NAME ${{ github.workspace }}/scripts/grafana-server/custom.ini
yarn e2e:dashboards-search || echo "Test failed but marking as success since unified search is behind a feature flag and should not block PRs"

View File

@@ -1,39 +0,0 @@
name: e2e suite
on:
workflow_call:
inputs:
package:
type: string
required: true
suite:
type: string
required: true
jobs:
main:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/download-artifact@v4
with:
name: ${{ inputs.package }}
- uses: dagger/dagger-for-github@e47aba410ef9bb9ed81a4d2a97df31061e5e842e
with:
verb: run
args: go run ./pkg/build/e2e --package=grafana.tar.gz --suite=${{ inputs.suite }}
- name: Set suite name
id: set-suite-name
if: always()
env:
SUITE: ${{ inputs.suite }}
run: |
echo "suite=$(echo $SUITE | sed 's/\//-/g')" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
if: always()
with:
name: e2e-${{ steps.set-suite-name.outputs.suite }}-${{github.run_number}}
path: videos
retention-days: 1

View File

@@ -19,8 +19,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Pin Go version to mod file
uses: actions/setup-go@v5
with:
@@ -35,7 +33,7 @@ jobs:
- name: Build grafana
run: make build
- name: Install Cypress dependencies
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f
uses: cypress-io/github-action@v6
with:
runTests: false
- name: Run dashboard scenes e2e
@@ -43,4 +41,4 @@ jobs:
- name: Always succeed # This is a workaround to make the job pass even if the previous step fails
if: failure()
run: exit 0
run: exit 0

View File

@@ -1,84 +0,0 @@
const crowdin = require('@crowdin/crowdin-api-client');
const TRANSLATED_CONNECTOR_DESCRIPTION = '{{tos_service_type: premium}}';
const API_TOKEN = process.env.CROWDIN_PERSONAL_TOKEN;
if (!API_TOKEN) {
console.error('Error: CROWDIN_PERSONAL_TOKEN environment variable is not set');
process.exit(1);
}
const PROJECT_ID = process.env.CROWDIN_PROJECT_ID;
if (!PROJECT_ID) {
console.error('Error: CROWDIN_PROJECT_ID environment variable is not set');
process.exit(1);
}
const { tasksApi, projectsGroupsApi, sourceFilesApi } = new crowdin.default({
token: API_TOKEN,
organization: 'grafana'
});
const languages = await getLanguages();
const fileIds = await getFileIds();
console.log('Languages: ', languages);
console.log('File IDs: ', fileIds);
// for (const language of languages) {
// const { name, id } = language;
// await createTask(`Translate to ${name}`, id, fileIds);
// }
async function getLanguages() {
try {
const project = await projectsGroupsApi.getProject(PROJECT_ID);
const languages = project.data.targetLanguages;
return languages;
} catch (error) {
console.error('Failed to fetch languages: ', error.message);
if (error.response && error.response.data) {
console.error('Error details: ', JSON.stringify(error.response.data, null, 2));
}
process.exit(1);
}
}
async function getFileIds() {
try {
const response = await sourceFilesApi.listProjectFiles(PROJECT_ID);
const files = response.data;
const fileIds = files.map(file => file.data.id);
return fileIds;
} catch (error) {
console.error('Failed to fetch file IDs: ', error.message);
if (error.response && error.response.data) {
console.error('Error details: ', JSON.stringify(error.response.data, null, 2));
}
process.exit(1);
}
}
async function createTask(title, languageId, fileIds) {
try {
const taskParams = {
title,
description: TRANSLATED_CONNECTOR_DESCRIPTION,
languageId,
type: 2, // Translation by vendor
workflowStepId: 78, // Translation step ID
skipAssignedStrings: true,
fileIds,
};
console.log(`Creating Crowdin task: "${title}" for language ${languageId}`);
const response = await tasksApi.addTask(PROJECT_ID, taskParams);
console.log(`Task created successfully! Task ID: ${response.data.id}`);
return response.data;
} catch (error) {
console.error('Failed to create Crowdin task: ', error.message);
if (error.response && error.response.data) {
console.error('Error details: ', JSON.stringify(error.response.data, null, 2));
}
process.exit(1);
}
}

View File

@@ -1,106 +0,0 @@
name: Add issues and PRs to Skye project board
on:
workflow_dispatch:
inputs:
manual_issue_number:
description: 'Issue/PR number to add to project'
required: false
type: number
issues:
types: [opened]
pull_request:
types: [opened]
permissions:
contents: read
id-token: write
env:
ORGANIZATION: grafana
REPO: grafana
PROJECT_ID: "PVT_kwDOAG3Mbc4AxfcI" # Retrieved manually from GitHub GraphQL Explorer
concurrency:
group: skye-add-to-project-${{ github.event.number }}
jobs:
main:
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]
with:
# Vault secret paths:
# - ci/repo/grafana/grafana/grafana_pr_automation_app
# - ci/repo/grafana/grafana/frontend_platform_skye_usernames (comma separated list of usernames)
repo_secrets: |
GH_APP_ID=grafana_pr_automation_app:app_id
GH_APP_PEM=grafana_pr_automation_app:app_pem
ALLOWED_USERS=frontend_platform_skye_usernames:allowed_users
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ env.GH_APP_ID }}
private_key: ${{ env.GH_APP_PEM }}
# Check if the user is in the list from the secret
- name: Check if user is allowed
id: check_user
env:
ALLOWED_USERS: ${{ env.ALLOWED_USERS }}
USERNAME: ${{ github.event.sender.login }}
run: |
# Convert the comma-separated list to an array
IFS=',' read -ra ALLOWED_USERS <<< "$ALLOWED_USERS"
# Check if user is in the allowed list
for allowed_user in "${ALLOWED_USERS[@]}"; do
if [ "$allowed_user" = "$USERNAME" ]; then
echo "user_allowed=true" >> $GITHUB_OUTPUT
exit 0
fi
done
echo "user_allowed=false" >> $GITHUB_OUTPUT
# Convert the issue/PR number to a node ID for the GraphQL API
- name: Get node ID for item
if: steps.check_user.outputs.user_allowed == 'true'
id: get_node_id
uses: octokit/graphql-action@51bf543c240dcd14761320e2efc625dc32ec0d32
with:
query: |
query getNodeId($owner: String!, $repo: String!, $number: Int!) {
repository(owner: $owner, name: $repo) {
issueOrPullRequest(number: $number) {
... on Issue { id }
... on PullRequest { id }
}
}
}
variables: |
owner: ${{ env.ORGANIZATION }}
repo: ${{ env.REPO }}
number: ${{ github.event.number || github.event.inputs.manual_issue_number }}
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
# Finally, add the issue/PR to the project board
- name: Add to project board
if: steps.check_user.outputs.user_allowed == 'true'
uses: octokit/graphql-action@51bf543c240dcd14761320e2efc625dc32ec0d32
with:
query: |
mutation addItem($projectid: ID!, $itemid: ID!) {
addProjectV2ItemById(input: {projectId: $projectid, contentId: $itemid}) {
item { id }
}
}
variables: |
projectid: ${{ env.PROJECT_ID }}
itemid: ${{ fromJSON(steps.get_node_id.outputs.data).repository.issueOrPullRequest.id }}
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}

View File

@@ -1,48 +0,0 @@
name: Verify Storybook
on:
pull_request:
paths:
- 'packages/grafana-ui/**'
- '!docs/**'
- '!*.md'
push:
branches:
- main
paths:
- 'packages/grafana-ui/**'
- '!docs/**'
- '!*.md'
jobs:
verify-storybook:
name: Verify Storybook
runs-on: ubuntu-latest
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: 'package.json'
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

@@ -1,63 +0,0 @@
# Owned by grafana-delivery-squad
# Intended to be dropped into the base repo, Ex: grafana/grafana
name: Dispatch sync to mirror
run-name: dispatch-sync-to-mirror-${{ github.ref_name }}
on:
workflow_dispatch:
push:
branches:
- "main"
- "v*.*.*"
- "release-*"
permissions: {}
# This is run after the pull request has been merged, so we'll run against the target branch
jobs:
dispatch-job:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
actions: write
env:
REF_NAME: ${{ github.ref_name }}
REPO: ${{ github.repository }}
SHA: ${{ github.sha }}
steps:
- name: "Get vault secrets"
id: vault-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
# Secrets placed in the ci/data/repo/grafana/grafana/delivery-bot-app path in Vault
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 needs Actions: Read/Write for the grafana/security-patch-actions repo
app_id: ${{ vars.DELIVERY_BOT_APP_ID }}
private_key: ${{ env.GRAFANA_DELIVERY_BOT_APP_PEM }}
- uses: actions/github-script@v7
if: github.repository == 'grafana/grafana'
with:
github-token: ${{ steps.generate_token.outputs.token }}
script: |
const {REF_NAME, REPO, SHA} = process.env;
await github.rest.actions.createWorkflowDispatch({
owner: 'grafana',
repo: 'security-patch-actions',
workflow_id: 'mirror-branch-and-apply-patches-event.yml',
ref: 'main',
inputs: {
src_ref: REF_NAME,
src_repo: REPO,
src_sha: SHA,
dest_repo: REPO + "-security-mirror",
patch_repo: REPO + "-security-patches"
}
})

25
.github/workflows/sync-mirror.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
# Owned by grafana-release-guild
# Intended to be dropped into the base repo, Ex: grafana/grafana
name: Sync to mirror
run-name: sync-to-mirror-${{ github.ref_name }}
on:
workflow_dispatch:
push:
branches:
- "main"
- "v*.*.*"
- "release-*"
# This is run after the pull request has been merged, so we'll run against the target branch
jobs:
trigger_downstream_patch_mirror:
concurrency: patch-mirror-${{ github.ref_name }}
uses: grafana/security-patch-actions/.github/workflows/mirror-branch-and-apply-patches.yml@main
if: github.repository == 'grafana/grafana'
with:
ref: "${{ github.ref_name }}" # this is the target branch name, Ex: "main"
src_repo: "${{ github.repository }}"
dest_repo: "${{ github.repository }}-security-mirror"
patch_repo: "${{ github.repository }}-security-patches"
secrets: inherit

View File

@@ -1,28 +0,0 @@
name: trigger-dashboard-search-e2e
# triggers the dashboard search e2e tests which runs async
# doesn't block prs, allows setting up notifications from grafana
on:
push:
branches:
- main
paths:
- public/app/features/search/**/*.ts
- public/app/features/search/**/*.tsx
- pkg/storage/**/*.go
pull_request:
branches:
- main
paths:
- public/app/features/search/**/*.ts
- public/app/features/search/**/*.tsx
- pkg/storage/**/*.go
env:
ARCH: linux-amd64
jobs:
trigger-search-e2e:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- name: Trigger Dashboard Search E2E
run: echo "Triggered Dashboard Search e2e..."

View File

@@ -17,10 +17,8 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Install Trivy
uses: aquasecurity/setup-trivy@9ea583eb67910444b1f64abf338bd2e105a0a93d
uses: aquasecurity/setup-trivy@v0.2.2
with:
version: v0.56.2
cache: true

52
.github/workflows/update-changelog.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: Update changelog
on:
workflow_dispatch:
inputs:
version:
required: true
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example: 7.4.3, 7.4.3-preview or 7.4.3-preview1'
skip_pr:
required: false
default: "0"
skip_community_post:
required: false
default: "0"
jobs:
config:
runs-on: "ubuntu-latest"
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.GRAFANA_DELIVERY_BOT_APP_ID != '' &&
secrets.GRAFANA_DELIVERY_BOT_APP_PEM != '' &&
secrets.GRAFANA_MISC_STATS_API_KEY != '' &&
secrets.GRAFANABOT_FORUM_KEY != ''
) || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
main:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-latest
steps:
- name: "Generate token"
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_ID }}
private_key: ${{ secrets.GRAFANA_DELIVERY_BOT_APP_PEM }}
- name: Run update changelog (manually invoked)
uses: grafana/grafana-github-actions-go/update-changelog@main
with:
token: ${{ steps.generate_token.outputs.token }}
version: ${{ inputs.version }}
metrics_api_key: ${{ secrets.GRAFANA_MISC_STATS_API_KEY }}
community_api_key: ${{ secrets.GRAFANABOT_FORUM_KEY }}
community_api_username: grafanabot
skip_pr: ${{ inputs.skip_pr }}
skip_community_post: ${{ inputs.skip_community_post }}

View File

@@ -9,9 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: grafana/writers-toolkit/update-make-docs@update-make-docs/v1 # zizmor: ignore[unpinned-uses]
- uses: grafana/writers-toolkit/update-make-docs@update-make-docs/v1
with:
pr_options: >
--label 'backport v10.1.x'

View File

@@ -14,10 +14,9 @@ jobs:
uses: "actions/checkout@v4"
with:
fetch-depth: 0
persist-credentials: false
- name: "Setup Go"
uses: "actions/setup-go@19bb51245e9c80abacb2e91cc42b33fa478b8639"
uses: "actions/setup-go@v4"
with:
go-version-file: go.mod

31
.github/zizmor.yml vendored
View File

@@ -1,31 +0,0 @@
rules:
unpinned-uses:
config:
policies:
"*": hash-pin
actions/*: any
github/*: any
grafana/*: any
forbidden-uses:
config:
deny:
# Policy-banned by our security team due to CVE-2025-30066 & CVE-2025-30154.
# https://www.cisa.gov/news-events/alerts/2025/03/18/supply-chain-compromise-third-party-tj-actionschanged-files-cve-2025-30066-and-reviewdogaction
# https://nvd.nist.gov/vuln/detail/cve-2025-30066
# https://nvd.nist.gov/vuln/detail/cve-2025-30154
- reviewdog/*
cache-poisoning:
ignore:
- backend-unit-tests.yml
- frontend-lint.yml
- pr-frontend-unit-tests.yml
- pr-test-integration.yml
- publish-kinds-release.yml
dangerous-triggers:
ignore:
- auto-milestone.yml
- backport.yml
- pr-checks.yml
- pr-commands.yml
- pr-patch-check-event.yml
- run-dashboard-search-e2e.yml

17
.gitignore vendored
View File

@@ -40,6 +40,7 @@ __debug_bin*
# This is the new place of the block, but I leave the previous here for a while
/devenv/docker/blocks/auth/saml-enterprise
/devenv/docker/blocks/auth/signer
/devenv/docker/blocks/spanner_tests
/tmp
tools/phantomjs/phantomjs
@@ -103,14 +104,18 @@ profile.cov
/pkg/cmd/grafana-cli/grafana-cli
/pkg/cmd/grafana-server/grafana-server
/pkg/cmd/grafana-server/debug
/pkg/extensions/*
/pkg/build/cmd/artifactspage.go
/pkg/build/cmd/artifactspage.tmpl.html
/pkg/build/cmd/exportversion.go
/pkg/server/wireexts_enterprise.go
# Extensions
/pkg/cmd/grafana-cli/runner/wireexts_enterprise.go
/pkg/server/wireexts_enterprise.go
/pkg/build/cmd/enterprise.go
/pkg/extensions/*
!/pkg/extensions/.keep
!/pkg/extensions/main.go
/public/app/extensions
!/public/app/extensions/.keep
debug.test
/examples/*/dist
/packaging/**/*.rpm
@@ -170,13 +175,13 @@ compilation-stats.json
/e2e/benchmarks/**/results
/e2e/build_results.zip
/e2e/extensions
!/e2e/extensions/.keep
/e2e/extensions-suite
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
/playwright/.auth/
# grafana server
/scripts/grafana-server/server.log

View File

@@ -191,10 +191,10 @@ linters-settings:
allow: []
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apps/investigation is not allowed to import grafana core
desc: apps/investigations is not allowed to import grafana core
files:
- ./apps/investigation/*
- ./apps/investigation/**/*
- ./apps/investigations/*
- ./apps/investigations/**/*
gocritic:
enabled-checks:
- ruleguard

22
.ignore Normal file
View File

@@ -0,0 +1,22 @@
# This is a trick to ignore files only by git but not by other tools
!/public/app/extensions
!/pkg/extensions/*
!/pkg/cmd/grafana-cli/runner/wireexts_enterprise.go
!/pkg/server/wireexts_enterprise.go
!/pkg/build/cmd/enterprise.go
!/pkg/extensions/*
# Enterprise emails
!/emails/templates/enterprise_*
!/public/emails/enterprise_*
# Enterprise reporting fonts
!/public/fonts/dejavu
# Enterprise devenv
!/devenv/docker/blocks/grafana-enterprise
!/devenv/docker/blocks/saml-enterprise
# This is the new place of the block, but I leave the previous here for a while
!/devenv/docker/blocks/auth/saml-enterprise
!/devenv/docker/blocks/auth/signer
!/devenv/docker/blocks/spanner_tests

5
.vale.ini Normal file
View File

@@ -0,0 +1,5 @@
MinAlertLevel = warning
[*]
BasedOnStyles = Grafana
TokenIgnores = (<http[^\n]+>+?), \*\*[^\n]+\*\*

28
.vscode/launch.json vendored
View File

@@ -9,12 +9,7 @@
"program": "${workspaceFolder}/pkg/cmd/grafana/",
"env": {},
"cwd": "${workspaceFolder}",
"args": [
"server",
"--homepath", "${workspaceFolder}",
"--packaging", "dev",
"cfg:app_mode=development",
]
"args": ["server", "--homepath", "${workspaceFolder}", "--packaging", "dev", "cfg:app_mode=development"]
},
{
"name": "Attach to Test Process",
@@ -23,7 +18,7 @@
"mode": "remote",
"host": "127.0.0.1",
"port": 50480,
"apiVersion": 2,
"apiVersion": 2
},
{
"name": "Run API Server (testdata)",
@@ -72,6 +67,16 @@
"cwd": "${workspaceFolder}",
"args": ["server", "target", "--homepath", "${workspaceFolder}", "--packaging", "dev"]
},
{
"name": "Run Authz server",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/pkg/cmd/grafana/",
"env": { "GF_DEFAULT_TARGET": "zanzana-server", "GF_SERVER_HTTP_PORT": "3001" },
"cwd": "${workspaceFolder}",
"args": ["server", "target", "--homepath", "${workspaceFolder}", "--packaging", "dev"]
},
{
"name": "Attach to Chrome",
"port": 9222,
@@ -91,6 +96,15 @@
"NODE_ENV": "test"
}
},
{
"name": "Debug ESLint",
"type": "node",
"request": "launch",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "eslint", "${file}"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "Debug Go test",
"type": "go",

View File

@@ -13,10 +13,6 @@ packageExtensions:
doctrine@3.0.0:
dependencies:
assert: 2.0.0
rc-time-picker@3.7.3:
peerDependencies:
react: 17.0.1
react-dom: 17.0.1
rc-trigger@2.6.5:
peerDependencies:
react: 17.0.1

View File

@@ -1,90 +1,3 @@
<!-- 11.5.5 START -->
# 11.5.5 (2025-05-22)
### Features and enhancements
- **Chore:** Bump Go version to 1.24.3 [#105109](https://github.com/grafana/grafana/pull/105109), [@macabu](https://github.com/macabu)
- **Dependencies:** Bump github.com/blevesearch/bleve/v2 from v2.4.3 to v2.5.0 [#105441](https://github.com/grafana/grafana/pull/105441), [@macabu](https://github.com/macabu)
- **Dependencies:** Bump github.com/openfga/openfga from v1.8.5 to v1.8.12 [#105373](https://github.com/grafana/grafana/pull/105373), [@macabu](https://github.com/macabu)
- **Dependencies:** Unpin and bump github.com/getkin/kin-openapi from v0.126.0 to v0.132.0 [#105252](https://github.com/grafana/grafana/pull/105252), [@macabu](https://github.com/macabu)
### Bug fixes
- **Security:** Fix CVE-2025-3454
- **Security:** Fix CVE-2025-2703
<!-- 11.5.5 END -->
<!-- 11.5.4 START -->
# 11.5.4 (2025-04-23)
### Features and enhancements
- **Azure Monitor:** Filter namespaces by resource group [#103654](https://github.com/grafana/grafana/pull/103654), [@alyssabull](https://github.com/alyssabull)
- **Azure:** Add support for custom namespace and custom metrics variable queries [#103650](https://github.com/grafana/grafana/pull/103650), [@aangelisc](https://github.com/aangelisc)
- **Azure:** Resource picker improvements [#103638](https://github.com/grafana/grafana/pull/103638), [@aangelisc](https://github.com/aangelisc)
- **Azure:** Support more complex variable interpolation [#103651](https://github.com/grafana/grafana/pull/103651), [@aangelisc](https://github.com/aangelisc)
- **Azure:** Variable editor and resource picker improvements [#103657](https://github.com/grafana/grafana/pull/103657), [@aangelisc](https://github.com/aangelisc)
- **Chore:** Update CVE-affected dependencies [#102709](https://github.com/grafana/grafana/pull/102709), [@grambbledook](https://github.com/grambbledook)
- **DashboardScenePage:** Correct slug in self referencing data links [#103853](https://github.com/grafana/grafana/pull/103853), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **Dependencies:** Bump github.com/redis/go-redis/v9 to 9.6.3 to address CVE-2025-29923 [#102865](https://github.com/grafana/grafana/pull/102865), [@macabu](https://github.com/macabu)
- **Go:** Bump to 1.24.2 [#103525](https://github.com/grafana/grafana/pull/103525), [@Proximyst](https://github.com/Proximyst)
- **Go:** Bump to 1.24.2 (Enterprise)
- **Prometheus:** Add support for cloud partners Prometheus data sources [#103942](https://github.com/grafana/grafana/pull/103942), [@kevinwcyu](https://github.com/kevinwcyu)
### Bug fixes
- **InfluxDB:** Fix nested variable interpolation [#104095](https://github.com/grafana/grafana/pull/104095), [@aangelisc](https://github.com/aangelisc)
- **LDAP test:** Fix page crash [#102683](https://github.com/grafana/grafana/pull/102683), [@ashharrison90](https://github.com/ashharrison90)
- **Security:** Fix CVE-2025-3454
- **Security:** Fix CVE-2025-2703
<!-- 11.5.4 END -->
<!-- 11.5.3 START -->
# 11.5.3 (2025-03-25)
### Features and enhancements
- **Chore:** Bump Go to 1.23.7 [#101581](https://github.com/grafana/grafana/pull/101581), [@macabu](https://github.com/macabu)
- **Chore:** Bump Go to 1.23.7 (Enterprise)
### Bug fixes
- **Alerting:** Fix token-based Slack image upload to work with channel names [#101078](https://github.com/grafana/grafana/pull/101078), [@JacobsonMT](https://github.com/JacobsonMT)
- **Auth:** Fix AzureAD config UI's ClientAuthentication dropdown [#100869](https://github.com/grafana/grafana/pull/100869), [@mgyongyosi](https://github.com/mgyongyosi)
- **Dashboard:** Fix the unintentional time range and variables updates on saving [#101671](https://github.com/grafana/grafana/pull/101671), [@harisrozajac](https://github.com/harisrozajac)
- **Dashboards:** Fix missing `v/e/i` keybindings to return back to dashboard [#102365](https://github.com/grafana/grafana/pull/102365), [@mdvictor](https://github.com/mdvictor)
- **InfluxDB:** Improve handling of template variables contained in regular expressions (InfluxQL) [#100977](https://github.com/grafana/grafana/pull/100977), [@aangelisc](https://github.com/aangelisc)
- **Org redirection:** Fix linking between orgs [#102089](https://github.com/grafana/grafana/pull/102089), [@ashharrison90](https://github.com/ashharrison90)
<!-- 11.5.3 END -->
<!-- 11.5.2 START -->
# 11.5.2 (2025-02-18)
### Features and enhancements
- **Docker:** Use our own glibc 2.40 binaries [#99918](https://github.com/grafana/grafana/pull/99918), [@DanCech](https://github.com/DanCech)
- **TransformationFilter:** Include transformation outputs in transformation filtering options [#99878](https://github.com/grafana/grafana/pull/99878), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **grafana-ui:** Update InlineField error prop type to React.ReactNode [#100373](https://github.com/grafana/grafana/pull/100373), [@Clarity-89](https://github.com/Clarity-89)
### Bug fixes
- **Alerting:** Allow specifying uid for new rules added to groups [#100450](https://github.com/grafana/grafana/pull/100450), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Allow specifying uid for new rules added to groups [#100450](https://github.com/grafana/grafana/pull/100450), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Call RLock() before reading sendAlertsTo map [#99880](https://github.com/grafana/grafana/pull/99880), [@santihernandezc](https://github.com/santihernandezc)
- **Auth:** Fix redirect with JWT auth URL login [#100355](https://github.com/grafana/grafana/pull/100355), [@mgyongyosi](https://github.com/mgyongyosi)
- **AuthN:** Refetch user on "ErrUserAlreadyExists" [#100582](https://github.com/grafana/grafana/pull/100582), [@kalleep](https://github.com/kalleep)
- **Azure:** Correctly set application insights resource values [#99599](https://github.com/grafana/grafana/pull/99599), [@aangelisc](https://github.com/aangelisc)
- **CodeEditor:** Fix cursor alignment [#99863](https://github.com/grafana/grafana/pull/99863), [@ashharrison90](https://github.com/ashharrison90)
- **DashboardList:** Throttle the re-renders [#100046](https://github.com/grafana/grafana/pull/100046), [@bfmatei](https://github.com/bfmatei)
- **Dashboards:** Bring back scripted dashboards [#100633](https://github.com/grafana/grafana/pull/100633), [@dprokop](https://github.com/dprokop)
- **Plugin Metrics:** Eliminate data race in plugin metrics middleware [#100078](https://github.com/grafana/grafana/pull/100078), [@clord](https://github.com/clord)
- **RBAC:** Don't check folder access if `annotationPermissionUpdate` FT is enabled [#100117](https://github.com/grafana/grafana/pull/100117), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
<!-- 11.5.2 END -->
<!-- 11.5.1 START -->
# 11.5.1 (2025-02-03)
@@ -263,6 +176,121 @@
- **Grafana UI:** Re-add react-router-dom as a dependency [#97540](https://github.com/grafana/grafana/pull/97540), [@leventebalogh](https://github.com/leventebalogh)
<!-- 11.5.0 END -->
<!-- 11.4.1 START -->
# 11.4.1 (2025-01-28)
### Features and enhancements
- **Security:** Update to Go 1.23.5 - Backport to v11.4.x [#99123](https://github.com/grafana/grafana/pull/99123), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.23.5 - Backport to v11.4.x (Enterprise)
### Bug fixes
- **Alerting:** AlertingQueryRunner should skip descendant nodes of invalid queries [#97830](https://github.com/grafana/grafana/pull/97830), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix alert rules unpausing after moving rule to different folder [#97583](https://github.com/grafana/grafana/pull/97583), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Fix label escaping in rule export [#98649](https://github.com/grafana/grafana/pull/98649), [@moustafab](https://github.com/moustafab)
- **Alerting:** Fix slack image uploading to use new api [#98066](https://github.com/grafana/grafana/pull/98066), [@moustafab](https://github.com/moustafab)
- **Azure/GCM:** Improve error display [#97594](https://github.com/grafana/grafana/pull/97594), [@aangelisc](https://github.com/aangelisc)
- **Dashboards:** Fix issue where filtered panels would not react to variable changes [#98734](https://github.com/grafana/grafana/pull/98734), [@oscarkilhed](https://github.com/oscarkilhed)
- **Dashboards:** Fixes issue with panel header showing even when hide time override was enabled [#98747](https://github.com/grafana/grafana/pull/98747), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fixes week relative time ranges when weekStart was changed [#98269](https://github.com/grafana/grafana/pull/98269), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Panel react for `timeFrom` and `timeShift` changes using variables [#98659](https://github.com/grafana/grafana/pull/98659), [@Sergej-Vlasov](https://github.com/Sergej-Vlasov)
- **DateTimePicker:** Fixes issue with date picker showing invalid date [#97971](https://github.com/grafana/grafana/pull/97971), [@torkelo](https://github.com/torkelo)
- **Fix:** Add support for datasource variable queries [#98119](https://github.com/grafana/grafana/pull/98119), [@sunker](https://github.com/sunker)
- **InfluxDB:** Adhoc filters can use template vars as values [#98786](https://github.com/grafana/grafana/pull/98786), [@bossinc](https://github.com/bossinc)
- **LibraryPanel:** Fallback to panel title if library panel title is not set [#99410](https://github.com/grafana/grafana/pull/99410), [@ivanortegaalba](https://github.com/ivanortegaalba)
### Plugin development fixes & changes
- **Grafana UI:** Re-add react-router-dom as a dependency [#98422](https://github.com/grafana/grafana/pull/98422), [@leventebalogh](https://github.com/leventebalogh)
<!-- 11.4.1 END -->
<!-- 11.3.3 START -->
# 11.3.3 (2025-01-28)
### Features and enhancements
- **Azure Monitor:** Add a feature flag to toggle user auth for Azure Monitor only [#97576](https://github.com/grafana/grafana/pull/97576), [@adamyeats](https://github.com/adamyeats)
- **Security:** Update to Go 1.23.5 - Backport to v11.3.x [#99124](https://github.com/grafana/grafana/pull/99124), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.23.5 - Backport to v11.3.x (Enterprise)
### Bug fixes
- **Alerting:** AlertingQueryRunner should skip descendant nodes of invalid queries [#97829](https://github.com/grafana/grafana/pull/97829), [@gillesdemey](https://github.com/gillesdemey)
- **Azure/GCM:** Improve error display [#97593](https://github.com/grafana/grafana/pull/97593), [@aangelisc](https://github.com/aangelisc)
- **Dashboard:** Fixes issue with compatability of old DashboardModel.annotations [#97467](https://github.com/grafana/grafana/pull/97467), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fix issue where filtered panels would not react to variable changes [#98733](https://github.com/grafana/grafana/pull/98733), [@oscarkilhed](https://github.com/oscarkilhed)
- **Dashboards:** Fixes issue with panel header showing even when hide time override was enabled [#97389](https://github.com/grafana/grafana/pull/97389), [@torkelo](https://github.com/torkelo)
- **Dashboards:** Fixes week relative time ranges when weekStart was changed [#98268](https://github.com/grafana/grafana/pull/98268), [@torkelo](https://github.com/torkelo)
- **DateTimePicker:** Fixes issue with date picker showing invalid date [#97970](https://github.com/grafana/grafana/pull/97970), [@torkelo](https://github.com/torkelo)
- **Fix:** Add support for datasource variable queries [#98118](https://github.com/grafana/grafana/pull/98118), [@sunker](https://github.com/sunker)
- **InfluxDB:** Adhoc filters can use template vars as values [#98785](https://github.com/grafana/grafana/pull/98785), [@bossinc](https://github.com/bossinc)
- **Unified Storage:** Use tls preferred when grafana db using ssl [#97379](https://github.com/grafana/grafana/pull/97379), [@owensmallwood](https://github.com/owensmallwood)
### Plugin development fixes & changes
- **Grafana UI:** Re-add react-router-dom as a dependency [#98421](https://github.com/grafana/grafana/pull/98421), [@leventebalogh](https://github.com/leventebalogh)
<!-- 11.3.3 END -->
<!-- 11.2.6 START -->
# 11.2.6 (2025-01-28)
### Features and enhancements
- **Azure Monitor:** Add a feature flag to toggle user auth for Azure Monitor only [#97565](https://github.com/grafana/grafana/pull/97565), [@adamyeats](https://github.com/adamyeats)
- **Security:** Update to Go 1.22.11 - Backport to v11.2.x [#99125](https://github.com/grafana/grafana/pull/99125), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v11.2.x (Enterprise)
### Bug fixes
- **Azure/GCM:** Improve error display [#97591](https://github.com/grafana/grafana/pull/97591), [@aangelisc](https://github.com/aangelisc)
<!-- 11.2.6 END -->
<!-- 11.1.11 START -->
# 11.1.11 (2025-01-28)
### Features and enhancements
- **Security:** Update to Go 1.22.11 - Backport to v11.1.x [#99126](https://github.com/grafana/grafana/pull/99126), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v11.1.x (Enterprise)
### Bug fixes
- **Azure/GCM:** Improve error display [#97595](https://github.com/grafana/grafana/pull/97595), [@aangelisc](https://github.com/aangelisc)
<!-- 11.1.11 END -->
<!-- 11.0.10 START -->
# 11.0.10 (2025-01-28)
### Features and enhancements
- **Security:** Update to Go 1.22.11 - Backport to v11.0.x [#99127](https://github.com/grafana/grafana/pull/99127), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v11.0.x (Enterprise)
### Bug fixes
- **Azure/GCM:** Improve error display [#97592](https://github.com/grafana/grafana/pull/97592), [@aangelisc](https://github.com/aangelisc)
<!-- 11.0.10 END -->
<!-- 10.4.15 START -->
# 10.4.15 (2025-01-28)
### Features and enhancements
- **Security:** Update to Go 1.22.11 - Backport to v10.4.x [#99128](https://github.com/grafana/grafana/pull/99128), [@Proximyst](https://github.com/Proximyst)
- **Security:** Update to Go 1.22.11 - Backport to v10.4.x (Enterprise)
### Bug fixes
- **Azure/GCM:** Improve error display [#97590](https://github.com/grafana/grafana/pull/97590), [@aangelisc](https://github.com/aangelisc)
<!-- 10.4.15 END -->
<!-- 11.4.0 START -->
# 11.4.0 (2024-12-05)

View File

@@ -3,10 +3,10 @@
# to maintain formatting of multiline commands in vscode, add the following to settings.json:
# "docker.languageserver.formatter.ignoreMultilineInstructions": true
ARG BASE_IMAGE=alpine:3.21
ARG BASE_IMAGE=alpine:3.20
ARG JS_IMAGE=node:22-alpine
ARG JS_PLATFORM=linux/amd64
ARG GO_IMAGE=golang:1.24.3-alpine
ARG GO_IMAGE=golang:1.23.5-alpine
# Default to building locally
ARG GO_SRC=go-builder
@@ -22,7 +22,6 @@ WORKDIR /tmp/grafana
COPY package.json project.json nx.json yarn.lock .yarnrc.yml ./
COPY .yarn .yarn
COPY packages packages
COPY plugins-bundled plugins-bundled
COPY public public
COPY LICENSE ./
COPY conf/defaults.ini ./conf/defaults.ini
@@ -63,23 +62,24 @@ COPY go.* ./
COPY .bingo .bingo
# Include vendored dependencies
COPY pkg/util/xorm/go.* pkg/util/xorm/
COPY pkg/apiserver/go.* pkg/apiserver/
COPY pkg/apimachinery/go.* pkg/apimachinery/
COPY pkg/build/go.* pkg/build/
COPY pkg/build/wire/go.* pkg/build/wire/
COPY pkg/promlib/go.* pkg/promlib/
COPY pkg/storage/unified/resource/go.* pkg/storage/unified/resource/
COPY pkg/storage/unified/apistore/go.* pkg/storage/unified/apistore/
COPY pkg/semconv/go.* pkg/semconv/
COPY pkg/aggregator/go.* pkg/aggregator/
COPY apps/playlist/go.* apps/playlist/
COPY apps/investigation/go.* apps/investigation/
COPY pkg/util/xorm pkg/util/xorm
COPY pkg/apiserver pkg/apiserver
COPY pkg/apimachinery pkg/apimachinery
COPY pkg/build pkg/build
COPY pkg/build/wire pkg/build/wire
COPY pkg/promlib pkg/promlib
COPY pkg/storage/unified/resource pkg/storage/unified/resource
COPY pkg/storage/unified/apistore pkg/storage/unified/apistore
COPY pkg/semconv pkg/semconv
COPY pkg/aggregator pkg/aggregator
COPY apps/playlist apps/playlist
COPY apps/investigations apps/investigations
COPY apps/advisor apps/advisor
COPY apps apps
COPY kindsv2 kindsv2
COPY apps/alerting/notifications/go.* apps/alerting/notifications/
COPY pkg/codegen/go.* pkg/codegen/
COPY pkg/plugins/codegen/go.* pkg/plugins/codegen/
COPY apps/alerting/notifications apps/alerting/notifications
COPY pkg/codegen pkg/codegen
COPY pkg/plugins/codegen pkg/plugins/codegen
RUN go mod download
RUN if [[ "$BINGO" = "true" ]]; then \

View File

@@ -8,4 +8,4 @@
- @davkal
- Docs:
- @chri2547
- @brendamuir
- @JohnnyK-Grafana

View File

@@ -8,7 +8,7 @@ WIRE_TAGS = "oss"
include .bingo/Variables.mk
GO = go
GO_VERSION = 1.24.3
GO_VERSION = 1.23.5
GO_LINT_FILES ?= $(shell ./scripts/go-workspace/golangci-lint-includes.sh)
GO_TEST_FILES ?= $(shell ./scripts/go-workspace/test-includes.sh)
SH_FILES ?= $(shell find ./scripts -name *.sh)
@@ -149,7 +149,7 @@ gen-cue: ## Do all CUE/Thema code generation
.PHONY: gen-cuev2
gen-cuev2: ## Do all CUE code generation
@echo "generate code from .cue files (v2)"
go generate ./kindsv2/gen.go
@$(MAKE) -C ./kindsv2 all
.PHONY: gen-feature-toggles
gen-feature-toggles:
@@ -211,7 +211,6 @@ build-cli: ## Build Grafana CLI application.
build-js: ## Build frontend assets.
@echo "build frontend"
yarn run build
yarn run plugins:build-bundled
PLUGIN_ID ?=
@@ -272,6 +271,14 @@ test-go-integration-alertmanager: ## Run integration tests for the remote alertm
AM_URL=http://localhost:8080 AM_TENANT_ID=test \
$(GO) test $(GO_RACE_FLAG) -count=1 -run "^TestIntegrationRemoteAlertmanager" -covermode=atomic -timeout=5m ./pkg/services/ngalert/...
.PHONY: test-go-integration-grafana-alertmanager
test-go-integration-grafana-alertmanager: ## Run integration tests for the grafana alertmanager
@echo "test grafana alertmanager integration tests"
@export GRAFANA_VERSION=11.5.0-81938; \
$(GO) run tools/setup_grafana_alertmanager_integration_test_images.go; \
$(GO) clean -testcache; \
$(GO) test $(GO_RACE_FLAG) -count=1 -run "^TestAlertmanagerIntegration" -covermode=atomic -timeout=10m ./pkg/tests/alertmanager/...
.PHONY: test-go-integration-postgres
test-go-integration-postgres: devenv-postgres ## Run integration tests for postgres backend with flags.
@echo "test backend integration postgres tests"
@@ -422,6 +429,7 @@ protobuf: ## Compile protobuf definitions
buf generate pkg/plugins/backendplugin/secretsmanagerplugin --template pkg/plugins/backendplugin/secretsmanagerplugin/buf.gen.yaml
buf generate pkg/storage/unified/resource --template pkg/storage/unified/resource/buf.gen.yaml
buf generate pkg/services/authz/proto/v1 --template pkg/services/authz/proto/v1/buf.gen.yaml
buf generate pkg/services/ngalert/store/proto/v1 --template pkg/services/ngalert/store/proto/v1/buf.gen.yaml
.PHONY: clean
clean: ## Clean up intermediate build artifacts.

View File

@@ -43,7 +43,7 @@ If you're interested in contributing to the Grafana project:
- If you have a specific question, check out our [discussion forums](https://community.grafana.com/).
- For general discussions, join us on the [official Slack](https://slack.grafana.com) team.
This project is tested with [BrowserStack](https://www.browserstack.com/)
This project is tested with [BrowserStack](https://www.browserstack.com/).
## License

Some files were not shown because too many files have changed in this diff Show More