Commit Graph
3038 Commits
Author SHA1 Message Date
Andrew HackmannandGitHub 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
colin-stuartandGitHub 0f54622db7 SCIM: Add logo (#110621)
* SCIM: add logo

* remove accidentally committed logo
2025-09-05 11:53:30 -05:00
Leon SorokinandGitHub beaa512eb3 PanelQueryRunner: Use rxjs forkJoin (like Scenes), not lodash merge (#109220) 2025-09-04 19:54:47 -05:00
Victor MarinandGitHub 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
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
Levente BaloghandGitHub c7b3662d85 Restricted APIs: Remove type assertion from Betterer (#110548)
chore: remove type-assertion from betterer
2025-09-04 06:50:09 +02:00
Adela AlmasanandGitHub 4f70b93ca6 Actions: Infinity authentication (#109493) 2025-09-03 20:56:30 -05:00
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
KristinaandGitHub 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
Ihor YerominandGitHub dc16562050 AdHoc Filter: Enable to GA (#110445)
* chore(adhoc-filter): enable to GA
2025-09-03 13:21:33 +00:00
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
Matheus MacabuandGitHub 9816c48ab2 Secrets: Add UI feature toggle (#110451) 2025-09-02 15:25:22 +02:00
Andreas ChristouandGitHub 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 MarinandGitHub 05380088d5 DataSourceApi: More specific naming for getFiltersApplicability (#110407)
* rename getFiltersApplicability

* typecheck

* typecheck
2025-09-02 11:32:24 +03:00
Andreas ChristouandGitHub 0dc283b303 Graphite: Add backend feature toggle (#110043)
Add feature toggle
2025-09-01 15:13:47 +00:00
Sven GrossmannandGitHub 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 BaloghandGitHub 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 LalikandGitHub 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
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 BaloghandGitHub 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ērzemnieksandGitHub 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
Ryan McKinleyandGitHub eda94a6434 DataSource: Support config CRUD from apiservers (#106996) 2025-08-28 22:28:26 +03:00
Sonia AguilarandGitHub 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
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 simsekandGitHub 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 MarinandGitHub a0075ffdd6 DataSourceAPI: Modify getFiltersApplicability param type (#110147)
* modify getFiltersApplicability param type

* modify getFiltersApplicability param type
2025-08-27 12:23:29 +00:00
Paul MarbachandGitHub 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 BrandtandGitHub 58c8fdad7a SSE/QuerySvc: (Chore) Remove expression parser code and feature toggle (#110117) 2025-08-26 13:21:24 +00:00
KristinaandGitHub e87652060c Transformations: Handle special case with nested dataframes/JSON (#109876)
* Fix crashes

* Remove inline snapshot
2025-08-25 19:14:04 -05:00
Ezequiel VictoreroandGitHub 649e9aa8ca SavedQueries: Create feature flag (#109944) 2025-08-25 18:22:09 -03:00
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
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
Ihor YerominandGitHub f7d39204cd Transformation: Add missing binary operator (#109695)
* fix(transformation): add binary operator
2025-08-20 17:13:36 +00:00
Piotr JamrózandGitHub 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
Ashley HarrisonandGitHub 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
KristinaandGitHub 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
Tom RatcliffeandGitHub 5564f699ca Folders: Add team folders feature toggle (#109389)
Add team folders feature toggle
2025-08-13 16:41:00 +00:00
Alexander AkhmetovandGitHub 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
Will AssisandGitHub 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
Zoltán BediandGitHub db0a1bc30f Remove sqlDatasourceDatabaseSelection feature toggle (#109391)
* Remove `sqlDatasourceDatabaseSelection` feature toggle

* Update e2e tests
2025-08-12 15:22:30 +02:00
Alexander AkhmetovandGitHub 6ca3d8a27a Alerting: Enable alertingSaveStateCompressed by default (#109390) 2025-08-11 12:57:20 +02:00
IevaandGitHub 58c4305d64 Access: Feature toggle for resource permissions (#109418)
feature toggle for resource permissions
2025-08-11 08:54:36 +00:00
Paul MarbachandGitHub a819e977a1 Table: Fix some styling issues with frozen columns (#109425) 2025-08-08 17:27:44 -05:00
Andres Martinez GotorandGitHub 463e544db9 Add boilerplate code for favoriteDatasource feature flag (#109383) 2025-08-08 13:28:17 +00:00
Miguel PalauandGitHub 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 LeijonmarckandGitHub 9579bf33fb LBAC for datasources: Remove ft teamHttpHeadersMimir (#109240)
chore: remove ft for mimir
2025-08-07 10:04:46 +01:00
Adela AlmasanandGitHub 62a1f6c0b8 PanelModel: Use shouldMigrate when migrating (#108998) 2025-08-06 21:21:36 +00:00
Brendan O'HandleyandGitHub 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
Josh HuntandGitHub 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
Stephanie HingtgenandGitHub 68059344f8 Unified storage: Remove unifiedStorageSearchPermissionFiltering feature flag (#109216)
* Unified storage: Remove unifiedStorageSearchPermissionFiltering ff

* unit test
2025-08-06 02:04:32 -06:00