Commit Graph

484 Commits

Author SHA1 Message Date
David Kim (DK) 4a713bd9ed Plugin: expose nested folder component from core grafana (#97765)
* expose nested folder component from core grafana

* prettier

* import order

* remove unused commented code

* remove unneeded file

* make a LazyFolderPicker

* fix types, change permission to string

* comment

* reset some changes back to main

* no need to log

---------

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: joshhunt <josh.hunt@grafana.com>
2025-03-10 10:50:42 +00:00
Tobias Skarhed cf95a42507 ScopesContext: Move export from unstable to regular entrypoint (#101765)
Revert unstable export
2025-03-07 11:40:40 +02:00
Tobias Skarhed 7acfdfa0af ScopesContext: Move runtime service to unstable (#101600)
* Move ScenesContext runtime service to unstable

* Move ScopesContext to unstable folder

* Remove dummy export
2025-03-06 10:20:25 +01:00
Jack Westbrook 6d4a271a39 Frontend: Expose unstable entrypoints for data and runtime (#101547)
* feat(grafana-data): introduce unstable entrypoint to package

* feat(grafana-runtime): introduce unstable entrypoint to package

* feat(plugins): expose unstable entrypoints for data and runtime to plugins

* feat(packages): dummy exports so package verification and shared deps imports work
2025-03-04 16:22:05 +01:00
Marcus Andersson ccc1477c7d PluginExtensions: Migrate edit profile page to use new plugin components API (#101346)
* wip.

* Refactored page a bit.

* Fixed tests.

* Update public/app/features/profile/UserProfileEditTabs.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* Changed name.

* rename again.

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2025-02-28 07:28:01 +01:00
Marcus Andersson c969a7251e PluginExtensions: Fixed so we expose the proper types for usePluginComponents (#100949)
* Fixed usage of incorrect type in the 'usePluginComponents' hook.

* improved betterer.

* Changed import path of usePluginLinks types.

* improved betterer result.
2025-02-20 15:22:27 +01:00
Marcus Andersson 84d22e176b PluginExtensions: Exposing registry meta for components returned via usePluginComponents (#100587)
Exposing meta information from registry via Component.meta.
2025-02-17 14:50:35 +01:00
Dominik Süß 8a8e47fcea PluginExtensions: Added support for sharing functions (#98888)
* feat: add generic plugin extension functions

* updated betterer.

* Fixed type issues after sync with main.

* Remved extensions from datasource and panel.

* Added validation for extension function registry.

* Added tests and validation logic for function extensions registry.

* removed prop already existing on base.

* fixed lint error.

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2025-02-13 10:18:55 +01:00
Elliot Kirk 95e61f63f7 Faro: Upgrading faro deps to 1.13.1, enabling error serializer (#100145)
* upping faro deps, enabling error serializer

* linting

* fix lint errors

* more linting stuff

* yarn lock
2025-02-10 09:32:47 +01:00
Andrej Ocenas 86a68627dd QueryLibrary: Make query library available outside of Explore (#99319) 2025-01-30 14:53:01 +01:00
Sven Grossmann 336449c169 Explore: Add hide_logs_download and hide button to download logs (#99512)
* Explore: Add `disableLogsDownload` and hide button to download logs

* change copy

* Explore: Change `disableLogsDownload` to `hide_logs_download`

* change casing in frontend

* also hide from inspector

* add test

* lint
2025-01-29 11:53:52 +01:00
Oscar Kilhed 056b5a7b08 Dashboards: Monitor dashboard loading performance (#99629)
* WIP benchmark dashboard rendering

* Script

* Benchmark with variable and a panel

* Add one more benchmark

* Explicitely enable profiling

* Playwright tests

* update scenes

* Report measurement to faro when config set

* Let user enable metrics reporting in UI

* Fix logging

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

* add benchmark run option

* Fix benchmark runs

* fix description for performance config

* remove console.log

* update codeowners

* add back crashDetection init that was lost in merge

* fix yarn.lock

* restore custom.ini

* fix import

* Make sure we have the echoSrv

* fix config type

* Try to limit changes to e2e runs

* remove benchmark

* Fix lint issue

* fix codeowners

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-01-28 18:36:10 +01:00
Ezequiel Victorero 865e911e10 Share: Add analytics to invite user flow (#99116) 2025-01-21 11:47:57 -03:00
Ryan McKinley 0d302a161a BackendSrv: Support streaming chunked responses (#98691) 2025-01-15 10:01:22 +03:00
Edvard Falkskär e38bab43db Remove console.log from correlations service (#98969) 2025-01-14 16:09:32 +01:00
Edvard Falkskär e45eb95812 Correlations: Expose correlations logic through correlations service (#98124)
* Correlations: Expose correlations logic through correlations service

* Resolve remaining todos

* Marked new items as @alpha
2025-01-14 13:27:13 +02:00
Matheus Macabu 4e398bf2bd Datasources: Add toggle to control default behaviour of 'Manage alerts via Alerts UI' toggle (#98441)
* Datasources: Add toggle to control default behaviour of 'Manage alerts via Alerts UI' toggle

* Update documentation with suggestions

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-01-10 15:20:09 +01:00
Torkel Ödegaard 7639934818 RuntimeDataSource: Support in core for runtime registered data sources (#93956)
* RuntimeDataSource: Support in core for runtime registered data sources

* Added tests for runtime datasource.

* added another test to make sure runtime ds isn't included in datasource list.

* changed so we not are expecting the settings to be returned by name.

* Fixed betterer error.

* fixed type issues.

* updated comment according to feedback.

* will prevent runtime ds registration from overwriting regular ds.

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2025-01-10 14:42:49 +01:00
Andrej Ocenas 41c120ba89 Sidecar: Fix cases when sidecar wouldn't open depending on the first loaded route (#98679)
Update mainOnAllowedRoute even if no activeId
2025-01-10 11:09:12 +01:00
renovate[bot] 89774f3c8d Replace usage of react-test-renderer and @testing-library/react-hooks (#98152)
* Update dependency @types/react-test-renderer to v19

* replace usage of react-test-renderer

* use renderHook from @testing-library/react in most tests

* update tests to work without @testing-library/react-hooks

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-12-18 11:55:25 +00:00
Bogdan Matei 7cc0604360 Scopes: Add ScopesContext to @grafana/runtime (#97566) 2024-12-09 16:37:50 +02:00
Andres Martinez Gotor a41902330f @grafana/runtime: User storage (#95834) 2024-11-28 15:49:34 +01:00
Andrej Ocenas 58e9f22c1b Sidecar: Specify where it can be opened and when it automatically closes (#96683) 2024-11-21 11:27:01 +01:00
Sriram bd56b47bb5 Datasources: Health check error tracking (#96629)
* datasource health check error tracking

* type fix
2024-11-19 08:47:46 +00:00
Andrej Ocenas 4b5ce0efe7 Sidecar: Add rudderstack events (#96566) 2024-11-18 18:17:28 +01:00
Sven Grossmann 2ff9baa271 Sidecar: Always hide at /login page (#96621) 2024-11-18 14:07:59 +02:00
Andrej Ocenas 19844c4ba8 Sidecar: Route handling rework (#96337) 2024-11-14 17:28:12 +01:00
Andrej Ocenas e55100fa90 Sidecar: isAppOpened returns true only if there are 2 apps rendered (#95978)
* Check if sidecar is used

* Update packages/grafana-runtime/src/services/SidecarService_EXPERIMENTAL.ts

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

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-11-07 11:50:05 +01:00
Ashley Harrison 0fae3579e8 Chore: improve some types (#95728)
* fix some typings

* fix some more

* more type fixes

* fix some graphite types

* few influx fixes
2024-11-05 09:57:30 +00:00
Josh Hunt 189802d3c3 EchoSrv: Add BrowserConsoleBackend to log analytics events (#95554)
* EchoSrv: Add BrowserConsoleBackend to log analytics events

* rename config name

* warn on non-scalar property values
2024-10-29 18:20:54 +00:00
Andrej Ocenas 5b1d99b8c4 Sidecar: Remove extension helpers and use the sidecar service directly (#94979) 2024-10-22 11:46:29 +02:00
Andrej Ocenas c3c1f6ac27 Sidecar: Move service to runtime (#94860) 2024-10-21 20:26:39 +02:00
Syerikjan Kh 20a33632bf feat: pass orgrole when adding rs event (#94890)
* chore: pass orgRole, orgId for RS event report

* chore: track panel plugin search

* ref: extract interaction const to separate file
2024-10-21 12:22:51 -04:00
Tobias Skarhed bbc4dc3867 Frontend Monitoring: Add config option to enable all default instrumentations (#94862)
* Add config options to enable all faro instrumentation

* Fix ts error

* Fix type in test

* Add to default config files
2024-10-18 15:35:39 +02:00
Esteban Beltran f248a55576 Frontend Sandbox: Create a plugin sandbox enable registry. Use enable list instead of disable list (#94809)
* Use a enable configuration to enable frontend sandbox

* Modify settings to load enableFrontendSandbox

* Check for signature type

* Update commment

* Fix e2e tests for the frontend sandbox

* Modify logic so a custom check function is used instead of a list of checks

* Fixes flaky test

* fix comment

* Update comment

* Empty commit

* Empty commit
2024-10-17 16:56:50 +02:00
Andres Martinez Gotor 235f7db967 Add query migration handlers (#93735) 2024-10-14 09:29:44 +02:00
Giuseppe Guerra 0db65d229e Plugins: Add Subresource Integrity checks (#93024)
* Plugins: Pass hashes for SRI to frontend

* Add SRI hashes to frontendsettings DTOs

* Add docstring

* TestSriHashes

* Fix typo

* Changed SriHashes to ModuleHash

* update loader_test compareOpts

* update ModuleHash error message

* Add TestModuleHash/no_module.js

* Add omitEmpty to moduleHash

* Add ModuleHash to api/plugins/${pluginId}/settings

* moved ModuleHash field

* feat(plugins): add moduleHash to bootData and plugin types

* feat(plugins): if moduleHash is available apply it to systemjs importmap

* Calculate ModuleHash for CDN provisioned plugins

* Add ModuleHash tests for TestCalculate

* adjust test case name

* removed .envrc

* Fix signature verification failing for internal plugins

* fix tests

* Add pluginsFilesystemSriChecks feature togglemk

* renamed FilesystemSriChecksEnabled

* refactor(plugin_loader): prefer extending type declaration over ts-error

* added a couple more tests

* Removed unused features

* Removed unused argument from signature.DefaultCalculator call

* Removed unused argument from bootstrap.DefaultConstructFunc

* Moved ModuleHash to pluginassets service

* update docstring

* lint

* Removed cdn dependency from manifest.Signature

* add tests

* fix extra parameters in tests

* "fix" tests

* removed outdated test

* removed unused cdn dependency in signature.DefaultCalculator

* reduce diff

* Cache returned values

* Add support for deeply nested plugins (more than 1 hierarchy level)

* simplify cache usage

* refactor TestService_ModuleHash_Cache

* removed unused testdata

* re-generate feature toggles

* use version for module hash cache

* Renamed feature toggle to pluginsSriChecks and use it for both cdn and filesystem

* Removed app/types/system-integrity.d.ts

* re-generate feature toggles

* re-generate feature toggles

* feat(plugins): put systemjs integrity hash behind feature flag

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-10-04 14:55:09 +02:00
Levente Balogh 6096f46774 Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429)
* feat: add extensions to the backend plugin model

* feat: update the frontend plugin types

* feat(pluginContext): return a `null` if there is no context found

This will be necessary to understand if a certain hook is running inside a plugin context or not.

* feat: add utility functions for checking extension configs

* tests: fix failing tests due to the type updates

* feat(AddedComponentsRegistry): validate plugin meta-info

* feat(AddedLinksRegistry): validate  meta-info

* feat(ExposedComponentsRegistry): validate meta-info

* feat(usePluginComponent): add meta-info validation

* feat(usePluginComponents): add meta-info validation

* feat(usePluginLinks): add meta-info validation

* fix: only validate meta-info in registries if dev mode is enabled

* tests: add unit tests for the restrictions functionality

* tests: fix Go tests

* fix(tests): revert accidental changes

* fix: run goimports

* fix: api tests

* add nested app so that meta data can bested e2e tested

* refactor(types): extract the ExtensionInfo into a separate type

* refactor(extensions/utils): use Array.prototype.some() instead of .find()

* refactor(usePluginLinks): update warning message

* feat(usePluginExtensions()): validate plugin meta-info

* Wip

* fix(e2e): E2E tests for extensions

* fix(extensions): allow multiple "/" slashes in the extension point id

* fix(extensions/validators): stop validating the plugin id pattern

---------

Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
2024-10-04 08:41:26 +02:00
Andrej Ocenas 5e2ac24890 Sidecar: Add split view and basic APIs for extensions (#91648)
* Add split view and basic APIs to extensions

* Add comments

* Update public/app/AppWrapper.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* Moved the .grafana-app element and deduplicate some code

* Remove the provider variants of usePluginLinks/Components

* Change buildPluginSectionNav

* Update comment

* Use eventBus

* Remove non existent exports

* refactor: use a sidecar service to encapsulate the state

* Don't wrap single app in split wrapper

* Use hook splitter

* Remove inline styles

* Type the style props from useSplitter

* Move the overflow style changes to appWrapper

* Deduplicate some common top level providers

* Move modals

* Move routes wrappers to it's own file

* Use better css and add comments

* Remove query rows app extension point

* Fix test

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2024-09-09 14:45:05 +02:00
Will Browne 2c47d246fc Plugins: Introduce LoadingStrategy for frontend loading logic (#92392)
* do it all

* feat(plugins): move loadingStrategy to ds pluginMeta and add to plugin settings endpoint

* support child plugins and update tests

* use relative path for nested plugins

* feat(plugins): support nested plugins in the plugin loader cache by extracting pluginId from path

* feat(grafana-data): add plugin loading strategy to plugin meta and export

* feat(plugins): pass down loadingStrategy to fe plugin loader

* refactor(plugins): make PluginLoadingStrategy an enum

* feat(plugins): add the loading strategy to the fe plugin loader cache

* feat(plugins): load fe plugin js assets as script tags based on be loadingStrategy

* add more tests

* feat(plugins): add loading strategy to plugin preloader

* feat(plugins): make loadingStrategy a maybe and provide fetch fallback

* test(alerting): update config.apps mocks to include loadingStrategy

* fix format

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-09-09 10:38:35 +01:00
Erik Sundell db0cc24f2b Plugin extensions: Introduce new registry for added links (#92343)
* add added component registry

* fix broken test

* add tests for usePluginComponents hook

* readd expose components

* add type assertion exceptions to betterer results

* use new addedComponent registry in legacy endpoints

* remove unused code

* cleanup

* revert test code

* remove commented code

* initial commit

* refactor sync method and hook

* fix tests

* subscribe to the correct registry

* remove old registry

* cleanup types

* add use usePluginLinks hook

* add more tests

* fix import order

* fix typo

* fix and temporarly skip failing tests

* wip

* add hook tests

* add more tests

* remove old hook

* fix versioning

* add version to all extension point ids

* remove cleanup

* remove unused imports

* revert touched file

* fix test

* test: remove hook creation

* catch init error

* send error to faro

* fix broken hook

* comment out call hook initialization

* use the right import ofr isString

* remove unused import

* remove registryState type

* pr feedback

* Update public/app/features/plugins/extensions/validators.test.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* Update public/app/features/plugins/extensions/validators.test.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* remove no longer relevant comment

* fix broken tests

* Fixed test to verify that the memotization works properly.

* simplify hooks

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2024-08-30 10:09:01 +02:00
Erik Sundell b648ce3acf Plugin extensions: Introduce new registry for added components (#91877)
* add added component registry

* fix broken test

* add tests for usePluginComponents hook

* readd expose components

* add type assertion exceptions to betterer results

* use new addedComponent registry in legacy endpoints

* remove unused code

* cleanup

* revert test code

* remove commented code

* wrap in try catch

* pr feedback
2024-08-27 11:14:04 +02:00
Agnès Toulet 79abc0cf1d Runtime: Make dashboardSceneSolo flag updatable at runtime (#92290)
Runtime: Make dashboardSceneSolo flag updatable at runtimeuntime
2024-08-26 17:12:01 +02:00
Sven Grossmann ec857e1de9 Loki: Add dashboard and panel names as headers (#92096)
* feat(nameHeaders): add feature flag

* add safe parsing of headers

* use headers in loki datasource

* Loki: add option to pass headers to Loki

* Loki: add datasource tests for dashboard names

* cleanup

* DataSourceWithBackend: add test

* rename to `sanitizeHeader`

* Loki: add condition when to add headers

* Loki: add e2e tests

* Loki: change test name
2024-08-22 21:30:43 +02:00
Andres Martinez Gotor 44290ddf32 Adapt plugin page to preinstalled plugins (#91874) 2024-08-14 17:04:59 +02:00
Leonor Oliveira d52d04b6d8 Revert "Use dw dynamic config" (#91846)
Revert "Use dw dynamic config (#91222)"

This reverts commit 0258842f87.
2024-08-13 17:24:26 +02:00
Leonor Oliveira 0258842f87 Use dw dynamic config (#91222)
* Remove kubernetesPlaylists feature_toggle

* Remove unified_storage_mode

* Remove double import

* Regenerate feature-toggles

* Read from config instead from feature_toggle

* cover scenario for when unified storage is not defined
2024-08-13 10:03:28 +02:00
Josh Hunt e55b438f14 E2C: Reduce UI poll interval and make configurable (#91386)
* E2C: Reduce UI poll interval and make configurable

* fix default
2024-08-02 10:46:41 +01:00
Andrej Ocenas 04d8f0f063 Runtime: Add provider and access hook for location service (#90759) 2024-08-01 15:59:20 +02:00
Tobias Skarhed e8c30c86f0 Frontend: Support tracing with Faro (#91237)
Move code from previous PR
2024-07-31 15:13:05 +02:00