Commit Graph

9222 Commits

Author SHA1 Message Date
Moustafa Baiou ca8324e62a Alerting: Add support for alpha rules apis in legacy storage
Rules created in the new api makes the rule have no group in the database, but the rule is returned in the old group api with a sentinel group name formatted with the rule uid for compatiblity with the old api.
This makes the UI continue to work with the rules without a group, and the ruler will continue to work with the rules without a group.

Rules are not allowed to be created in the provisioning api with a NoGroup sentinel mask, but NoGroup rules can be manipulated through both the new and old apis.

Co-authored-by: William Wernert <william.wernert@grafana.com>
2025-09-10 09:30:56 -04:00
Will Browne 0a7e0e5298
Plugins: Add ability to run backend plugins in containers (#110534)
* add client cfg for containers

* remove unused code

* add field for skip host env for proto client

* add docker to Swagger ignore

* add to enterprise swagger gen

* undo go.mod changes

* pass container image

* propagate container image field
2025-09-10 11:12:23 +01:00
Todd Treece 7c242eeaef
Background Services: Add wrapper to support startup order (#110225) 2025-09-10 09:06:25 +01:00
Drew Slobodnjak 651e52fd10
TimeSeries: Improve time compare default styling (#110575)
* TimeSeries: Use exported time comparison function

* Add alignTimeRangeCompareData to grafana/data

* Simplify tooltip time text formatting

* Bump scenes version

* Add tests for alignTimeRangeCompareData

* TimeSeries: Improve time compare default styling

* Update Time Comparison panel option menu

* Add backwards compatibility for older scenes

* Update shouldAlignTimeCompare for typical query

* Fix styling when multiple RefId matches

* Update default dash to be smaller

* Fix tooltip for older versions of scenes
2025-09-09 15:09:44 -07:00
Gilles De Mey d5fca9a5fa
Alerting: Add state components to package (#110781) 2025-09-09 18:10:10 +02:00
John-George Sample b999807727
Fix TSDoc for suppressing error alerts from backendSrc (#110824)
s/true/false
2025-09-09 16:36:19 +01:00
Alexander Akhmetov 2a5e8c8f9f
Alerting: Add alertenrichment feature toggles (#110815) 2025-09-09 16:50:49 +02:00
Josh Hunt 4e05bb36f2
FS: Remove multiTenantFrontend flag (#110776)
* FS: Move multiTenantFrontend evaluation to OpenFeature

* comment

* actually, just remove the toggle

* fix k8s prefs test using toggle

* replace frontend flag usage

* codeowners

* move isFrontendService just into core

* put back comment
2025-09-09 09:39:29 +00:00
Dominik Broj 2e9432b9d5
Alerting: allow hiding alert rule column in CentralAlertHistoryScene (#110746)
allow hiding alert rule column
2025-09-08 15:00:21 +02:00
renovate[bot] 3c5c6b8185
Update dependency @floating-ui/react to v0.27.16 (#110715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 13:06:18 +02:00
Tobias Skarhed 7bccabfb1f
Secrets: Add e2e selectors (#110689)
* Add e2e selectors for secrets and ConfirmModal

* Update secretform selector
2025-09-08 08:02:11 +00:00
Levente Balogh 2f558e8cb7
Grafana Schema: Extend the `VariableHide` enum (#110579)
* feat: extend the `VariableHide` enum with a new option

* feat: extend the `VariableHide` for v1
2025-09-08 09:08:09 +02:00
Drew Slobodnjak 23fa9a1484
TimeSeries: Use exported time shift and fix time comparison tooltip (#109947)
* TimeSeries: Use exported time comparison function

* Add alignTimeRangeCompareData to grafana/data

* Simplify tooltip time text formatting

* Bump scenes version

* Add tests for alignTimeRangeCompareData

* Add backwards compatibility for older scenes

* Update shouldAlignTimeCompare for typical query

* Fix tooltip for older versions of scenes

* support for multiple shifts

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-09-06 18:24:42 -07:00
Andrew Hackmann 9445328a59
Prometheus data source: Migration service (#107364)
* copying from secrets migration

* service runs and mig promds type

* creating data source check

* adding aws

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

* add tests

* clean up

* lint

* add code owner

* imporvments from andres

* remove prom mig from http_server

* remove interface for testing

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

* fit into prov

* comment

* log debug instead of returning in update type

* Trigger Build

* feature flag being weird

* not public method

* copying from secrets migration

* service runs and mig promds type

* creating data source check

* adding aws

* add tests

* clean up

* imporvments from andres

* remove prom mig from http_server

* remove interface for testing

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

* fit into prov

* Trigger Build

* not public method

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

* all cases are working; unit tests pass

* style and code cleanup in SummaryCell

* remove e2e test for sum reducer label

* reorganize code, todo tests

* slight style cleanup

* one more little reorganization

* updates based on CI failures

* update tests and docs

* unused prop

* update table footer image

* alt text, lint issue

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

* remove console.log
2025-09-05 15:46:07 -04:00
colin-stuart 0f54622db7
SCIM: Add logo (#110621)
* SCIM: add logo

* remove accidentally committed logo
2025-09-05 11:53:30 -05:00
Dominik Prokop b4e63c36c3
Migration v42: HideFrom tooltip consistency migration (#110517)
* Migration to be verified: v42 HideFrom tooltip migration

* snap update

* make gen cue

* Add comments of 42 being the final version
2025-09-05 15:07:30 +02:00
Leon Sorokin beaa512eb3
PanelQueryRunner: Use rxjs forkJoin (like Scenes), not lodash merge (#109220) 2025-09-04 19:54:47 -05:00
Tom Ratcliffe 3d6d632686
Chore: Remove betterer (#110469) 2025-09-04 18:17:53 +01:00
Victor Marin 27b3137baf
Dashboards: User journey E2Es (#109049)
* wip

* wip

* wip

* wip

* scope e2es

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* add dashboard view tests

* mods cujs

* wip refactor

* remove timeouts

* fixes

* betterer

* fixes

* refactor

* refactor

* fix

* use type instead of any

* betterer

* PR mods + codeowners

* CODEOWNERS

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

* register AlertRuleHistory into IRM's extension point

* support more default filters

* lazy load alert rule extension

* simplify

* rename extension point

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

* rename PluginExtensionPointsInPlugins to PluginExtensionExposedComponents

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

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

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

* improve naming of exposed component

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2025-09-04 13:56:50 +02:00
Ashley Harrison 9272a1c19a
Chore: Fix some more a11y checks in stories (#110531)
fix more a11y checks in stories
2025-09-04 09:57:02 +01:00
Levente Balogh c7b3662d85
Restricted APIs: Remove type assertion from Betterer (#110548)
chore: remove type-assertion from betterer
2025-09-04 06:50:09 +02:00
Adela Almasan 4f70b93ca6
Actions: Infinity authentication (#109493) 2025-09-03 20:56:30 -05:00
Alex Spencer 6c9faa7595
TableNG: Footer enhancements (#102948)
* Table: Footer support for multiple reducers

* fix migrator test output due to required default value

* fix go migration test

* more go test fixes

* fix go tests for footer

* Merge #110062

* update migration dashboard

* Small docs fixes

* Small docs fix

* remove migration method in Go, update js unit test

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

* Footer should always use og rows for calcs

* update footer to be unaffected by filtering and sorting

* more e2es

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

* update codeowners for e2e

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

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

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

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

* fix reducers override in kitchen sink migration table

---------

Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-09-03 18:03:33 -04:00
Kristina 3051dd9d44
Transformations: Account for group by / count when assessing if calculation is needed (#110546)
* Add logic for groupby count and add tests

* remove skip

* Use better and accurate test naming

* deconstruct options, add test for group by / count

* Have different values for test

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

* add back destructuring
2025-09-03 13:53:27 -05:00
Ben Darlow 163ff0c9f1
Text: Add Inter italic font variants to Grafana UI (#110313)
Add Inter italic font variants
2025-09-03 15:04:14 +01:00
Ivana Huckova 4e28cba1c5
Bump @grafana/assistant package (#110507)
* Bump @grafana/assistant package

* Update origin

* Update FlameGraphHeader.tsx

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

* Update LogListContext.tsx

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

* Fix lint

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

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

---------

Co-authored-by: Kevin Adam <16607163+kevelopment@users.noreply.github.com>
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2025-09-03 15:30:02 +02:00
Ihor Yeromin dc16562050
AdHoc Filter: Enable to GA (#110445)
* chore(adhoc-filter): enable to GA
2025-09-03 13:21:33 +00:00
Tom Ratcliffe 7947ead939
Chore: Remove betterer undocumented stories check (#110453) 2025-09-03 12:59:36 +00:00
Alex Khomenko 88a63a1d92
Icon: Use non-block element for loader (#110399) 2025-09-03 15:29:33 +03:00
Ben Darlow 46d4061fca
Update Storybook documentation for RadioButtonGroup and RadioButtonList with usage guidance (#110291)
* Update the Storybook docs for RadioButtonList where it was incorrectly referencing RadioButtonGroup in code examples

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

* Refine the Storybook docs for RadioButtonGroup
2025-09-03 12:24:50 +01:00
Tom Ratcliffe 95080d9d56
Folders: Update folder using app platform APIs (#110449) 2025-09-03 11:29:26 +01:00
Dominik Prokop 6c517f82ed
Dashboards: Enable kubernetesDashboards by default (#107618)
* Dashboards: Enable kubernetesDashboards by default

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

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

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2025-09-03 12:01:55 +02:00
Zoltán Bedi 76af73b3f3
Update @grafana/plugin-ui dependency to version ^0.10.10 across multiple packages (#110433) 2025-09-02 19:05:56 +02:00
Matheus Macabu 9816c48ab2
Secrets: Add UI feature toggle (#110451) 2025-09-02 15:25:22 +02:00
Andreas Christou 1a8d25375a
Azure: Resource picker improvements (#109458) (#109520)
* Azure: Create feature toggle for resource picker improvements (#109458)

Create feature toggle

* Azure: Resource picker subscriptions filter (#109527)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Update tests, lint, and i18n

* Lint and test

* Simplify type

* Azure: Resource picker types filter  (#109528)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Update tests, lint, and i18n

* Lint and test

* Simplify type

* Rename variable for clarity

* Azure: Resource picker locations filter  (#109530)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Locations filter

* Update tests, lint, and i18n

* Minor test updates

* Imports

* Lint and test

* Simplify type

* Rename variable for clarity

* Rename var

* Azure: Resource picker filters tests (#109590)

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Locations filter

* Update tests, lint, and i18n

* Minor test updates

* Imports

* Lint and test

* Resource picker filter tests

* Update tests

* Simplify type

* Rename variable for clarity

* Rename var

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

* Create feature toggle

* Fix namespace typo

* Retrieving default subscription ID

* Style updates

- Filter input styling
- Improved modal styling

* Pass data source to resource field

* Search style updates

* Function to support fetching filtered rows

* Filtering nested rows

* Filtering search

* Support subscriptions filtering

- Support filtering in resource graph functions
- Subscriptions filter component

* getSubscriptions tests

* Fix logs query editor test

* Update data source mock

* Update resourcePickerData tests

* Add types filter

* Locations filter

* Update tests, lint, and i18n

* Minor test updates

* Imports

* Lint and test

* Resource picker filter tests

* Update tests

* Event for filter usage

* Function to support local storage

* Recent resources view

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

* Update i18n keys

* Export resource key

* Add no recent resources text

* Run legacy tests with feature toggle off

* Add filters test without feature toggle

* Don't use as type assertions

* Add tests for recent resources

* Store resources for each query type

* i18n-extract

* Simplify type

* Minor performance improvement

* Rename variable for clarity

* Rename var

* Add placeholders

* Azure: Resource picker tests (#110175)

* Minor simplifying refactor

* Add more tests

* Update E2E
2025-09-02 11:02:01 +01:00
Victor Marin 05380088d5
DataSourceApi: More specific naming for getFiltersApplicability (#110407)
* rename getFiltersApplicability

* typecheck

* typecheck
2025-09-02 11:32:24 +03:00
Andreas Christou 0dc283b303
Graphite: Add backend feature toggle (#110043)
Add feature toggle
2025-09-01 15:13:47 +00:00
Tom Ratcliffe 66a99d0ae8
Folders: Create folder using app platform APIs (#110166) 2025-09-01 13:09:09 +01:00
Sven Grossmann b6d7374b25
ExtensionSidebar: Remove feature flag and enable by default (#109906)
* ExtensionSidebar: Remove feature flag and enable by default

* ExtensionSidebar: Remove `isEnabled`

* ExtensionSidebar: Lint

* ExtensionSidebar: Lint

* ExtensionSidebar: Remove more FF

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

* review: update naming

* review: update the owners of the feature toggle

* feat: share the restricted apis with extensions

* fix: linters

* feat: remove the `addPanel` api

* chore: fix linting and betterer issue

* tests: use `@ts-expect-error` for more clarity
2025-09-01 11:57:00 +02:00
Konrad Lalik 31114fb47c
Alerting: Add Triage feature toggle (#110326)
* Add state history config to frontend config object

* Add alertingTriage feature toggle

* Add Triage menu entry

* Add old state history config props for backward compatibility
2025-09-01 11:33:33 +02:00
Paul Marbach b22f15ad16
Table: Max row height for variable height rows (#109639)
* Table: Max height for wrapped content

* Docs: tableNG max cell height (#110069)

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

* change to Max row height instead of Max cell height

* fix unit test

* table utils codeowners

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

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

* update docs

* fix docs

* Revert "fix unit test"

This reverts commit c46b0f1bec.

* fix unit test

* trade one important for another

* Tweaked wording

* hover overflow for max row height

* get rid of commented out section

* and we did it without important

* centralize overflow for max height assessment

* some alignment stuff was busted

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

* make i18n path more consistent

* put some tooltip things back since they ultimately didnt change

* we can simplify the :not selector

* delete comment

* don't bother with :not

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-29 15:10:17 -04:00
Gilles De Mey a71664c114
Alerting: Add route matching functionality to package (#108982) 2025-08-29 14:52:27 +00:00
Alikamran Rzayev be3fa041a5
Dashboards: Conserve timestamp on time range copy-paste across timezones (#109769)
* fix(timepicker): preserve UTC timestamp on copy-paste across timezones

* test: add UTC copy/paste timezone conversion test

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

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

* Remove duplicate mockClipboard clear

* Extract utility functions for formatting and converting time ranges

---------

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

* test(DropDownVariableControls): add tests

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

This reverts commit eda94a6434.
2025-08-29 14:49:57 +02:00
Ihor Yeromin 97f1ed0b88
Tooltip Filter: Add test for Filter for value (#110308)
chore(adhoc-filter): add tests
2025-08-29 09:56:22 +00:00
Kristina c1edba6d8f
Trend: Add support for a logarithmic x axis (#101433)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-29 00:02:49 -05:00
Ryan McKinley eda94a6434
DataSource: Support config CRUD from apiservers (#106996) 2025-08-28 22:28:26 +03:00
Adela Almasan 748010bb0b
Canvas: Add option to disable tooltips for one-click elements (#109937) 2025-08-28 16:33:58 +00:00
Luminessa Starlight 9cf561f338
Accessibility: Constrain popups to screen height (#110241)
* limit ButtonSelect dropdown height to screen height and scroll the overflow

* limit color picker size to screen height and scroll if constrained
2025-08-28 11:43:38 -04:00
Sonia Aguilar 98bd10965b
Alerting: Add feature toggle and extension point (#110141)
* Add feature toggle and extension point

* Update ff name for enrichment per rule

* update translations

* rename to addRuleFormEnrichmentSection

* pr feedback

* prettier

* update translations

* revert wrong change in tsconfig
2025-08-28 10:30:28 +02:00
Hugo Häggmark fe88f2366a
Variables: shows warning when user tries to save erroneous variables (#110154)
* Variables: shows warning when saving variables with errors

* chore: updates after PR feedback

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-28 00:40:18 +00:00
Paul Marbach 76b1e5e389
Table: Migrate to field-level wrapText toggle, use standard hideFrom.viz for hidden fields (#109297)
* Added wrap text to table options and removed from multiple cell options

* Removed wrap text from cell options shared file

* Edited

* Edited

* Table: Migrate to field-level wrapText toggle

* migrate hidden -> hideFrom.viz as well

* more cleanup from rebase

* restore options that got killed in the rebase

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

* fix TableNG unit tests

* fix i18n

* unit tests for the migrations

* sort out e2e issue

* fix migration unit test

* fix backend migration test as well

* add a dashboard for the v12.2 table migrations

* update dev-dashboards.lisonnet

* make gen-jsonnet

* one of the panel versions didnt get updated

---------

Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-08-27 16:37:02 -04:00
jcolladokuri 541e378891
Prometheus: QueryEditor fix error when switching from code to builder for undefined aggregation operations (#110179)
* convert stddev to function instead of aggregation

* adds missing stdvar, limitK and limit_ratio agg functions

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

Co-authored-by: Isaiah Grigsby <isaiah.grigsby@grafana.com>
2025-08-27 18:30:06 +00:00
ismail simsek 5fe58431d4
Chore: Remove prometheusCodeModeMetricNamesSearch feature toggle (#109024)
* remove feature toggle prometheusCodeModeMetricNamesSearch

* remove code that relies on prometheusCodeModeMetricNamesSearch feature toggle

* remove code that related to prometheusCodeModeMetricNamesSearch feature toggle

* remove commented code lines

* remove commented code line

* Put codeModeMetricNamesSuggestionLimit selector back

* remove redundant unit test
2025-08-27 15:11:58 +02:00
Victor Marin a0075ffdd6
DataSourceAPI: Modify getFiltersApplicability param type (#110147)
* modify getFiltersApplicability param type

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

This reverts commit 7331a2e8c3.

* revert test change that accidentally catches the issue

* use useId in some places

* make ID required

* fix some ids

* fix a couple more

* add ids to variables

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

* add ids to get viz options

* add ids in getPanelFrameOptions

* add getFieldOverrideElements

* change name

* Replace other uuids with hard coded ids

* hoist useId out

* use some new selectors for table e2es

* commit betterer crimes

* use useId where we can

* Revert "use useId where we can"

This reverts commit 34090ac75d.

* fix some dashboard layouts tests

* rm AutoCellOptionsEditor

* idk try and fix tests

* restore fixed its for url state

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Ashley Harrison <ashharrison90@gmail.com>
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-08-27 13:10:47 +01:00
Paul Marbach ec38e0bd58
Table: Enable tableNextGen by default (#109832)
* Table: Enable tableNextGen by default

* kill off tableNextGen feature flag

* i18n

* i18n

* i18n

* remove state beta from table panel

* fix migration for 0 decimals migration

* add explicit auto option bacjk

* match impl from previous migrations code

* try changing some selectors

* remove timezone test from Cypress

* fix PlaylistForm unit test

* fix some selectors

* clean up i18n, are these gridcells somehow?

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

* fix i18n for en-US

* clean up gdevs now that wrapHeaderText has no default

* update role in e2e for when it is re-enabled
2025-08-26 17:25:16 -04:00
Kyle Brandt 58c8fdad7a
SSE/QuerySvc: (Chore) Remove expression parser code and feature toggle (#110117) 2025-08-26 13:21:24 +00:00
Andres Martinez Gotor 145577831b
Chore: fix betterer issues (#110100) 2025-08-26 14:45:27 +02:00
Kristina e87652060c
Transformations: Handle special case with nested dataframes/JSON (#109876)
* Fix crashes

* Remove inline snapshot
2025-08-25 19:14:04 -05:00
Ezequiel Victorero 649e9aa8ca
SavedQueries: Create feature flag (#109944) 2025-08-25 18:22:09 -03:00
Paul Marbach 67502a5a7c
Table: Color text, color background, and apply to row can co-mingle (#109939)
* Table: Color text, color background, and apply to row can co-mingle

* fix test

* lean on existing memoization and utils more

* just make that method a prop of TableCellRenderer

* add prop to tooltip stuff as well

* fix another test

* update TableNG with apply to row mixed color cell table

* simplify color overrides table

* special case: apply to row transparent bg

* add unit test

* delete erroneous import

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

* run make gen-cue to update tempo dataquery

* add native histogram check function & look for dataquery flag

* remove console log

* check for native histograms in queryfield

* only run query when histograms have not been migrated yet

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

* fix type issue

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

* fix type

* fix import

* remove metric name from func

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

* remove string for boolean check in service graph functions

* fix bug for switching tempo data sources

* handle race condition for unmounting before async call is completed

* fix imports

* add todo to implement getNativeHistograms in Prometheus data source

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

* add todo to remove the native histogram config option
2025-08-25 19:43:22 +00:00
Ryan McKinley 27c92a6644
Dashboards: Make conversion data optional (#109965) 2025-08-25 13:47:42 +03:00
Hasith De Alwis 9fb5790166
Trend/TimeSeries: Add "Show values" option (#108090)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-23 12:33:45 +00:00
Ryan McKinley ce65391067
Provisioning: Use inline secrets for gitsync (#109908)
Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-08-22 18:38:28 +02:00
Yunwen Zheng e5a7d3f104
NestedFolderPicker: Add rootFolderUID prop (#109991)
* NestedFolderPicker: add rootFolderUID prop
2025-08-22 13:37:39 +00:00
Paul Marbach 61c160b30f
Table: Fields and Column Widths arrays can get out-of-sync on length (#109997)
* Table: Fields and Column Widths arrays can get out-of-sync on length

* slight cleanup for e2e

* remove a couple of page desctructures
2025-08-21 20:49:53 +00:00
Luminessa Starlight 7331a2e8c3
Revert: "Accessibility: Ensure dashboard edit panel inputs have accessible labels" (#109984)
* Revert "Accessibility: Ensure dashboard edit panel inputs have accessible labels (#109546)"

This reverts commit 4d067059c9.

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

* use the single styles object

* restore automatically adjusted line

* restore automatically adjusted line

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

* use compareArrayVals for widths comparisons

* satisfy linter

* whoops, had this backwards

* clean up case with frozen columns

* remove dep

* avoid unnecessary change to computeColWidths
2025-08-21 15:22:30 -04:00
Paul Marbach 65317ffcbd
Table: fix use row height after lines-to-pxs update (#109943) 2025-08-21 14:02:06 -04:00
Adela Almasan 25c13c55c0
Canvas: Dynamic connection direction (#108423) 2025-08-21 12:49:42 -05:00
Lauren 56c8e53a99
Alerting: Improved filters part 2 (#109738)
* refactor: split out form component into separate functions

* add storybook variation for infoOption in dropdown

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

* add tests for filter tracking

* refactor: boy-scouting V1 filter

* move FiltersV2 to rule-list directory

* fix lint issue

* resolve PR comments round 1

* resolve PR comments round 2- update file locations

* generate apis

* fix tests

* fix lint issue

* fix imports
2025-08-21 16:04:00 +00:00
Tom Ratcliffe 82d36a259e
Folders: Refactor Browse/Dashboards list tests (#109421) 2025-08-21 15:46:12 +01:00
Paul Marbach 2ab5df43e0
Table: Add unit tests for MaybeWrapWithLink (#109932) 2025-08-21 16:00:18 +02:00
Matias Chomicki 01d48e26fe
New Logs Context: Add time window option (#109901)
* LogLineDetails: add open and close events

* LogLineContext: add interval picker

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

* Loki: support custom time window

* LogLineContext: implement variable time window

* Remove console

* LogLineContext: store and format options

* LogLineContext: replace radio with combobox

* LogLineContext: run time window on the first request

* InfiniteScroll: use loading to prevent fake events

* Chore: update old comment

* Minor reorg

* Clean up unnecessary styles

* LogLineContext: fix overflow and scroll

* LogList: fix loading prop

* Update comment

* Translations

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

* LogLineContext: move default to constant

* LogLineContext: add test

* Prettier

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

* chore: add supportsAdjustableWindow to logs context interface

* Build

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2025-08-21 13:50:05 +00:00
Tom Ratcliffe 5c542478a7
Folders: Update folder hook tests to use mock server handlers (#109341) 2025-08-21 12:58:49 +01:00
Alexa Vargas 806872bfce
Grafana UI: Tabs - add missing style for disabled tabs (#109907)
* Grafana UI: Tabs - add disabled style

* apply PR feedback
2025-08-21 13:50:22 +02:00
Hugo Häggmark bba89fdb42
i18n: fixes translations for plugins before v12.1.0 (#109948)
i18n: fixes translated plugins before 12.1.0
2025-08-21 13:06:50 +02:00
Tom Ratcliffe 429cb9d916
Chore: Update grafana eslint config version and fix rule violations (#109666) 2025-08-21 11:59:41 +01:00
Ryan McKinley 6f940f855e
Chore: Remove public dashboard cue (#109940) 2025-08-21 13:58:36 +03:00
Andreas Christou 8f1ba9acef
MultiCombobox: Fix select all when only a single option is available (#109910)
* Fix condition

* Add tests
2025-08-21 11:19:33 +01:00
Kevin Adam 0262a23d7f
feat(@grafana/assistant): bump assistant sdk (#109911)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2025-08-21 12:07:47 +02:00
Andres Martinez Gotor 7f044a1e3c
DatasourcePicker: Add favorite info in reported events (#109866) 2025-08-21 11:27:05 +02:00
Leon Sorokin 424e336ae1
TableNG: Memoize some components to improve rendering performance (#109763)
* try React.memo

* Table: Rework the renderers file and some types

* more test cleanups

* remove for gauge for now

* memoize all of the renderers

* also memoize the Tooltip component

* memoize the TableCellActions

* memo useStyles2

* update useStyles2 usage in TableNG

* remove console.log

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

* style nit - update variable name to be more idiomatic

---------

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

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

* no need to round up to max line
2025-08-20 16:31:20 -04:00
Ihor Yeromin f7d39204cd
Transformation: Add missing binary operator (#109695)
* fix(transformation): add binary operator
2025-08-20 17:13:36 +00:00
Paul Marbach 24a3a4c7dc
Icon: Memoize rendered icons for situations where duplicate icons are rendered (#109883) 2025-08-20 16:52:34 +00:00
Leon Sorokin 5bbb7c1e2a
TableNG: Fix crash with malformed/invalid data links (#109920) 2025-08-20 16:33:52 +00:00
Matt Cowley 350af57356
Navigation: Expose runtime hook for controlling mega menu (#109482)
* Navigation: Expose runtime hook for controlling mega menu

* Navigation: Allow changing menu open state without persisting
2025-08-19 15:10:38 +01:00
Andres Martinez Gotor f5b9d93610
Add favorite button to EditDatasource page (#109609) 2025-08-19 13:40:19 +02:00
Piotr Jamróz bbf01a6383
Flame Graph: Analyze with Grafana Assistant (#108684)
* Bare-bones mocked integration

* Create correct context based on the query

* Add data source name

* Do not bundle grafana/assistant with flame graph

* Rename component

* Add tests

* Mock grafana/assistant

* Update feature toggle and allow hiding the button

* Update deps

* Update types

* Update yarn.lock

* Fix typo in feature toggle description

* Enable grafanaAssistantInProfilesDrilldown by default

* Enable grafanaAssistantInProfilesDrilldown by default

* Show Analyze Flame Graph button only if there's context for the assistant
2025-08-19 09:54:00 +02:00
Paul Marbach 523758c9b3
Table: Get rid of ContextMenu on right click (#109825)
* Table: Get rid of ContextMenu on right click

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

* remove context menu test

* remove context menu test

* i18n

* fix lint issue
2025-08-18 17:03:11 -04:00
Paul Marbach 66eee1cb08
Table: Tooltip from Field (#109428)
* Table: Tooltip by Field

* add colorization support

* more progress on customizing the tooltip based on cell customization

* configurable as an option

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

* i18n

* use enum where appropriate

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

* clean up some console.logs

* e2e test for the tooltip

* fix global click stuff

* remove console.log

* refine the style of the caret

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

* some updates from self-review

* increase hit target of tooltip caret

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

* reorganize to pre-calc the per-field stuff

* use linear gradient for triangle

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

* clean up event handlers a bit

* restore test for toggle click

* alright, re-remove the toggle case

* cursor pointer

* remove optional root from Popover for now

* remove this ridiculous autogenerated file

* update some of the text

* kill the cellRefMatrix

* remove unused import

* extract a util for the predicateByName part

* skip the intermediary step for getCellColors
2025-08-18 10:11:43 -04:00
Paul Marbach 6d97f05349
Modal: Use default Portal root element to render Modals (#109271)
* Table: Fix z-index conflict between DataLinksActionTooltip and ActionConfirmModal

* add an action to the kitchen sink Info column

* don't need the class for z-index

* fix this issue across a variety of viz types

* kill tooltip container in TableNG

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-15 16:38:57 -04:00
Brendan O'Handley 79f4510260
Prometheus: Export interpolateQueryExpr for metrics drilldown links (#109713)
export interpolateQueryExpr for metrics drilldown links
2025-08-15 09:47:19 -05:00
Paul Marbach 9a47dd2a7e
Sparkline: Properly handle flat data (min === max) (#109702) 2025-08-14 21:38:54 +00:00
Jesse David Peterson cc651e2e6e
PieChart: Add panel options for ascending/descending sort, and no sorting (#109564)
* Add PieSortOption.

* Add sorting options to pie chart panel options.

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

* Implement custom sorting in piechart and piechart legend.

* Update piechart documentation

* Fix default and clockwise/counterclockwise confusion.

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

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

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

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

* docs(piechart): include recommendations from @imatwawanaimatwawana

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

* chore(piechart): regenerate Cue schema files

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

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

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

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

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

---------

Co-authored-by: Lukas Wieg <lukaswieg@googlemail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Paul Marbach <paul.marbach@grafana.com>
2025-08-14 16:46:53 -04:00
Luminessa Starlight 4d067059c9
Accessibility: Ensure dashboard edit panel inputs have accessible labels (#109546)
* update instantiations of OptionsPaneItemDescriptor to pass IDs - obvious changes

* update instantiations of OptionsPaneItemDescriptor to pass IDs - iffy changes

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

* update playwright tests

* fix unit tests

* grafana ui components updated to pass ID through

* update components to pass ID through

* add missing input IDs

* better default ID handling

* remove TS note

* revert accidental non-html id change

* kick CI

* fix old-arch e2e tests

* change to plain useId calls

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-14 14:01:25 -04:00
Lauren af68304af0
Alerting: Improve Alert Rules Filter (#109176)
* big WIP

* more WIP

* leftover changes after merge

* bug fix: prevent modal close onclick inside modal

* add logic to filter by data sources

* use MultiComboBox component instead of MultipleDataSourcePicker

* add namespace and evaluation group filtering logic

* remove header section of PopupCard

* set max width on popup

* add contact point field

* add contact point logic and tooltip

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

* add plugins show/hide field

* add plugins show/hide field

* add tests for new filter

* test tracking works as expected

* check v2 filter only shows if feature toggle is on

* tidying up

* fix lint errors

* fix close-on-type bug

* use ContactPointSelector component

* fix close-on-click-outside issue

* Add label dropdown logic

* Add query string to search field

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

* clear search input onClear of filters

* fix lint issues

* add tooltips to search input and datasource fields

* Sort typing in ContactPointSelector

* update translation file

* Add logic to group and list view buttons & refactoring

* update failing test

* update test mocks

* fix failing tests

* fix typecheck errors

* resolve PR comments part 1

* update label dropdown to include info text

* Translation extraction

* resolving PR comments

* move autocomplete logic to reusable hook

* resolve PR comments

* fix typecheck

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Lauren Armstrong <laurenarmstrong@laurenskmacbook.home>
Co-authored-by: Lauren Armstrong <laurenarmstrong@mac.home>
Co-authored-by: Lauren Armstrong <laurenarmstrong@Laurens-Work-MacBook.local>
2025-08-14 15:21:03 +01:00
Ashley Harrison 9125b9c014
Chore: Unpick bootData (#109544)
* set the boot data config correctly

* tighten up grafana/data types

* kick CI

* restore dashboard scopes props

* revert back to class

* add some comments

* kick CI

* add comment
2025-08-14 13:57:58 +01:00
Andres Martinez Gotor d08ea58243
Filter data sources by favorite setting (#109593) 2025-08-14 13:39:09 +02:00
Sriram 9b38ac1c24
Prometheus: Fix prometheus data source hints alignment issue (#109656)
fix prometheues ds hints alignment issue
2025-08-14 12:29:17 +02:00
Gareth 96c2f48ad5
Prometheus: Fix docs link in config page (#109385)
fix docs link
2025-08-14 10:10:02 +01:00
Kristina df70198038
Transformations: Group by should not perform calculation if operation is not set to calculate (#109430)
Do not perform calculation if operation is not Calculate
2025-08-13 15:07:53 -05:00
Josh Hunt c7e1a3d0fd
Drawer: Truncate Drawer title to just one line (#109540)
* Drawer: Truncate Drawer title to just one line

* restore prev subtitle
2025-08-13 20:51:50 +01:00
Tom Ratcliffe 5564f699ca
Folders: Add team folders feature toggle (#109389)
Add team folders feature toggle
2025-08-13 16:41:00 +00:00
Alexander Akhmetov 587f52cf5b
Alerting: API to show converted alertmanager configurations in the UI (#109353)
What is this feature?

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

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

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

    GET requests are proxied to either the Grafana Alertmanager service (for alerts, silences, etc.) or the Prometheus conversion API to get the config
    Write operations are not supported
2025-08-13 17:28:43 +02:00
Konrad Lalik e21eda9413
Alerting: Auto refresh contact points in the rule form (#109539) 2025-08-13 16:54:40 +02:00
Will Assis b9b34223a7
Unified-storage: search after write feature flag (#109597)
create feature flag for experimental search-after-write changes
2025-08-13 10:05:15 -04:00
Andres Martinez Gotor 2e4b10e81c
DatasourcePicker: Favorite datasources (#109404) 2025-08-13 15:34:19 +02:00
Alyssa Joyner 1ce333a572
[InfluxDB] Config design improvements (#108562) 2025-08-12 14:23:51 -06:00
Josh Hunt 2345da5100
MultiCombobox: Fix async options to being able to be removed (#109473) 2025-08-12 17:40:08 +01:00
Bogdan Matei 80e8a6e211
Dashboard: Improvements to conditional rendering (#108108) 2025-08-12 16:23:19 +03:00
Zoltán Bedi db0a1bc30f
Remove `sqlDatasourceDatabaseSelection` feature toggle (#109391)
* Remove `sqlDatasourceDatabaseSelection` feature toggle

* Update e2e tests
2025-08-12 15:22:30 +02:00
Andreas Christou 6c106a85ac
UI: Add `aria-labelledby` and `data-testid` to `MultiCombobox` (#109521)
Add aria-labelledby and data-testid props
2025-08-12 14:06:04 +01:00
grafana-pr-automation[bot] 20d253fc39
I18n: Download translations from Crowdin (#109502)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-12 08:42:56 +00:00
Adela Almasan 238961d3ea
VizTooltip: Replace `ExemplarHoverView` with `VizTooltip` components (#109369)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-11 20:35:36 +00:00
Ashley Harrison fbef31b2e0
Chore: Unskip some more storybook a11y checks (#109452)
* Unskip some more a11y checks

* set aria-label correctly in story
2025-08-11 16:22:48 +00:00
Alexander Akhmetov 6ca3d8a27a
Alerting: Enable alertingSaveStateCompressed by default (#109390) 2025-08-11 12:57:20 +02:00
Konrad Lalik a0cf529465
Alerting: Fix subpath handling in the alerting package (#109448)
Take subpath into account when building contact points APIs URL
2025-08-11 12:06:58 +02:00
Ieva 58c4305d64
Access: Feature toggle for resource permissions (#109418)
feature toggle for resource permissions
2025-08-11 08:54:36 +00:00
Paul Marbach a819e977a1
Table: Fix some styling issues with frozen columns (#109425) 2025-08-08 17:27:44 -05:00
Matias Chomicki f77e8839d9
New Logs Panel: Display nanoseconds if present (#109210)
* processing: display nanoseconds if present

* Nanoseconds: add control in log line menu

* virtualization: adapt to timestamp format

* Translations

* LogLine: update test

* virtualization: update test

* LogLineMenu: update test

* LogListControls: add third state for new logs panel timestamps

* Logs Panel: expose as a new panel option

* Translations

* Logs Panel: set timestamp resolution from panel config

* Module: add default value

* LogLine: update test

* Spelling

* chore: rename setter

* LogListControls: use custom button for resolution

* Translations

* Translations

* Prettier

* Logs Panel: conditionally show timestamp and details options

* Add integration test
2025-08-08 17:13:01 +00:00
Paul Marbach 992d189c0f
Table: Frozen columns (#109276)
* Table: Frozen columns

* i18n extract

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

* future-proof a bit: frozenColumns.left, add to kitchenSink
2025-08-08 14:55:53 +00:00
Josh Hunt f836ea2ada
CI: Switch jest unit tests to self-hosted runners (#109304)
* trigger a workflow run for baseline

* attempt to improve caching with upfront action

* CYPRESS_INSTALL_BINARY: 0

* PUPPETEER_SKIP_DOWNLOAD: true

* use ubuntu-x64-large runners

* increase to 16 shards 🚀

* fix incorrect shard total

* ubuntu-x64 runners

* Revert "ubuntu-x64 runners"

This reverts commit 3411c7c5e1039263b17a3065cd7d45fa4c3c8f69.

* try caching node_modules

* fix flakey scopes test

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

* run again, last one had a dodgy trace

* try different runners for yarn instlal

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

* fix duplicate runs-on

* specify shell for composite action

* fix some flaky tests

* update codeowners

* dedupe yarn.lock

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

* align yarn action cache keys

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

* try without the node_modules magic

* actually skip the node_modules caching magic

* skip hardened mode

* skip downloading cypress

* comment
2025-08-08 14:31:14 +01:00
Andres Martinez Gotor 463e544db9
Add boilerplate code for favoriteDatasource feature flag (#109383) 2025-08-08 13:28:17 +00:00
Paul Marbach cc64b17483
Table: Move cell-specific styles out to their own methods (#108941)
* TableNG: Markdown cell, plus custom row height

* tab indentation in cue file

* fix i18n

* trying an auto height with the updated RDG

* get auto cellHeight working

* i18n updates

* hoor disable_sanitize_html flag in MarkdownCell

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

* removing custom height

* use the latest experimental RDG with paging up and down

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

* disable editing max wrapped lines for now

* disable wrap text line limit e2e

* new i18n extract after commenting out input

* wip

* kill max wrapped lines for now

* more cleanup

* remove targeting classes added for max wrapped lines

* fix Pill test

* couple more style cleanups

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

* move styles into their own file

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

* fix e2es given these updates

* add a couple tests

* wip: tests

* add tests

* bump up capital letters in lorem ipsum

* fix copy-pasta mistake

* whoops, mis-merged the selector

* use a local count instead of getCellLinks

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

* fix linting on test

* gdev dashboard and smoketest for Markdown table

* remove cellHeightCustom

* restore bugfix from adversarial AI-generated JSON

* reorganize in light of recent and upcoming changes

* cleanup

* override the whitespace for markdown

* what are these auto imports about...

* fix cell height selector from merge

* also remove cellHeightCustom

* i18n

* avoid the important override in markdown cell styles

* revert some betterer config autoformatting

* slight code cleanup

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

* update panelid for empty table panel test

* link styles outside of cell style setup

* flesh out kitchen sink examples, update ImageCell and applyToRow

* clean up some inconsistent states

* fix lint issue

* gdev update

* format JSON to satisfy linter

* shortening the text in the long text field

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-07 19:53:52 -04:00
Miguel Palau 696b1bcc69
Plugin Extensions: DataSource Configuration Components (#108350)
* add the plan

* feat: Add plugin extension points for DataSource configuration components

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

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

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

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

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

* Add comprehensive tests for DataSource plugin extensions

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

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

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

* Update specs.md to reflect completed test implementation

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

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

* rm specs file

* lint

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

* tsc

* prettier: fix

* Fix datasource extension path format to resolve CI test failure

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

* fix: DataSourceTestingStatus test failures

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

All 10 tests now pass successfully.

* lint fix

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

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

* rm brittle tests

* DataSource: Replace individual buttons with dropdown menu in EditDataSourceActions

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

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

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

* refactor: use DataSourceConfigErrorStatus extension point for troubleshooting guide

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

* extract i18n

* lint:fix

* Revert "lint:fix"

This reverts commit 23cdb39672.

* lint:fix

* fix: mock plugin extensions registry in variables utils test

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

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

* fix: mock plugin extensions registry in explore query test

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

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

* better fix

* Fix EditDataSourceActions test by mocking utils and handling dropdown UI

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

* lint:fix

* refactor: extract duplicated allowedPluginIds to single source of truth

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

* refactor: update datasource extension link configurations

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

* removing unused config

* better dropdown

* fix: update EditDataSourceActions tests to match component implementation

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

* lint:fix

* remove extra check

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

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

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

* test: Update EditDataSourceActions tests for new dropdown implementation

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

* test: Add comprehensive test coverage for dropdown explore functionality

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

* translation

* compass icon for the explore item

* feat: refactor AlertSuccessMessage to accept extension links as props

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

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

* lint:fix
2025-08-07 15:19:10 +00:00
Eric Leijonmarck 9579bf33fb
LBAC for datasources: Remove ft `teamHttpHeadersMimir` (#109240)
chore: remove ft for mimir
2025-08-07 10:04:46 +01:00
Adela Almasan 62a1f6c0b8
PanelModel: Use `shouldMigrate` when migrating (#108998) 2025-08-06 21:21:36 +00:00
Andreas Christou bda809f062
Azure: Switch to `AdvancedHttpSettings` component (#109194)
* Type updates

* Switch to AdvancedHttpSettings component

* Fix locale

* Betterer

* i18n-extract
2025-08-06 18:19:07 +01:00
Brendan O'Handley f49f7d9327
Alerting: Add extension point link from alert rule to grafana-metricsdrilldown-app (#108566)
* add alerting rule query editor extension point

* add extension for queryless apps, allow for multiple extensions

* add button to querywrapper

* remove debugger

* add hook to get tests to pass

* fix spelling of component

* fix tests
2025-08-06 11:01:58 -05:00
Ashley Harrison c634fa5fdf
Modal: Center modals at smaller screen heights (#109256)
* centre and fill modals at smaller heights

* fix datasourcemodal styling

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

* add comment

* fix the specific alerting links

* fix lint rule violations

* update translations

* fix unit tests

* kick CI

* add missing external
2025-08-06 16:04:03 +01:00
Josh Hunt 72a56ad503
Chore: Remove @grafana/tsconfig (#109186)
* Chore: Remove @grafana/tsconfig

* update codeowners

* revert changes to grafana-plugin-configs
2025-08-06 15:34:34 +01:00
renovate[bot] 6ee15da39c
Update dependency eslint-webpack-plugin to v5 (#109230)
* Update dependency eslint-webpack-plugin to v5

* set failOnError: false to match previous behaviour

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-06 15:18:22 +01:00
Kristina 7e603d855d
Transformations: Transformation refID filters should include non-existant refIDs if no recovery was made (#109008)
* Show refIds if nothing is recovered

* Add test

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

* cuter

* add context and remove testing by sibling

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2025-08-06 08:52:34 -05:00
Paul Marbach 724c75cc90
Table: add a ResizeObserver to useScrollbarWidth (#109145)
* Table: add a MutationObserver to useScrollbarWidth

* makes more sense to use a resize observer
2025-08-06 13:26:19 +00:00
Stephanie Hingtgen 68059344f8
Unified storage: Remove unifiedStorageSearchPermissionFiltering feature flag (#109216)
* Unified storage: Remove unifiedStorageSearchPermissionFiltering ff

* unit test
2025-08-06 02:04:32 -06:00
Stephanie Hingtgen 6b86277ecf
Nested folders: Remove feature flag (#109212) 2025-08-06 10:07:23 +03:00
Alyssa Joyner 23b8014708
Add Clickhouse Config Redesign Feature Toggle (#109091) 2025-08-05 07:37:28 -06:00
Ryan McKinley 066163d710
Preferences: Move codegen to apps (#109178) 2025-08-05 15:30:34 +03:00
Ashley Harrison 1021f05e32
Accessibility: Make either `tooltip` or `aria-label` required when no button children present (#109131)
* ensure button must have tooltip/aria-label when no children

* fix violations

* restore some unnecessarily removed labels

* use types instead of interfaces as before

* further fixes

* fix unit test

* commit translations and fix unit test

* upgrade plugin-ui to 0.10.8

* set aria-label + unit tests
2025-08-05 12:04:35 +01:00