Commit Graph

61344 Commits

Author SHA1 Message Date
owensmallwood e667dfed29 Unified Storage: Update index when indexqueueprocessor exists (#109351)
* Update readme

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

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

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

* feat: Add plugin extension points for DataSource configuration components

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

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

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

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

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

* Add comprehensive tests for DataSource plugin extensions

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

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

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

* Update specs.md to reflect completed test implementation

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

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

* rm specs file

* lint

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

* tsc

* prettier: fix

* Fix datasource extension path format to resolve CI test failure

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

* fix: DataSourceTestingStatus test failures

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

All 10 tests now pass successfully.

* lint fix

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

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

* rm brittle tests

* DataSource: Replace individual buttons with dropdown menu in EditDataSourceActions

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

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

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

* refactor: use DataSourceConfigErrorStatus extension point for troubleshooting guide

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

* extract i18n

* lint:fix

* Revert "lint:fix"

This reverts commit 23cdb39672.

* lint:fix

* fix: mock plugin extensions registry in variables utils test

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

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

* fix: mock plugin extensions registry in explore query test

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

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

* better fix

* Fix EditDataSourceActions test by mocking utils and handling dropdown UI

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

* lint:fix

* refactor: extract duplicated allowedPluginIds to single source of truth

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

* refactor: update datasource extension link configurations

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

* removing unused config

* better dropdown

* fix: update EditDataSourceActions tests to match component implementation

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

* lint:fix

* remove extra check

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

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

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

* test: Update EditDataSourceActions tests for new dropdown implementation

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

* test: Add comprehensive test coverage for dropdown explore functionality

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

* translation

* compass icon for the explore item

* feat: refactor AlertSuccessMessage to accept extension links as props

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

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

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

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

* Split integration tests into multiple files

* Fix missing import

* Rename file to repository test

q

* Wrap worker errors with more context

* Fixed tests

* Add nolint

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

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

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

* Add Graph API troubleshooting guide

* Improve writing

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

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

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

* clean up final invite user experiment

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

* add some basic tests to util functions

* fix tests / jest mock conflicts

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

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

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

* Remove FIXME

* Format code

* Fetch job before update

* Add claims for all namespaces

* Remove unused import

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

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

---------

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

* Switch to AdvancedHttpSettings component

* Fix locale

* Betterer

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

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

* don't need to specify zod/v4 anymore

---------

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

* add extension for queryless apps, allow for multiple extensions

* add button to querywrapper

* remove debugger

* add hook to get tests to pass

* fix spelling of component

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

* fix datasourcemodal styling

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

* add comment

* fix the specific alerting links

* fix lint rule violations

* update translations

* fix unit tests

* kick CI

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

* update codeowners

* revert changes to grafana-plugin-configs
2025-08-06 15:34:34 +01:00