DashboardModel - Add fallback for variable current value fallback (#91833)
* add variable current value fallback when null
* refactor to avoid loosing reference
(cherry picked from commit 7c8184d5bf)
Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
Capitalized list items under "With Explore Metrics, you can:" (#91879)
capitalised list items under "With Explore Metrics, you can:"
(cherry picked from commit 62abaea8f5)
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
* Update changelog
* Update version to 11.0.3
* fix changelog
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
OpenTSDB: Fix data frame construction (#90991)
* Update type and frame construction
* Update tests
* Keep dataField name as value
(cherry picked from commit 06509712ec)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
AzureMonitor: Add authproxy as supported user auth method (#91754)
Add authproxy as supported user auth method
(cherry picked from commit d52626be3f)
# Conflicts:
# public/app/plugins/datasource/azuremonitor/components/QueryEditor/QueryEditor.tsx
TemplateSrv: Backportable version of 90808 (#90833)
TemplateSrv: Backportable version of 90808 (#90816)
* TemplateSrv: Add test case for SafeSerializableSceneObject
* Update dashboard data source to use scoped vars scene object valueOf
* 11.1.x Backportable version of 90808
* lint
(cherry picked from commit 2e5b41cbcb)
Alerting: Fix persisting result fingerprint that is used by recovery threshold (#91224)
(cherry picked from commit 537f1fb857)
# Conflicts:
# pkg/services/ngalert/state/persister_sync.go
Snapshots: Fix panic when snapshot_remove_expired is true (#91232)
(cherry picked from commit bb5d2c83ef)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
CI: set dry-run if `release/dry-run` label is set on `release-comms.yml` and set latest on github release if `latest` is set (#91089)
set dry-run and set latest on github release
(cherry picked from commit 4e84234424)
Update version of docker-compose.yaml (#90539)
* Update version of docker-compose.yaml
* Update index.md
(cherry picked from commit 3c405e8b1f)
Co-authored-by: lnnt <770954908@qq.com>
CI: fix changelog push error (#90971)
* add --set-upstream origin to release-pr workflow git push
* use a different branch name for the changelog workflow
* disable backport support for now
* remove backport condition
(cherry picked from commit 089a5710b6)
Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
CI: changelog boolean type (#90948)
* bool -> boolean
* add missing type keys
* provide secrets in release-pr
* use permissions and built-in github token
(cherry picked from commit 14396048d7)
Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
Dashboards: Change datemath parse logic so parsed dates always take timezone into account (#88182)
* Dashboards: Change datemath parse logic so parsed dates always take timezone into account
(cherry picked from commit 2e0175c3eb)
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
CI: For every release PR created, also push a changelog PR to main (#90698)
For every release PR created, also push a changelog PR to main
(cherry picked from commit 9232db2416)
Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
Chore: update changelog workflow (#90608)
* try integrating
* pass tags
* change section order
* use better terminology
* one more attempt
* keep delimiters
* attempt to patch changelog
* quotes, bash quotes...
* use proper content file
* parens around date
* time for a pr
* first checkout, then create user
* add latest input
* git push
* use square brackets
* formatting
* update release-pr
* fix typo
* try sparse checkout
* fetch depth zero
* clean up after changelog generator
(cherry picked from commit f8b092aba6)
CI: replace publish image step with a much simpler one that supports LATEST (#90498)
* replace publish image step with a much simpler one that supports LATEST
(cherry picked from commit 6a2a6b0fbc)
highlighting the part of the Grafana enterprise section so easir for … (#90177)
highlighting the part of the Grafana enterprise section so easir for users to find it
(cherry picked from commit 677d2a8b70)
Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
CI: fix release pr condition (#90299)
* Release comms should only run when the source PR is
* Fix release-comms workflow condition
(cherry picked from commit a28db90dd5)
Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
* Azure: Fix default subscription setting (#90185)
* Ensure default subscription is set
* Include some info for when the default subscription is required
* Rename settings mock
- Add mockDatasourceSettings function
* Add MonitorConfig test
* Revert "Rename settings mock"
- Avoid issues when backporting
* Remove description
* Remove required field
* Remove unused import
(cherry picked from commit bba26f8e13)
* Add react
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
CI: Sync branch and tag after release (#89967)
* Added `workflow_call` event to allow other workflows to invoke the "Create or update GitHub release"
* Added `dry_run` to `github-release.yml`
* Added `latest` to `release-pr.yml` which will cause the release PR to add a `release/latest` label.
* Removed unnecessary github app creation from github-release workflow and just used permissions.
(cherry picked from commit 63e715f6a9)
Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
Alerting: Skip loading alert rules for dashboards when disabled (#89361)
(cherry picked from commit 781e394118)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Notifications: Do not log email address in error message (#89314)
Do not log email address in error message
(cherry picked from commit c2c30c25ed)
Co-authored-by: William Wernert <william.wernert@grafana.com>
Analytics: Fix ApplicationInsights integration (#89299)
change ApplicationInsights backend to use SystemJS to load
(cherry picked from commit 7bb883e375)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Use ref URIs with the reference style links (#89204)
* Use ref URIs with the reference style links
If I remember correctly, the UI needs reference style links so it can substitute its own link destinations.
ref URIs work both inline and as the destination for reference style links.
* Remove unused ref URI
* Remove unused Data frames link
---------
(cherry picked from commit f5468542ba)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Alerting: Fix rule storage to filter by group names using case-sensitive comparison (#88992)
* add test for the bug
* remove unused struct
* update db store to post process filters by group using go-lang's case-sensitive string comparison
--------
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
# Conflicts:
# pkg/services/ngalert/store/alert_rule.go
# pkg/services/ngalert/store/alert_rule_test.go
Added Grafana Play Links to Panel visualization docs (#88995)
* Update index.md on Node panels to Grafana Play link
* Update index.md add Traces docs link to Grafana Play
* Update index.md News documentation link to Grafana Play
* Update index.md Alert list documentation link to Grafana Play
* Update index.md Alert list fixed missing link
* Update index.md Fixed title
* Update index.md Trying code fix
* Ran prettier command
* Matched link text to dashboard titles
* Replaced URL with ref URI key
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 404617b33d)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
RBAC: List only the folders that the user has access to (#88599)
only check folder permissions when listing folders
(cherry picked from commit 095ca66d9f)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
DashboardScene: Fixes lack of re-render when updating field override properties (#88796)
* DashboardScene: Fixes lack of re-render when updating field override properties
* Added unit test
(cherry picked from commit db25886f9c)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Transformations: Keep original `field.labels.name` when joining frames (#88873)
(cherry picked from commit 89a0bec208)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
User: add second migration for lowercasing login/email of users (#88915)
(cherry picked from commit 39bd13f877)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
Chore: Fix test to retry fetching provisioned dashboard until is in place (#85408)
Retry fetching provisioned dashboard until is in place
(cherry picked from commit 88be09420c)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
added youtube video link (#88901)
* added youtube video link
* Update index.md
(cherry picked from commit 5095ea84b2)
Co-authored-by: Usman Ahmad <usman.ahmad@grafana.com>
DashboardScene: Fixes issue with some query editors to not adapt to width changes (#88718)
DashboardScene: Fixes issue with panel editor causing moncao query editors to not adapt to width changes
(cherry picked from commit e735573852)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Update proxy/index.md (#88261)
* Update index.md
Specify proxy support is for SOCKS5 in Title. So it is clear this is not for TCP or HTTP proxy
* update title to match header
(cherry picked from commit 36c66e3e94)
Co-authored-by: Kyle Hounslow <7102778+kylehounslow@users.noreply.github.com>
Docs: add pinning of terraform for migration (#88528)
* Docs: update with terraform version
* added the terraform version pinning
* formatting
* Update docs/sources/administration/api-keys/index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* formatting
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 221e036233)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
LibraryPanels/RBAC: Ignore old folder permission check when deleting/patching lib panel (#88422)
* LibraryPanels/RBAC: Ignore old folder permission check when deleting lib panel
* Same for patching
(cherry picked from commit 8f45003192)
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Dashboards: Correctly display Admin access to dashboards in the UI (#88439)
* include folder wildcard scope in dash permission inheritance
* Update pkg/services/accesscontrol/ossaccesscontrol/permissions_services.go
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
(cherry picked from commit 1c2ae2c72d)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Docs: Rename variables pages (#87844)
* Renamed Manage variables page to Add variables
* Renamed Inspect variables page to Manage and inspect variables
* Updated H1 on Add variables
* Moved Manage variables content to from Add varibles page to Manage and inspect variables page and updated text to fit
* Updated link style to ref URIs in Manage and inspect variables
(cherry picked from commit 197ce3042d)
Alerting/Annotations: Return nothing from historian store if filtering by tags and matchAny is false (#85488)
* Return nothing from historian store if filtering by tag
(cherry picked from commit cad8190a91)
Co-authored-by: William Wernert <william.wernert@grafana.com>
DashboardScene: Re-enabled skipped scenes e2e tests due to bugs (#87723)
* enabled skipped tests
* adjust to wait for loading indicator
* adjust typos
* adjust e2e workflow for test PR run
* restore workflow
* adjust workflow for test run
* restore workflow to sheduled runs
(cherry picked from commit e324a346f6)
Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
* Alerting: Fix scheduler to sort rules before evaluation (#88006)
sort rules scheduled for evaluation to make sure that the order is stable between evaluations.
This is especially important in HA mode.
(cherry picked from commit 05d6813a09)
* use old generators
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
CloudMonitoring: Fix query type selection issue (#87990)
* Use deepEqual to ensure migratedQuery is only returned when query is unchanged
* Add selectors for query editors
* Add more tests for query editor component
* Clarifying comments
* Fix how state is set
* Simplify query editor loading and migration
(cherry picked from commit 58d382e5dd)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Azure: Fix for username assertion (#87853)
Fix for username assertion
- Allow setting username assertion in INI
- Correctly set the azsettings value
- Update tests
(cherry picked from commit edae5fc791)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Docs: public dashboards fixes (#87870)
* Made minor style fixes
* Converted docs ref links to ref URIs and updated note style to admonitions
* Fixed link text and version syntax
(cherry picked from commit 80e2af5d25)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Alerting: use logger with same context within rule scheduling loop (#87934)
(cherry picked from commit f410c7fca1)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
DashboardScene: Fixes checkbox orienation in save forms (#86408)
(cherry picked from commit 1d513f66b8)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
PublicDashboards: Public dashboard refreshed when access token changes (#87913)
(cherry picked from commit a6d64c6ed5)
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
Explore: lookup datasource by name when present in legacy URLs (#85222)
* [explore] lookup datasource by name when present in legacy compact URLs
* update unit test
* prettier fix
---------
Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
(cherry picked from commit 867d36fe59)
Co-authored-by: Christian Briones <cwbriones@gmail.com>
Docs: Adds video embed for the Understanding Dashboards youtube video (#87449)
* Adds video embed for the Understanding Dashboards youtube video
* Moved video to Use dashboards page
---------
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
(cherry picked from commit 1e2c58fc80)
Co-authored-by: Tom Glenn <289945+tomglenn@users.noreply.github.com>
DashboardScene: Default `hoverHeaderOffset` to 0 (#87561)
* remove hoverHeaderOffsetBehavior and force offset to 0
* force headerHoverOffset in addPanel flow
(cherry picked from commit 5f147644d4)
Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
Alerting: Do not store series values from past evaluations in state manager for no reason (#87525)
Do not store previous execution results on states
(cherry picked from commit a6a9ab4008)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
"Release: Updated versions in package to 11.0.1"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* AuthN: Fix signout redirect url (#87631)
* Add missing return
* Use sign out redirect url from auth config if configured
* remove option from auth.jwt that is not used
(cherry picked from commit 0f3080ecb8)
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
CloudMonitoring: Improve legacy query migrations (#86069)
* Match backend and correctly migrate metricType
Update tests
* Ensure project is migrated or set if not defined
* Improve migrations logic
(cherry picked from commit 95667f6a53)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Azure data sources: Set selected config type before save (#87481)
* set selected config type before save
* use effect once and move in mssql
* add to prom
* Update ConfigurationEditor.tsx
* Update ConfigurationEditor.tsx
* Delete public/app/plugins/datasource/mssql/configuration/ConfigurationEditor.tsx
* omadsfdsa
* remove unneeded assign
(cherry picked from commit 5e19aa7bd1)
Co-authored-by: Andrew Hackmann <5140848+bossinc@users.noreply.github.com>
Chore: Add login protection when user is trying different uppercase letters (#87588)
* add login protection when the user is trying different uppercase letters
(cherry picked from commit cd98aaf89b)
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Chore: Implement GetOAuthProviders in FakeSocialService (#87590)
Implement GetOAuthProviders in FakeSocialService
(cherry picked from commit 896882b004)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Alerting: Add two sets of provisioning actions for rules and notifications (#87149)
(cherry picked from commit 356a29592b)
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
alerting/webhook doc update (#87492)
* alerting/webhook doc update
* text formath
* fixed admonition
* typo
* headings
* formatted headings and prettified it all
* one more heading
(cherry picked from commit d83cbe4d85)
DashboardDataSource: Fixes issue where sometimes untransformed data could be returned (#87433)
* DashboardDataSource: always return a result key
* Update
* Update
(cherry picked from commit e7c39f18be)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Provisioning: Look up provisioned folders by UID when possible (#87465)
look up provisioned folders by uid when possible
(cherry picked from commit 1884b03511)
Co-authored-by: Dan Cech <dcech@grafana.com>
Alerting: Also fix HCL field name for MuteTimeIntervals (#87079)
* Correct HCL field name for MuteTimeIntervals
* Update test
(cherry picked from commit 93519f70ca)
Co-authored-by: William Wernert <william.wernert@grafana.com>
datatrails: reloaded trail bugs related to no selected metric (#87344)
* fix: reloaded scene first step topScene
The top scene was not being initialized
when reloading trails, causing it to use
the top scene of whatever was selected
previously.
* fix: select new metric node not reloading right
On reloading trails, any metric node that
was 'green' with a undefined metric due to
clicking on the "select new metric" button,
was reloading with the metric of the step
directly before it (in index order).
(cherry picked from commit e9b932c8f6)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
datatrails: only fetch metrics metadata when using the language provider, avoid redundant fetch of metric names (#87067)
* fix: only fetch metrics metadata, not metric names
(cherry picked from commit f93c330b66)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
scenes: update to v4.14.0: opt-in to `useQueriesAsFilterForOptions` (#87244)
* fix: opt-in to `useQueriesAsFilterForOptions`
With updating the scenes library, dashboards must now explicitly
opt in to `useQueriesAsFilterForOptions`.
(cherry picked from commit 5b424ed6bb)
datatrails: recently loaded trails modify parent variables when making new steps (#87284)
* fix: loaded trails modified parent var on new step
This ensures that recently loaded trails won't have variable changes
which create new steps modify the previous step.
(cherry picked from commit 046eedaa4c)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
DashboardScene: Measure and report scene load time (#86267)
* measure scene load time
* Fix tests that fail due to performance not being the proper global performance object in jest
* add isScene parameter to tracking test
(cherry picked from commit e7f40493e4)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
fix: sql expressions - sql parser table name case (#87196)
* fix: sql parser table name case
(cherry picked from commit 4fd2cb6014)
Co-authored-by: Scott Lepper <scott.lepper@gmail.com>
InfluxDB: Support cardinality queries with backend mode (#87264)
support cardinality queries
(cherry picked from commit 3317691615)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Docs: Fix link to values.yaml file (#87014)
Fix link to values.yaml file
Linking to the "edit" URL fails if the reader doesn't have write access
to the repo: they'll be prompted to fork the repo or to sign in to
GitHub. Instead link to the "blob" URL which is accessible to all
readers.
(cherry picked from commit 64d5440c5a)
Co-authored-by: Nicholas P. Cole <nicholas@nicholaspcole.com>
DashboardScenes: Pin go version to go.mod file in scenes e2e workflow (#87238)
* adjust workflow to use correct go version
* finalise wokflow adjustments
(cherry picked from commit 838e36bd99)
Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
Dashboard Scene: Chore - Add missing unit test to PanelDataQueryTab (#87139)
* Create basic structure PanelDataQueriesTab unit test
* Add more test cases to the PanelDataQueriesTab test
* Update public/app/features/dashboard-scene/panel-edit/VizPanelManager.tsx
(cherry picked from commit eae1cafebd)
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
DashboardScene: adjust lib panel as a dashboard datasource refresh logic (#87120)
* activate library viz panel and adjust id extractor
* revert parts that are fixed in #87125
* clean up after activation handler
(cherry picked from commit afbd02c4ec)
Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
Dashboard Scene - Variable Fix: cancel out margin-bottom of placeholder in loading state (#87107)
fix: cancel out margin-bottom of placeholder in loading state
(cherry picked from commit 6dbc44920c)
Co-authored-by: Tim Mulqueen <Multimo@users.noreply.github.com>
Auth: Force lowercase login/email for users (#86359)
* [WIP]: Force lowercase login/email for user CRUD
* warn and remove use of userCaseInsensitiveLogin check
* remove log warning
* reimplementation of the caseinsensitive
* need to decide if we want the conflict check or not
* remvoved the tests for conflict user by getEmail, getLogin
* added tests for user lowercase migration
* wip: emails next
* tests for email lowercasing
* review comments
* optimized login and email lookup before migrating
(cherry picked from commit e394e16073)
RBAC: Do not set permissions on data sources with wildcard UID in OSS (#87220)
do not set permissions on DS with wildcard UID
(cherry picked from commit 28dd1ddd8e)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Docs: Add data links shared content (#86893)
* Added data link options shared file and added file to relevant visualizations
* Updated some text and links in canvas
* Added shared file to xy chart
* Fixed list of visualizations using shared file
* Removed unneeded level offset
* Removed future tense
* Update data links description
* Updated wording
* Removed redundant sentence
(cherry picked from commit 1ef0e240e9)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
DashboardScene: Fixes issue referring to library panel in dashboard data source (#87125)
* DashboardScene: Fixes issue using a library panel as source for dashboard data source
* Added test
(cherry picked from commit 4034a26972)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
DashboardScene: Fixes issue with panel edit options pane and data (#87161)
(cherry picked from commit 7a5c17d613)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Docs: add legends shared content (#86814)
* Updated shared file name and added missing options
* Added legend options 1 shared file to relevant visualizations
* Updated shared file name and corrected options
* Added legend options 2 shared file to relevant visualizations
* Updated legend content for heatmap and pie chart
* Added where shared legend files are used in each file
* Moved intro text out of viz pages into legend options shared files
* Added reasoning to front matter of shared files
* Added reasoning to front matter of shared files
* Fixed version interpolation and added cloud links
* Updated links in shared files
(cherry picked from commit dad3069594)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Data source: Maintain the default data source permissions when switching from unlicensed to licensed Grafana (#87119)
set managed data source permissions upon resource creation for unlicensed Grafana, remove them on deletion
(cherry picked from commit 5e060d2d99)
* remove code for older version
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Alerting: Use expected field name for receiver in HCL export (#87065)
* Use expected field name for receiver in hcl
Terraform provider expects `contact_point` instead of `receiver` in
notification settings on a rule.
(cherry picked from commit 70ff229bed)
Co-authored-by: William Wernert <william.wernert@grafana.com>
Alerting: Improve error when receiver or time interval used by rule is deleted (#86865)
* Alerting: Improve error when receiver used by rule is deleted
* Remove RuleUID from public error and data
* Improve fallback error in am config post
* Refactor to expand to time intervals
* Fix message on unchecked errors to be same as before
(cherry picked from commit 3397e8bf09)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Docs: Update Explore Metrics doc based on feedback (#87062)
* changed from private preview to public preview
* commented out pivot to logs and traces
(cherry picked from commit 3845033308)
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
Canvas: Connection original persistence check (#86476)
* Canvas: Connection original persistence check
* modify current connection state directly instead of copying and needing to call "onChange"
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 7590f4afe1)
Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
DateTimePicker: Alternate timezones now behave correctly (#86750)
* Add failing tests for timezone handling
* Fix `DateTimePicker.tsx` timezone handling
- Resolves `onBlur` issue
- Resolve Calendar and TimeOfDay issues
- Update test to cover different timezone
* Handle `console.warn` in test
* Handle `console.warn` in test #2
* Better handling of invalid date
When parsing date string with `dateTime`, adding a second `formatInput` aids in both parsing the actual string and avoid `console.warn` when `moment` reverts to be using `Date`.
* add more test cases
* Ash/proposed changes (#86854)
* simplify
* only need this change
* formatting
* const > let
* add test to ensure calendar is always showing the matching day
* separate state
* undo story changes
* update util function comments
* fix for selecting date in the calendar
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
(cherry picked from commit 7fab894e9b)
Co-authored-by: Thomas Wikman <thomas@w1kman.se>
Dashboard scenes: Fix min interval not saving (#86962)
* Fix min interval not saving
* Add tests
* Fix test
(cherry picked from commit fdc1023586)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Docs: Add value mappings shared content (#86996)
* Added value mappings shared file
* Fixed name of file
* Fixed list of visualizations using shared file
* Added shared file to visualizations
* Updated shared file and added to canvas
* Updated shared file intro text
* Removed future tense
(cherry picked from commit d5fde99c6d)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Dasbhoard scenes: Don't return null when uids are not matching for new dashboards (#86998)
Don't return null when uids not matching for new dashboards
(cherry picked from commit c3cde17b33)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
datatrails: fix bookmark/recent trail detection, prevent duplications, save trail on browser close/reload (#85677)
* fix: persistence trail detection, save on unload
- fixes detection on bookmarks and recents when current step isn't final
- now save current trail on browser close or reload (unload)
- refresh page or return to URL that corresponds to a recent trail will
resume that trail instead of creating a duplicate recent trail
- do not create a recent trail out of an empty starting trail
* fix: bookmarks status after making new step
- clone bookmark trail state to prevent it from being changed by user
- re-evaluate bookmark status after creating new step
(cherry picked from commit 9af4607e78)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
DataTrails: Exploring alternatives to history issues (#86843)
* DataTrails: Exploring alternatives to history issues
* incorporated unit tests from #86817 and #86741
---------
Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>
(cherry picked from commit c965c27994)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Tooltips: Ensure new viz tooltips are visible within modals (alternative solution) (#86716)
fix: ensure new viz tooltips are visible within modals
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit ff761bb7d6)
Canvas: Fix division by zero (#85443)
* Canvas: Fix division by zero
* Fix last add vertex control
* Apply fix to existing vertices
* Apply deltas to temporary paths
* Persist original source and target coorindates
* Add follow up TODO
* Update connection svg to handle originals
* Get rid of minimum constraints for deltas
* Apply persist coordinate system to vertex handlers
* Consolidate and rename selected value
* Update connection arcs to use new coordinates
* fix editor crashing with scenes
---------
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
(cherry picked from commit ed8eacbc7e)
Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>
Alerting: Fix instances link when served from subpath (#86432)
Fix instances link when served from subpath
(cherry picked from commit 9614126cb7)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Table Panel: Fix images not showing on hover with multiple data links (#86732)
* Fix issue
* Prettier
* codeincarnate/image-table-fix/ lint
* Make linter happy by using div with role of button + improve a11y
---------
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
(cherry picked from commit 37d086d49c)
Co-authored-by: Kyle Cunningham <codeincarnate@users.noreply.github.com>
Docs: add tooltips shared content (#86553)
* Replaced shared tooltips file with text in xy chart
* Added tooltip info for heatmap
* Updated tooltip shared files, renamed one file, updated configure tooltips
* updated tooltip shared file paths
* Added tooltips shared files in relevant visualizations
* Added where shared file is used in tooltip-options-1
* Added where shared file is used in tooltip-options-2
* Added intro text and justifications to shared files
* Removed tooltips intro text from visualizations with shared files
* Added names of files to comments in shared files
(cherry picked from commit 0e81fdffbe)
fix: datatrail link to "open in explore" prefix with `config.appSubUrl` (#86375)
* fix: datatrail link to explore needs appSubUrl
* fix: use `appUrl` when creating URL for sharing
(cherry picked from commit 2ed7eecf2d)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
datatrails: interpolate adhoc variables and datasource variables when opening "explore metrics" from dashboard panels (#86252)
* fix: interpolate "explore metrics" from panels
---------
Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>
* fix: remove support for legacy dashboard
- simplify code
- take advantage of scenes dashboard async and datasource api object
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
(cherry picked from commit 53ead9904d)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
Add onClick behaviour to links to new tooltips (#84974)
* Add onClick behaviour to new tooltips
* Prefer using DataLink component
(cherry picked from commit 9e54c450d7)
Co-authored-by: Javier Ruiz <javiruiz01@users.noreply.github.com>
SQLStore: Disable redundant create and drop unique index migrations on dashboard table (#86857)
SQLStore: Disable create and drop unique index migrations
(cherry picked from commit a5a3ee9fa3)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
LogContext: Fix structured metadata labels being added as stream selectors (#86825)
* LogContext: Fix structured metadata labels being added as stream selectors
* use row index
(cherry picked from commit a8424f4831)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Dashboard: Migration [Panel Edit] Missing Query Editor when datasource is not found (#86789)
* Return default datasource if datasource is not found
* Set query runner datasource state to default, else refreshing will not work
(cherry picked from commit de589b98c7)
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
TimeOfDayPicker: Fix text colours in light mode (#86771)
fix text colours in light mode
(cherry picked from commit a1321d17ca)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Dashboards: Check if dashboard.meta is undefined, if undefined handle redirect in dashboard scene. (#86674)
dashboard meta is not available if the dashboard response is a redirect
(cherry picked from commit 12771e49fc)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Dashboard scenes: fix textbox value only set to first character of default value (#86595)
Dashboard scene: fix textbox value only set to first character in default value
(cherry picked from commit dccad4e081)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
XYChart2: Remove common series name from tooltip items (#86739)
(cherry picked from commit 7754d0d4dc)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Alerting: Take receivers into account when custom grouping Alertmanager groups (#86127)
* Take receiver into account when custom grouping Alertmanager alert groups
* Fix and add tests
(cherry picked from commit acd3e83c1c)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
LDAP: Fix listing all non-matching groups (#86682)
Fix getRowId in LdapUserGroups to list all non-matching groups
(cherry picked from commit 6ab9dcde8d)
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Alerting: Fix max_alerts field handling (#86651)
Fix max_alerts field parsing
(cherry picked from commit 1b930c341d)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Change folder breadcrumb on folder change in general settings (#86342)
* Change folder breadcrumb on folder change in general settings
* tests and refactor
* refactor to fix broken tests
* fix test
(cherry picked from commit 60e6dd56bf)
Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
MSSQL: Add `SQL_VARIANT` converter and update test (#85823)
Add SQL_VARIANT converter and update test
(cherry picked from commit 420067a7e1)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Docs: Update example docs for `rename by regex` (#86627)
* baldm0mma/update_regex/ update example docs
* baldm0mma/ push ts
* baldm0mma/update_regex with new exmaples
* baldm0mma/update_regex/ update images
* baldm0mma/regex_update/ update text
(cherry picked from commit ad679c62c6)
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
IntervalVariableEditor: Do not add current value as interval prop (#86446)
(cherry picked from commit 65afe90124)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
CommandPalette: Fix keyboard shortcut alignment (#86540)
* use full typography properties
* use Text component
(cherry picked from commit 63427ccd98)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
EmptyState: Set a max width on the empty state component (#86569)
set a max width on the empty state component
(cherry picked from commit 21588ce7e2)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
InfluxDB: Fix interpolating field keys in influxql (#86401)
* interpolate field keys
* use scopedVars
(cherry picked from commit 842c8dd206)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Alerting: Fix simplified routing group by override (#86552)
* Alerting: Fix simplified routing custom group by override
Custom group by overrides for simplified routing were missing required fields
GroupBy and GroupByAll normally set during upstream Route validation.
This fix ensures those missing fields are applied to the generated routes.
* Inline GroupBy and GroupByAll initialization instead of normalize after
(cherry picked from commit 71445002b7)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Docs: Add GeoMaps YouTube Video (#86472)
* Update index.md on GeoMaps adding YouTube Video
Added the GeoMap YouTube video to the documentation
* Update docs/sources/panels-visualizations/visualizations/geomap/index.md
Totally agree, I tend to use those words and not realize :P
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 0d11f9b2f4)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
InfluxDB: Fix interpolation for floating point number values (#86396)
return number as it is
(cherry picked from commit 635d85db7a)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Transforms: Fix 'Filter data by values' removing rows in unrelated frames (#86087)
(cherry picked from commit 9682022b1d)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Alerting: Fix simplified routes '...' groupBy creating invalid routes (#86006)
* Alerting: Fix simplified routes '...' groupBy creating invalid routes
There were a few ways to go about this fix:
1. Modifying our copy of upstream validation to allow this
2. Modify our notification settings validation to prevent this
3. Normalize group by on save
4. Normalized group by on generate
Option 4. was chosen as the others have a mix of the following cons:
- Generated routes risk being incompatible with upstream/remote AM
- Awkward FE UX when using '...'
- Rule definition changing after save and potential pitfalls with TF
With option 4. generated routes stay compatible with external/remote AMs, FE
doesn't need to change as we allow mixed '...' and custom label groupBys, and
settings we save to db are the same ones requested.
In addition, it has the slight benefit of allowing us to hide the internal
implementation details of `alertname, grafana_folder` from the user in the
future, since we don't need to send them with every FE or TF request.
* Safer use of DefaultNotificationSettingsGroupBy
* Fix missed API tests
(cherry picked from commit 533bed6d94)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Docs: add panels & visualizations landing page (#86073)
* Added landing page front structure
* Added description and overview content and card titles
* Added placeholder tile and work notes
* Finalized text and updated link type
* Updated panel overview tile link
(cherry picked from commit 7c441011f2)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
CloudMigrations: Add instance metadata to auth token (#85381)
* update how tokens are passed around
* rename structs
(cherry picked from commit 5a5f76ae0a)
Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
Auth: add Dex example to generic OAuth2 documentation (#84744)
This patch adds an example configuration for setting up generic OAuth2
authentication using [Dex IdP](https://dexidp.io/).
(cherry picked from commit e9969e3542)
Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com>
Graphite: second function as another function argument parsing error fix (#85224)
* update language around query editor parsing issues
* add special handling for second function arguments in divideSeriesLists
* additional check for first argument as series(string) and not a function
(cherry picked from commit 3c28a3d494)
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
JWT: Find login and email claims with JMESPATH (#85305)
* add function to static function to static service
* find email and login claims with jmespath
* rename configuration files
* Replace JWTClaims struct for map
* check for subclaims error
(cherry picked from commit e4250a72db)
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Explore: Nested Content Outline (#80688)
* indentation levels
* Highlight parent section when child is selected
* Fix context, add rotation to toggle button
* Merge single child logic; fix styling
* Fix collapsed logic, make elipsis work, reorganize for better readability;
* Add connector
* Tooltip placement
* Update tests so they test components the same way users would interact with them
* Clean up indendation levels
* Support collapsing logic for multiple section; highlight all items in a section of an active child - parent is active only when section is collapsed and child inside of it is active
* Simplify making ellipsis work
* Show tooltip if the text overflows in expanded mode
* The whole button container should have same background when section is expanded in mini view
* Fix a bug where root items were not being sorted by document position
* Update query order when query rows are changed through dragging and dropping
* Fix the issue where chaning the title of a query row would remove the query
(cherry picked from commit 649c456eab)
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
User: email verification completion (#85259)
* TempUser: Include InvitedById in TempUserDTO
* Extract email verfication completion flow to service
(cherry picked from commit 73e426b081)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Panel: Description display event is reported multiple times (#85283)
(cherry picked from commit 233f119037)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Revert "Update ephemeral instances workflow to get version from package.json" (#85347)
Revert "Update ephemeral instances workflow to get version from package.json …"
This reverts commit dda1531952.
(cherry picked from commit 29c76b98d4)
Co-authored-by: Leonor Oliveira <9090754+leonorfmartins@users.noreply.github.com>
Storage: GuaranteedUpdate fix & other improvements (#85206)
make GuaranteedUpdate work when ignoring not found errors, increase poll frequency, fix Delete
(cherry picked from commit ef26fe95dc)
Co-authored-by: Dan Cech <dcech@grafana.com>
AuthN: Add IsAuthenticatedBy to identity interface and replace checks (#85262)
Add IsAuthenticatedBy to identity interface and replace checks
(cherry picked from commit 152cb47692)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* EmptyState: use `not-found` empty state variant everywhere in core (#85007)
* use EmptyState component everywhere in core
* remove GrotNotFound core component
* update unit tests
* search -> not-found
* fix 3 more
(cherry picked from commit 7ad2ec9665)
* EmptyState: Provide custom messages for existing empty states (#86021)
provide custom messages for existing empty states
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Dashboard scenes: Export isExpressionReference to be accessible from scenes (#85228)
Export isExpressionRef to be accessible from scenes
(cherry picked from commit b7156ef2c2)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Chore: InfluxQL stream parser improvements (#85041)
* don't iterate over first column as it is a time column already
* don't iterate over first column as it was handled earlier
* add more flexibility to run the commands
* Update pkg/tsdb/influxdb/influxql/converter/converter.go
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
---------
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
(cherry picked from commit fec7765111)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Alerting: Reduce set of fields that could trigger alert state change (#83496)
We want to avoid too much change of alert state based on change on
alert's fields. For that we ignore some fields from the diff.
(cherry picked from commit 6f38ac6615)
Co-authored-by: Benoit Tigeot <benoittgt@users.noreply.github.com>
Auth: Improve org role sync debugging (#85146)
add login to the context of the logger
(cherry picked from commit da40158fed)
Co-authored-by: Jo <joao.guerreiro@grafana.com>
docs: add annotations play link (#86206)
* docs: add annotations play link
* PR feedback
(cherry picked from commit c9350a25c4)
Co-authored-by: David Allen <david.allen@grafana.com>
docs: add thresholds play link (#86212)
* docs: add thresholds play link
* PR review
(cherry picked from commit f50e29e004)
Co-authored-by: David Allen <david.allen@grafana.com>
docs: query data/relative time range override play link (#86213)
(cherry picked from commit c450d61d32)
Co-authored-by: David Allen <david.allen@grafana.com>
Nodegraph: Fix issue with rendering single node (#84930)
Fix for single node graph case
(cherry picked from commit aba65747c9)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Tooltip / Toggletip content link styling: Remove global a element selector inside tooltips (#84353)
* fix: remove global a tag styles inside tooltips
* corret inside / outside button references in toggletip test
* Remove code and pre styling rules from tooltipUtils
(cherry picked from commit b4ed72f1b6)
Co-authored-by: Chris Bedwell <christopher.bedwell@grafana.com>
Provisioning: Fix regression when dashboardProvisioner is accessed before being initialised (#85011)
* Provisioning: Fix regression when dashboardProvisioner is accessed before being initialized
* Set dashboard provisioner in the provider
(cherry picked from commit 5ebf2d08f6)
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
DataTrails: Fixes home page background issue to make Cards work better (#85055)
* DataTrails: Fixes home page background issue to make Cards work better
* Update DataTrailsHome.tsx
(cherry picked from commit d039a0a485)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Update ephemeral instances workflow to get version from package.json (#85088)
* use the same value for GRAFANA_VERSION and HOSTED_GRAFANA_IMAGE_TAG
* update codeowners for these files
(cherry picked from commit dda1531952)
Co-authored-by: Dafydd <72009875+dafydd-t@users.noreply.github.com>
postgres: improved tests (#84677)
* postgres: tests: better test aligning time-series results
* postgres: add snapshot test for a backward-compat code
(cherry picked from commit c835022861)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Datasources: Add fixed width to name field in config editor (#84970)
add fixed width to name field
(cherry picked from commit 28ecd83987)
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
Alerting: Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy (#85481)
Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy
(cherry picked from commit 5b1498f98f)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
SSO: fix reloading settings when a provider contains empty settings (#85102)
* fix reloading settings when a provider contains empty settings
* do not increment reloadFailures if settings are empty
(cherry picked from commit fad6dc4db1)
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
OAuth: Make sub claim required for generic oauth behind feature toggle (#85065)
* Add feature toggle for sub claims requirement
* OAuth: require valid auth id
* Fix feature toggle description
(cherry picked from commit 2f3a01f79f)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Fix InteractiveTable: React, less hooks rendered than previous render (#85043)
fix: react-hooks error if data length switches from above or below pageSize
(cherry picked from commit d7f739c8e5)
Co-authored-by: Adam Bannach <113929542+abannachGrafana@users.noreply.github.com>
Chore: Vendor wire into pkg/build (#84637)
* vendor latest wire into pkg/build
* use vendored wire in builds
* fix wire import path
* remove wire from bingo
* also support google/wire import
* make prettier happy
* change package in tess
* add debug walk for drone
* add wire_gen in tests
* remove debug walk
* restore imports
(cherry picked from commit 4d4c06b480)
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
samlsettings: api integration (#84300)
* add strategy and tests
* use settings provider service and remove multiple providers strategy
* Move SAML strategy to ssosettings service
* Update codeowners file
* reload from settings provider
* add saml as configurable provider
* Add new SAML strategy
* rename old saml settings interface
* update saml string references
* use OSS license
* validate saml provider depends on license for List
* add tests for list rendering including saml
* change the licensing validation to service init
* replace service struct for provider
(cherry picked from commit fc205db466)
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Alerting: Fix evaluation metrics to not count retries (#85873)
* Change evaluation metrics to only count once per eval, and add new metrics.
* Cosmetic: Move eval total Inc() to orginal place.
(cherry picked from commit ad7f804255)
Co-authored-by: Steve Simpson <steve.simpson@grafana.com>
TimeSeries: Fix series rendering with data links and extra fields (#86007)
(cherry picked from commit 2bedbcf344)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
EmptyState: make "message" a required prop (#86029)
* make "message" a required prop on EmptyState
* run i18n:extract
(cherry picked from commit b3401c802c)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Docs: add Table visualization Play link (#85896)
Docs: add stat visualization Play link
(cherry picked from commit 83438bd231)
Co-authored-by: David Allen <david.allen@grafana.com>
datatrails: ensure breakdown yaxis sync is maintained when layout changes (#85380)
fix: ensure breakdown yaxis sync is maintained when layout changes
(cherry picked from commit 2e1e45bbb1)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
Chore: Fix position for RolePickerMenu being out of bounds (#85604)
* Fix position for RolePickerMenu being out of bounds
* adjust the offset of the role picker menu
(cherry picked from commit 85e66d8edb)
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
InfluxDB: Fix panic when reading concurrency count during influxql health check (#85771)
fix panic when reading concurrency count during influxql health check
(cherry picked from commit 96f49bfaee)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Dashboard scenes: Fix export tab not including variables when exporting externally (#85807)
Fix export tab not including variables when exporting externally
(cherry picked from commit 96abe65fe4)
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Check source panel for updates in Dashboard DS panel (#85655)
* Check source panel for updates in Dashboard DS panel
* Test
* made it better
* cleanup
* cleanup and tests
* fix failing tests
* find the correct dashboard query
* revert mixed check in dashboard behaviour
* Dashboard data source: Return error when used in mixed data source (#85765)
* MixedDS: Inform about dashboard ds not being supported
* lint fix
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
(cherry picked from commit b6249d6a50)
Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
Time Zones: Fix relative time when using UTC timezone (#85637)
add UTC case to e2e test + let UTC pass through to moment.tz
(cherry picked from commit 4b5b738646)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Dashboard: Move "add" actions into a dropdown (#85776)
* Move all add actions into a dropdown
* Hide alerts rules when editing
* Hide fav icon when editing
(cherry picked from commit df72cfd38e)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
PostgreSQL: Fix the verify-ca mode (#85530)
postgres: fix the verify-ca problem
(cherry picked from commit 8a15ed42ae)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Update teamHttpHeaders casing (#85767)
teamHTTPHeaders does not work.
teamHttpHeaders is the correct syntax for the feature toggle.
(cherry picked from commit 9d7e758e04)
Co-authored-by: Dai Nguyen <88277570+ej25a@users.noreply.github.com>
Docs: g11 preview whats new fixes (#85759)
* Made style fixes to intro
* Updated upgrade guide menu title
* Commented Explore metrics docs link back in
(cherry picked from commit 8014665ab5)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
PR to document Explore Metrics (previously datatrails) (#85212)
* text dump
* initial edits
* more edits
* added more info, made edits
* first draft
* removed some commented out content
* final edits
* made requested changes
* feature name change
* missed a metrics explore - fixed
* ran prettier
---------
Co-authored-by: lwandz13 <larissa.wandzura@grafana.com>
(cherry picked from commit 3721682a02)
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
DashboardScene: Fixes issue with mobile responsive layout due to repeated grid item class (#85731)
(cherry picked from commit edf36d9ec0)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Docs: Re-order features and update intro in Grafana 11.0-preview What's new (#85702)
* Re-order features and update intro in Grafana 11.0-preview What's new
* Removed title casing
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit 3865b8c980)
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
"Release: Updated versions in package to 11.0.0"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Chore: update go version used in `bump-version` so it works with the new format (#85111)
update go version used in bump-version
(cherry picked from commit 4974a89316)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Loki: Remove API restrictions on resource calls (#85191)
Loki: Remove API restrictions
(cherry picked from commit c80b31a0d4)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
DashboardScene: Fixes panel edit issue with clearing title not resulting in hover header mode (#85621)
* PanelEditor: Update hoverHeader state when changing panel title
* refactor test and remove duplicate
(cherry picked from commit 49a3a95dd1)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Angular deprecation: Prefer local "angularDetected" value to the remote one (#85571)
* Angular deprecation: Prefer local value to remote
* Update tests
(cherry picked from commit c033a15aaa)
Chore: Fix trailing spaces in prometheus min step (#85507)
Fix trailing spaces in prometheus min step
(cherry picked from commit 4e60f44d98)
Co-authored-by: Eunice Kim <kimeuni@amazon.com>
Fix sending `maxDataPoints` as string (#85561)
* make sure maxDataPoints is a number
* add migration for maxDataPoints
* remove migration
(cherry picked from commit 9c0f9f6ba4)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Docs: add YouTube video link and description (#85484)
* Update index.md Adding YouTube video link and description
Added a short description about the video and added the video to the page.
* Update docs/sources/panels-visualizations/visualizations/logs/index.md
Some edits went in. All nice :)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Removed repetition
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit f6a94837c5)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
datatrails: hide "add to filter" button when there is no label value to add to filter (#85270)
fix: hide add to filters button when it won't work
(cherry picked from commit 2ecc1bb646)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
DashboardScene: Detect changes when live is enabled from settings (#85409)
* Adapt the code to the new live timer API
* Update scenes
(cherry picked from commit 89638238e5)
DashboardScene: Fix explore to dashboard flow (#85140)
* DashboardScene: Fix explore to dashboard flow
* Tests
* Make sure dashboard is in edit mode when adding from explore
* Allow discarding changes when coming from explore
* Tests
(cherry picked from commit b4dc79401b)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Revert "Postgres: Switch the datasource plugin from lib/pq to pgx (#8… (#85509)
Revert "Postgres: Switch the datasource plugin from lib/pq to pgx (#83768)"
This reverts commit ecd6de826a.
(cherry picked from commit 8159e1db3a)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
datatrails: handle "single" layout when switching to "all" labels (#85373)
* fix: handle "single" layout when switching to "all" labels
(cherry picked from commit 18f3c7188b)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
Bump scenes to 4.1.2 (#85470)
* Bump scenes to 4.1.2
* Fix tests after fixing the sorting in rows
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
(cherry picked from commit 9ba9cbf300)
RBAC: Fix slow user permission search query on MySQL (#85058)
* Bench testing search user perm
* Add BenchmarkSearchUsersPermissions_1K_1K
* Clarify benchmark searches by action prefix
* Make MySQL more efficient
* Move all filter options
* Expand after assignments union
* update comments
(cherry picked from commit 5e48804364)
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
DashboardScene: Fix issues with dashboard empty state (#85406)
Fix
Tests
Make sure edit mode is on when adding panel/library panel
Co-authored-by: kay delaney <kay@grafana.com>
(cherry picked from commit fa9e139123)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Plugins: Send PDC file paths and contents for backwards compatibility (#85287)
* send paths and contents
* go work sync
(cherry picked from commit 1a0ac381eb)
OptionsPicker: Allow storing raw input even when matches exist (#84790)
(cherry picked from commit db6b51cb88)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
datatrails: fix stability issues between conflict between browser history, URL sync, and trail history (#85134)
* fix: conflict between browser history and trail history
- ensure the back button or url changes don't generate trail steps
- ensure label breakdown TextLinks which appear on the summary tab work in embedded mode
(cherry picked from commit 137061d1d5)
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
DashboardScene: Fix constant variable not being hidden after creation (#85196)
(cherry picked from commit ae9a4b6467)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Azure/GCM: Update `filterQuery` methods to carry out migrations (#85355)
Update filterQuery methods to carry out migrations
(cherry picked from commit 697a18737d)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Scenes: Fix row crash when removing a panel from it (#85339)
* Fix row crash when removing a panel from it
* fix tests
* fix tests
(cherry picked from commit 30c9307539)
Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
Tempo: Check for liveEnabled before trying to stream (#85173)
* Check for liveEnabled before attempting to stream
* Add tests
* Range const
* Update test text
(cherry picked from commit df39fc54a6)
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
StateTimeline: Fix data links causing unrendering of string fields (#85260)
(cherry picked from commit 1ffeb7c365)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Prometheus: Use correct logic for frontend package feature flag (#85294)
use correct logic for frontend package feature flag
(cherry picked from commit d4a68d6662)
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
Added YouTube video to index.md on Time Series (#85188)
* Added YouTube video to index.md on Time Series
Added a brief description and the YouTube link for the Time Series video.
* Update index.md
Did quick fix
* Update index.md
Found double space, removed, hope PR goes through
* Update docs/sources/panels-visualizations/visualizations/time-series/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
(cherry picked from commit d4953f4a1f)
Co-authored-by: Señor Performo - Leandro Melendez <54183040+srperf@users.noreply.github.com>
NodeGraph: Fix possible metadata mismatch between nodes in graph (#85254)
(cherry picked from commit 20e70838e3)
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Alerting: Fix receiver inheritance when provisioning a notification policy (#82007)
Terraform Issue: grafana/terraform-provider-grafana#1007
Nested routes should be allowed to inherit the contact point from the root (or direct parent) route but this fails in the provisioning API (it works in the UI)
(cherry picked from commit 2188516a21)
Co-authored-by: Julien Duchesne <julien.duchesne@grafana.com>
Auth Drawer: Use redux store to load settings (#85110)
* use actions instead of importing the backend service
* Replace the test render for redux-rtl
(cherry picked from commit 4e5bff0ada)
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
SSO: add the missing fields to the okta provider (#85152)
* add the missing allowSignUp field to okta provider
* add autoLogin to okta
(cherry picked from commit 6ddced7ba8)
Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
SQLEngine: Use `debug` method instead of custom implementation (#85118)
Use debug method instead of custom implementation
(cherry picked from commit 19159a89a2)
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
EmptyState: Rename "search" variant to "not-found" (#85062)
* rename "search" variant to "not-found"
* run i18n:extract
(cherry picked from commit 36ee1571b6)
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* add feature toggle usePrometheusFrontendPackage
* add feature toggle logic to Prometheus module
* use config editor with package and remove configOverhaul feature toggle
* update betterer because we will be removing other files as we replace with files from @grafana/prometheus
* fix exemplar ds picker selector
* add more description to ts-ignore
* remove go.work.sum change
* copy go.work.sum from main
* update go.work.sum after talking with ismail
* put back the promlib entry
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* attempt at solving issue and resetting bounds to match panel content
* cleanup failed experiments
* add toggle for infinite pan - dont love naming but open to suggestions; clean up scene transform function
* add ability to "infinite" zoom (i.e. render more canvas via zooming out)
* slight refactor
* revert refactor as it broke things
Public dashboards: fix public dashboard permissions so that annotations are displayed (#85091)
* fix public dashboard anonymous user permissions so they include the new annotation permissions
* test fix
(cherry picked from commit df40e13333)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Added new connector functions and new shape elements
* Grouped basic elements, added element intro, moved element snapping info, and added subheadings for connectors section
* Copy edits and restructuring
* Add rotation
* Broke up sentence
* Added gif using midpoint controls
* ihm/180324-canvas-flowchart-features/ run linter
* Remove comment
* Removed extra line
---------
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
* allow users with regular actions access provisioning API paths
* update methods that read rules
skip new authorization logic if user CanReadAllRules to avoid performance impact on file-provisioning
update all methods to accept identity.Requester that contains all permissions and is required by access control.
* create deltas for single rul e
* update modify methods
skip new authorization logic if user CanWriteAllRules to avoid performance impact on file-provisioning
update all methods to accept identity.Requester that contains all permissions and is required by access control.
* implement RuleAccessControlService in provisioning
* update file provisioning user to have all permissions to bypass authz
* update provisioning API to return errutil errors correctly
---------
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
* Canvas: Add corner radius option
* Update connection radius logic
* Simplify angle calcs
* Simplify math to be a bit more clear and efficient
* Add checks for hyperbola behavior
* Prevent arc calcs if no radius
* Add comments for SOME clarity
* Add some more clarity to comments
* Fix linter issue
* Check for segment overlap for first vertex
* Update public/app/plugins/panel/canvas/components/connections/ConnectionSVG.tsx
* Add comment for calc clarity
* Prometheus: remove scope dependency
temp workaround
* depguard
* comment
* remove rules since they need a newer version of golangci-lint
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* server: reload of grafana server certs when renewed without restart.
Signed-off-by: Rao, B V Chalapathi <b_v_chalapathi.rao@nokia.com>
* server: reload of grafana server certs when renewed without restart.
Signed-off-by: Rao, B V Chalapathi <b_v_chalapathi.rao@nokia.com>
* Update http_server.go
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update http_server.go
Address the comments
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Dan Cech <dan@aussiedan.com>
* Update http_server.go
Align the spaces
* Update http_server.go
* Update http_server.go
* Update pkg/api/http_server.go
Co-authored-by: Dan Cech <dan@aussiedan.com>
---------
Signed-off-by: Rao, B V Chalapathi <b_v_chalapathi.rao@nokia.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Dan Cech <dan@aussiedan.com>
* add empty search state component
* extract translations
* nicer prop spreading
* actually expose component in grafana-ui
* use requestAnimationFrame
* add rollup-plugin-svg-import
* move to a single EmptyState component with variants
* update docs
* remove CTA
* add some more prop documentation
* just use 1 svg
* Alerting: Implement ApplyConfig for remote primary mode (forked AM)
* add TODO for saving the config hash in other config-related methods
* fix bad method receiver name (m -> am)
* tests
* add mutex
* remove sync loop
* feat: metadata for metric panels
* fix: missing import?
* fix: async await to get description first
- also add description to metric-name-only panels
* fix: change description, remove from main viz
* fix: remove import
* Enable nestedFolders by default
* Make nestedFolders GA
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* regenerate files
* also update docs
* skip failing test
---------
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* Chore: Remove unused dependenices in plugin client middlewares
* refactor logger middleware to remove cfg dependency
* hack to make tracing work in api group builders
* display teams to team reader if they also have the access to list team permissions
* fix a typo in the docs
* enable annotationPermissionUpdate by default
* update wording
* Added Configure tooltips page
* Added intro, description options and image
* Updated weight and removed passive voice
* Replaced list with table and updated non-configurable tooltips section
* Updated info about other tooltips
* Wording edits
* Apply suggestions from code review
* Fixed table
* Added hover value in color scheme info with image
* Canvas: Add direction options for connections
* Fix radio control to handle default
* Fix broken options from merge
* Remove unused comment
* Change category and capitalize options for arrow
* Consolidate marker start and end for connections
* Fix linter issue
* bump scenes
* Improved data layers
* DashboardScene: Allow transformations by topic
* Use stable version
* Mock grafana ds to avoid anno layers test failure
* Fix name change
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Adds support for logs (specify level), metrics (enable metrics and Prometheus /metrics endpoint
and traces (jaeger or otlp) for standalone API server. This will allow any grafana core service
part of standalone apiserver to use logging, metrics and traces as normal.
* Created elements intro section, moved snapping and alignment content to intro, removed snapping and alightment heading
* Updated data links availability
* Remove element section changes
* test(jest): isolate script tests to prevent jest errors in grafana-server/tmp tests
* chore(codeowners): update so generate-transformations matches in docs and tests directory
* Move some thema code inside grafana
* Use new codegen instead of thema for core kinds
* Replace TS generator
* Use new generator for go types
* Remove thema from oapi generator
* Remove thema from generators
* Don't use kindsys/thema for core kinds
* Remove kindsys/thema from plugins
* Remove last thema related
* Remove most of cuectx and move utils_ts into codegen. It also deletes wire dependency
* Merge plugins generators
* Delete thema dependency 🎉
* Fix CODEOWNERS
* Fix package name
* Fix TS output names
* More path fixes
* Fix mod codeowners
* Use original plugin's name
* Remove kindsys dependency 🎉
* Modify oapi schema and create an apply function to fix elasticsearch errors
* cue.mod was deleted by mistake
* Fix TS panels
* sort imports
* Fixing elasticsearch output
* Downgrade oapi-codegen library
* Update output ts files
* More fixes
* Restore old elasticsearch generated file and skip its generation. Remove core imports into plugins
* More lint fixes
* Add codeowners
* restore embed.go file
* Fix embed.go
* feat(systemjs): move systemjs to grafana core and stop exporting from runtime
* feat(plugins): move systemjs to own file, update imports
* chore(plugins): call systemjs directly from window as ref can be undefined
* chore(plugins): make sure systemjs is imported before its shared dependencies
* chore(systemjs): move dependency to root package.json
* feat: add incomplete unit test
* refactor: add idea for unit test
* feat: create new e2e test
* feat: add some steps
* feat: add comment
* feat: complete prep work
* feat: complete clean up
* rebase
* feat: add more steps to test flow
* refactor: remove unit test
* refactor: clean up
* refactor: create a provisioned alert rule
* refactor: change location and content
* refactor: e2e test
* refactor: betterer
* refactor: move provisioned alert rule
* refactor: make provisioning file available remote
* refactor: clean up test
* refactor: move provisioned alert rule
* refactor: remove wait()
* feat: restructure first test and add more tests
* feat: add another provisioned alert rule
* feat: add a new test
* feat: complete new test
* refactor: replace data-testid in alert rules
* refactor: replace data-testid
* refactor: fix tests for drone
* refactor: fix third test after review
* refactor: fix last test
* temp
* refactor: improve some things
* refactor: adjust unit tests
* refactor: remove assertions for alert rule details view
* refactor: remove assertions
* refactor: add check for button text
* refactor: remove session storage
* refactor: apply changes from code review
* refactor: add codeowner
* refactor
* refactor
* refactor: clean up
* refactor: clean up
* refactor: clean up
* refactor: increase pa11y threshold for /alerting/list
* Canvas: Add vertex control to connections
* Add function for vertex conversion
* Add vertex interface
* Add future vertex handling
* Only show vertices when connection selected
* Add vertices to save model
* Apply select constraint to first midpoint
* Add some infrastructure for vertex edit
* Render vertex edit and capture events
* Save vertex edit on button release
* Handle adding new vertices
* Limit number of vertices to 10
* Handle zoom for vertex edit and creation
* Rename future to add
* Remove more references to future
* Remove unsued console log
* Clean up styles
* Add some clarity for path generation
* Add clarity to connections event handling
* Canvas: Add snapping to vertex edit
* Remove unused color styling
* Add horizontal and vertical snap for vertex edit
* Add snapping during vertex creation
* Hide vertex before removal
Make: Remove redundant `make go-gen` in .bra, build-go already calls this
Calling twice really slows down backend build time since wire gets called twice and that uses a few gigs of memory
* mssql: Add Kerberos/Windows AD auth
* need username for cache file
* account for no port in cc file
* add tests around constring
* remove un-needed port
* add docs
* remove comments
* move defer to same locale as where it begins
* fix linting and spelling
* fix gosec linter
* note lack of grafana cloud support
* require "folders:read" and "alert.rules:read" in all rules API requests (write and read).
* add check for permissions "folders:read" and "alert.rules:read" to AuthorizeAccessToRuleGroup and HasAccessToRuleGroup
* check only access to datasource in rule testing API
---------
Co-authored-by: William Wernert <william.wernert@grafana.com>
* E2E: Rewrite mysql tests to playwright
* Fix lint
* Add more selectors and address comments
* Scope locators when locating text
* Don't run it 20 times
* Update new-datasource-variable to assert mysql
* Update index.md added YouTube link to Table Panel
* Moved video and added placement note
* Update index.md adding video description
Added a description to the video. Feel free to edit if my syntax or writing needs improvement.
* Wording and style edits
* Wording fix
---------
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Table: hacky poc for colored rows
* update
* Update options editor
* Refactor out styling
* Make sure option applies
* Start unifying coloring logic
* Support various options
* Cleanups
* Fix up hover behavior
* Update label
* Fix bug with sorting and make cleanups
* Ensure text color also applies to whole row
* New treatment for cell inspect
* Update cell inspect spacing
* codeincarnate/table-row-background-selected-riffs/ run linter
* Fix hover colors
* Fix coloring
* The other part of color application
* Another color fix
* codeincarnate/table-row-background-selected-riffs/ lint
* Update cell value inspect
* Prettier
* Update cell value inspect coloring
* Fix text coloring
* Update inspect style
* Linting and betterer
* Fix tests
* i18n
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
* docs: initial updates to state timeline documentation
* docs: apply linting
* Apply suggestions from code review
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* docs: add feedback from PR review
* docs: apply linting
* Wording and formatting edits
* Fixed grammar
* Update docs/sources/panels-visualizations/visualizations/state-timeline/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* docs: add two examples for state timeline to show null values and two timestamps
* docs: add steps to configuring a state timeline
* docs: add state timeline video
* docs: add link to creating dashboards
* Changed link text and added version interpolation syntax
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* (WIP) Alerting: Decrypt secrets before sending configuration to the remote Alertmanager
* refactor, fix tests
* test decrypting secrets
* tidy up
* test SendConfiguration, quote keys, refactor tests
* make linter happy
* decrypt configuration before comparing
* copy configuration struct before decrypting
* reduce diff in TestCompareAndSendConfiguration
* clean up remote/alertmanager.go
* make linter happy
* avoid serializing into JSON to copy struct
* codeowners
* add the missing fields for sso providers
* remove fields array
* add the validate_hd field for google
* submit only fields defined on the provider
* fix unit tests
* add unit tests for the new fields/sections from the form
* add hosted_domain field for the google provider
* reorder fields in user mapping
* remove authStyle field from gitlab and okta
---------
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
* feat: integrate dashboard panels with metrics explore
- add dashboard panel menu items (in non-scenes dashboard) to open
`metric{filters}` entries detected from queries to launch
"metrics explorer" drawers for the selected `metric{filter}`
* fix: remove OpenEmbeddedTrailEvent
* fix: use modal manager dismiss capabilities instead
* initial start
* don't use getTagKeysProvider
* some cleanup
* undo kinds adjustment
* simplify
* remove async declaration
* add description and a couple of unit tests
* add transformSaveModelToScene test
* add tests for AdHocVariableForm
* add tests for AdHocFiltersVariableEditor
* update to defaultKeys
* fix snapshots
* update to 3.13.3
* Adds color and stroke-dasharray support for node graph edges
Adds support for providing color, highlighted color, and visual display of node graph edges as dashed lines via stroke-dasharray.
* Updates node graph documentation
* Updates documentation
Adds default for `highlightedColor`
* Update docs/sources/panels-visualizations/visualizations/node-graph/index.md
Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>
* Update packages/grafana-data/src/utils/nodeGraph.ts
Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>
* Update docs/sources/panels-visualizations/visualizations/node-graph/index.md
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* Removes highlightedColor; deprecates highlighted
Per [request](https://github.com/grafana/grafana/pull/83855#issuecomment-1999810826), deprecates `highlighted` in code and documentation, and removes `highlightedColor` as an additional property. `highlighted` will continue to be supported in its original state (makes the edge red), but is superseded if `color` is provided.
* Update types.ts
Missed a file in my last commit. Removes `highlightedColor` and deprecates `highlighted`.
* Add test scenario in test data source
---------
Co-authored-by: Fabrizio <135109076+fabrizio-grafana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* fix: use cascader's clear button
* fix: remove the prefix filter from metric select
* fix: remove supporting code in metric select scene
- For the removed prefix filter
* fix: spacing
* feat: make it possible to specify prop types for component extensions
* Update packages/grafana-runtime/src/services/pluginExtensions/getPluginExtensions.ts
* chore: adapted test case
* chore: update betterer
* feat: update types for configureComponentExtension()
* fix: remove type specifics for `configureExtensionComponent`
* Update betterer config
---------
Co-authored-by: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com>
Co-authored-by: Darren Janeczek <darren.janeczek@grafana.com>
* getAllFields: refactor for improved performance
* LogRowMessageDisplayedFields: refactor line construction for performance
* AsyncIconButton: refactor to prevent infinite loops
Always show multi-select DataSource(DS) variables in the DS picker, and display a warning in the panel when a DataSource variable holds multiple values and is not being repeated.
---------
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* chore(input-datasource): delete bundled plugin for grafana 11
* chore(betterer): refresh results file
* chore(yarn): run dedupe to clean up deps
* chore(yarn): pin playwright to 1.41.2 to see if CI passes
* chore(yarn): pin playwright to 1.42.1
* add support for listing resource history
* make watch handle custom label selectors properly
* fix tests
* Apply suggestions from code review
Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
* properly handle special characters in json label matcher
* tidy up
---------
Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
* Unify how the version is shown in the UI
* use versionString in dashboard help bundles
* fix lint
* remove comment
* fix test types
* make test less flakey
* Canvas: Add vertex control to connections
* Add function for vertex conversion
* Add vertex interface
* Add future vertex handling
* Only show vertices when connection selected
* Add vertices to save model
* Apply select constraint to first midpoint
* Add some infrastructure for vertex edit
* Render vertex edit and capture events
* Save vertex edit on button release
* Handle adding new vertices
* Limit number of vertices to 10
* Handle zoom for vertex edit and creation
* Rename future to add
* Remove more references to future
* Remove unsued console log
* Clean up styles
* Add some clarity for path generation
* Add clarity to connections event handling
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Fix wrong use of empty list in times field in the UI
* Add tooltip for disable switch
* Show disabled badge in mute timings
* Disable time ranges when disabling time interval in the UI
* PR review comments
* remove tooltip for the field as it does not register it correctly
* remove wrong code line
* Add comment
* Address PR review comments
* Add function to get the namespaced id
* Add function to resolve an identity through authn.Service from org and namespace id
* Switch to resolve identity for re-authenticate in another org
* bug: fix migration to account for duplicate entries
* refactoring to create test folder for user migrations
* fix migration log
* added the migration
* additional tests
* added extSrv tests
* Infinite Scroll: wait for users to reach the top before triggering new requests
* Prettier
* Infinite Scroll: control top scrolling via prop
* Prettier
* Folders: Allow listing folders with write permission
* Check for subfolder access if parent does not have
* Add test
* GetFolders: fix ordering
* Apply suggestion from code review
* ExtSvcAccounts: Fix External Service Accounts Login check
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Remove service accounts assignments and permissions on delete
* Fix first set of tests
* Fix second batch of tests
* Fix third batch of tests
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Update template names
* Add verifier that we can use to start verify process
* Use userVerifier when verifying email on update
* Add tests
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* pyroscope: adds ability to add context menu items
* moves things around
* removes console.log
* improvements
* Change the extra context button API shape
* Add test
* lint
---------
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* PopoverMenu: change position to fixed
* PopoverMenu: close on empty selectionchange
* Popover Menu: do not let menu overflow the window dimensions
* Prettier
* Wip
* Wip
* Adapt to load external module
* build: remove cloudmonitoring from built_in_plugins, clean up webpack output
* chore(plugins): remove decoupled plugins from package.json deps
* chore(codeowners): update file for nx.json
* revert(webpack): put back path in config
* build(frontend): use nx to run prod builds of decoupled plugins with yarn build
* style(prometheus): run prettier-write to fix tsconfig.json
* style(backend): remove unused subFile.isDistDir
* revert(locales): remove formatting changes adding new line at end of files
* chore(webpack): clean up dev output
* build(nx): make grafana an nx project, bump lerna and nx
* build(plugin-configs): move cache directory to node_modules
* style(datasource-plugins): add eslint ignore for .gen.ts files
* chore(codeowners): add frontend-ops as owner of project.json
* build(webpack): add getDecoupledPlugins to automatically ignore when watching
* ci(drone): skip nx cache when building frontend packages
* style(ci): fix missing trailing comma
* Revert "style(ci): fix missing trailing comma"
This reverts commit 7520d41576.
* Revert "ci(drone): skip nx cache when building frontend packages"
This reverts commit 46938883ac.
* feat(zipkin): remove from grafana core bundle
* chore(npm): bump nx package to latest 18.0.8
* docs(dev-guide): add a note about what yarn start now builds
---------
Co-authored-by: Andres Martinez <andres.martinez@grafana.com>
* WIP - proof of concept
* Update pkg/tsdb/elasticsearch/client/client.go
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* update and add test
* lint
* Fix lint
* Bring back logging when creating client
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* fix mergeSettings() in case the db contains empty strings
* use correct github urls in test
* overwrite only urls
* update comment for mergeSettings()
* add strategy and tests
* use settings provider service and remove multiple providers strategy
* update codeowners file
* reload from settings provider
DashboardScene: Make sure dashboard prompt is shown when navigating away from an edited dashboard
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
* Implement keep last state for state transitions
* Respect For duration when keeping state
* Only keep transition from recording an annotation
* Add keep last state option for nodata/error in UI
* bump plugin-e2e and fix failing test
* do not ignore failures
* generate trace on every test
* force test to fail for debugging purposes
* fix broken test
* regenerate drone file
* poc
* add logger, skip hook when user is not assigned to default org
* Add tests, move to hook folder
* docs
* Skip for OrgId < 1
* Address feedback
* Update docs/sources/setup-grafana/configure-grafana/_index.md
* lint
* Move the hook to org_sync.go
* Update pkg/services/authn/authnimpl/sync/org_sync.go
* Handle the case when GetUserOrgList returns error
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* export Evaluation
* Export Evaluation
* Export RuleVersionAndPauseStatus
* export Eval, create interface
* Export update and add to interface
* Export Stop and Run and add to interface
* Registry and scheduler use rule by interface and not concrete type
* Update factory to use interface, update tests to work over public API rather than writing to channels directly
* Rename map in registry
* Rename getOrCreateInfo to not reference a specific implementation
* Genericize alertRuleInfoRegistry into ruleRegistry
* Rename alertRuleInfo to alertRule
* Comments on interface
* Update pkg/services/ngalert/schedule/schedule.go
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
---------
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
* wip
* Refactor find panel by key
* clean up lint, make isLoading optional
* change library panel so that the dashboard key is attached to the panel instead of the library panel
* do not reload everything when the library panel is already loaded
* Progress on library panel options in options pane
* We can skip building the edit scene until we have the library panel loaded
* undo changes to findLibraryPanelbyKey, changes not necessary when the panel has the findable id instead of the library panel
* fix undo
* make sure the save model gets the id from the panel and not the library panel
* remove non necessary links and data providers from dummy loading panel
* change library panel so that the dashboard key is attached to the panel instead of the library panel
* make sure the save model gets the id from the panel and not the library panel
* do not reload everything when the library panel is already loaded
* Fix merge issue
* Clean up
* lint cleanup
* wip saving
* working save
* use title from panel model
* move library panel api functions
* fix issue from merge
* Add confirm save modal. Update library panel to response from save request. Add library panel information box to panel options
* Better naming
* Remove library panel from viz panel state, use sourcePanel.parent instead. Fix edited by time formatting
* Add tests for editing library panels
* implement changed from review feedback
* minor refactor from feedback
* HelpModal: Make more accessible
* Remove console.log
* Handle custom keys for screen reader
* Rewrite using tables
* Increase gap
* Change order of help categories
* HelpModal: Add tabIndex and imrpove sr-only display
* Move files to prometheus-library
* refactor core prometheus to use prometheus-library
* modify client transport options
* mock
* have a type
* import aliases
* rename
* call the right method
* remove unrelated test from the library
* update codeowners
* go work sync
* update go.work.sum
* make swagger-clean && make openapi3-gen
* add promlib to makefile
* remove clilogger
* Export the function
* update unit test
* add prometheus_test.go
* fix mock type
* use mapUtil from grafana-plugin-sdk-go
* add animation for grot not found
* extract default interval out into constant
* improve relative path
* extract magic numbers out into constants + throttle properly
* better width/height definitions
* use consistent background + apply to PageNotFound as well
* increase gap in command palette empty state
* Revert "Update dependency @swc/core to v1.4.6"
This reverts commit 4d7220dbdf.
* chore(renovate): ignore swc/core for time being due to bugs in versions ~1.4.5
* separate context and threads for usage stats
* use constants
* ignore original context
* fix runMetricsFunc
* fix collector registration
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* change background ctx
* fix test randomness
* Add traces to support bundle collector
* Remove unecessay span
* Add trace to usagestats api
* Close spans
* Mv trace to bundle
* Change span name
* use parent context
* fix runtime declare of stats
* Fix pointer dereference problem on usage stat func
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: jguer <joao.guerreiro@grafana.com>
* fix broken support bundle tests by tracer
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: gamab <gabriel.mabille@grafana.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* DashboardScene: Implement playlist controls
* Mock the runtime config properly
* PlaylistSrv: with state you can subscribe to (#83828)
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Remove jenny_ts_resources and use jenny_ts_types for all cases
* Unify TS generated files into one jenny
* Add missing imports to versioned files
* Update Parca plugin
* Fix loki
* Use LokiQuery
* Fix pyroscope tests
* Fix prettier
* 😒 fix default pyroscope value name
* Set the LokiQuery
* Update Elasticsearch and TestData
* Missed files from testdata
* Order imports
* Explore: Remove deprecated Form components from CorrelationTransformationAddModal.tsx
* Explore: Remove deprecated Form components from AddToDashboardForm.tsx
* Landmark: main
* Landmark: add header
* Submenu: Move conditional display up
* NewsPanel: use h3 as the article label
* Use title for article id
* Update test showing a false positive
* DashboardPage: Expect submenu to not be shown
* remove panel menu options that are dasbhoard editing activities when the dashboard is not in edit mode
* remove corresponding keybindings when not in edit mode
* add keyboard shortcuts but inactivate them when not in edit mode
* Add tests; fix tests
* hard disable for legacy alerting
* remove alerting section from configuration file
* update documentation to not refer to deleted section
* remove AlertingEnabled from usage in UA setting parsing
* Embed two visualization videos from Grafana for Beginners series
* Implementing Isabel's recommendation on second video placement.
* edited introductory sentence to the second video.
* Added line between text and video
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* AngularMigrate: Auto migrate graph to multiple panels
* add unit test, and histogram migration
* add new cases to existing angular migration gdev dashboard
* fix stat feature toggle handling so all panels dont turn into stat panels 😅; fix betterer
* Use same function when clicking manual migrate button
* Update
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Remove kinds verification for kind-registry
* Read plugin's json information with json library instead of use thema binding
* Remove grafanaplugin unification
* Don't use kindsys for extract the slot name
* Fix IsGroup
* Remove all plugindef generation
* Refactor schema interfaces
* Pushed this change from a different branch by mistake...
* Create small plugin definition structure adding additional information for plugins registration
* Add some validation checks
* Delete unused code
* Fix imports lint
* Swagger: Re-generate the enterprise specification if enterprise is cloned successfully
* API change to trigger the swagger CI step execution
* Swagger: Silence logs
* add drawer for auth settings
* add StrongPasswordField component
* Add style to different behaviours
* update style for component
* add componenet to ChangePasswordForm
* pass the event handlers to the child component
* add style for label container
* expose strong password policy config option to front end
* enforce password validation with config option
* Regenerate openapidocs at 1.21.8 to match ci
* Adjust trigger to work on the actual outputted files
* Also put go.mod and go.sum in the triggers
* manually fix
* Make an arbitrary change rather than touching the trigger to force a run
* Drop all triggers - run all the time
* Print diff - taken from @papagian's PR
* Manual fixes to swagger doc
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Alerting: Use Alertmanager types extracted into grafana/alerting
We're in the process of exporting all Alertmanager types into grafana/alerting so that they can be imported in the Mimir Alertmanager, without a neeed to import Grafana directly.
This change introduces type aliasing for all Alertmanager types based on their 1:1 copy that now live in grafana/alerting.
Signed-off-by: gotjosh <josue.abreu@gmail.com>
---------
Signed-off-by: gotjosh <josue.abreu@gmail.com>
* create rule factory for more complicated dep injection into rules
* Rules get direct access to metrics, logs, traces utilities, use factory in tests
* Use clock internal to rule
* Use sender, statemanager, evalfactory directly
* evalApplied and stopApplied
* use schedulableAlertRules behind interface
* loaded metrics reader
* 3 relevant config options
* Drop unused scheduler parameter
* Rename ruleRoutine to run
* Update READMED
* Handle long parameter lists
* remove dead branch
* disable_sanitize_html update
Added a note that states this configuration is not available for Grafana Cloud instances.
* Update docs/sources/setup-grafana/configure-grafana/_index.md
* Update docs/sources/setup-grafana/configure-grafana/_index.md
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add drawer for auth settings
* add auth drawer component
* include AuthDrawer component in auth providers page
* protect the feature as enterprise only
* add unit test
* remove custom scroll bars from Page component
* make flagged scroller the actual scrolling element,
* enable feature flag by default
* re-enable the scroll props in Page
* rename feature toggle
* fix css
* only update when deleted
* set .scrollbar-view on our scrolling wrapper
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* changed tags from oss to enterprise and cloud
* added Dashboard Panel example
* swapped the all-grafana-umbrella information to the correct page
* added minor visibility improvements in steps
* made some minor adjustments
* added minor improvements
* fixed a link
* updates links
* Apply suggestions from code review
thanks for the improved suggestions. looks more better
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* fixed links
* fixed Grafana Enterprise link
* run prettier
* fixed add a data source links
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Dashboards: Fix scroll position not being restored when leaving panel edit view
* remove mock from tests
* remove console log
* Remove my debugging stuff, and don't render grid if width is 0
* remove old comment (but retain old, probably unneeded css)
* rename ref
* fix it not actually working anymore!!!
* add e2e tests
* jsonnet, i guess
* add a middleware that appens headers for IP range AC to data source proxy requests
* update code
* add tests
* fix a mistake
* add logging
* refactor to reuse code
* small cleanup
* skip the plugins middleware if the header is already set
* skip the plugins middleware if the header is already set
* Updated index pages and added v10.4 breaking changes, upgrade guide, and what's new pages
* Added what's new entries
* Removed empty headings
* Fixed link
* Removed duplicate entry and fixed styling
* Removed breaking changes page and references to it
* Added intro text
* Docs: 10.4 technical note for alertingUpgradeDryrunOnStart (#83262)
* Docs: 10.4 technical note for alertingUpgradeDryrunOnStart
* Apply suggestions from code review
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Address PR comments
* restarts -> starts
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Fixed spelling
* Added new entries to What's new
* reorder and add intro
* Added PagerDuty data source entry
* Added entries
* Added new entries
* Fixed formatting
* Fixed page weight and links
* Apply suggestion from review
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
* remove team lbac, move return to previous (#83921)
- Remove Team LBAC for Loki (it is Cloud only)
- Move Return to Previous into the Alerting section, since it only works for Alerting now
- Add a note that data sources are separate from Grafana but included for visibility
* Replaced manual note with admonition shortcode
* move Return to Previous out of Alerting section
* Added youtube links
* Commented out youtube videos and removed duplicate video embed
---------
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
* initial naive implementation
* Update pkg/services/store/entity/sqlstash/sql_storage_server.go
Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>
* tidy up
* add action column, batch watch events
* initial implementation of broadcast-based watcher
* fix up watch init
* remove batching, it just adds needless complexity
* use StreamWatcher
* make broadcaster generic
* add circular buffer to replay recent events to new watchers
* loop within poll until all events are read
* add index on entity_history.resource_version to support poller
* increment r.Since when we send events to consumer
* switch broadcaster and cache to use channels instead of mutexes
* cleanup
---------
Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>
* Update the component only when the response is fully generated
* Fix quick feedback action doesn't respond
* Fix history not displaying after the second click
* Fix the history that moves when regenerating
---------
Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
* Add model to library panel inspect json
* Add missing information from library panel when inspecting its JSON
* minor refactor
* refactor inspect library panel model to show the model that was fetched from the api
* nit: improve comment
* fix library panel import path
---------
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Updates Grafana Alertmanager to work with new interface from grafana/alerting#161. This change stops passing user-defined templates to the Grafana Alertmanager by persisting them to disk and instead passes them by string.
* Add profile-traces intro material; update Pyroscope data source info
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Updates and file rename from review
* Add PYROSCOPE_VERSION
* Apply suggestions from code review
* Format tables
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Apply suggestions from code review
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Apply suggestions from code review
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Access control: Extend GetUserPermissions() to query permissions in specific org
* Use db query to fetch permissions in org
* refactor
* refactor
* use conditional join
* minor refactor
* Add test cases
* Search permissions correctly in OSS vs Enterprise
* Get permissions from memory
* Refactor
* remove unused func
* Add tests for GetUserPermissionsInOrg
* fix linter
* Fix up text wrapping
* Make sure there are basic cell styles
* codeincarnate/text-wrapping-hover-pt2/ run prettier
* Add comment for conditional
* Update condition
---------
Co-authored-by: jev forsberg <jev.forsberg@grafana.com>
This commit fixes a bug in the screenshot service where
[alerting].concurrent_render_limit was used instead of
[rendering].concurrent_render_request_limit, as in the
docs.
* Introduce environment.local_filesystem_available
* Only show TLS client cert, client key, client ca when local_filesystem_available is true
* Rename LocalFSAvailable to LocalFileSystemAvailable
* Add FolderUID in missing places for libraryelements
* Add migration for FolderUID in library elements table
* Add Folder UIDs tolibrary panels
* Adjust dashboard import with folder uid
* Fix lint
* Rename back FolderUID to UID
* Remove default
* Check if folderUID is nil
* Add unique indes on org_id,folder_uid,name and kind
* Update pkg/services/libraryelements/database.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Fix folder integration test, with unique index on library elements
* Make folder uids nullable and rewrite migration query
* Use dashboard uid instead of folder_uid
* Adjust test
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* fix LDAP users authenticated via auth proxy not being able to use ldap sync
* simplify id resolution at the cost of no fallthrough
* remove unused services
* remove unused cache key
* Add Save and enable and Disable button
* Change to use Dropdown, reorder buttons
* Improve UI
* Update public/app/features/auth-config/ProviderConfigForm.tsx
* Apply suggestions from code review
* Use Stack instead of separate Fields
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* query OAuth info from a new instance
* add `hd` validation flag
* add `disable_hd_validation` to settings map
* update documentation
---------
Co-authored-by: Jo <joao.guerreiro@grafana.com>
* Use query as fallback when there's one series and no labels. Use "" as the fallback for empty label values. Stop using the `promLabels` value from the Tempo response
* Set refId to remove mentions of promLabels
* Add quotes around the string value, add space after comma separator
* Use name as refId when possible
* Moved view json panel content from configure panel options to panel inspect view
* Converted add title and description task to reference section
* Removed edit panel section
* Updated bullet list to match content
* Removed view json content to be integrated later
* Ran prettier
* Docs: Edit Configure panel options (#83439)
* Updated intro
* Updated intro, descriptions, and repeating panels task
* Reformatted sections of task and updated wording of LLM info
* Copy edits
* Added Cloud links and updated version syntax
* Fixed link
* Fixed formatting and removed vestigial sentence
* ValidateInterval doesn't need the entire config
* Validation no longer depends on entire folder now that we've dropped foldertitle from api
* Don't depend on entire config struct
* Export validate group
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* Add library panel functionality
* Fix lib panel and lib widget placement in collapsed/uncollapsed rows
* refactor
* take panelKey into account when getting next panel id in dashboard
* fix tests
* removed myself from data sources, added to admin (IAM)
* Remove accidental changes
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Rewrite Technical documentation codeowners for readability and consistency
Now it is consistent with the comments at the head of the file, at
least for this section of the repo.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Alerting: feat: support deleting rule groups in the provisioning API
Adds support for DELETE to the provisioning API's alert rule groups route, which allows deleting the rule group with a
single API call. Previously, groups were deleted by deleting rules one-by-one.
Fixes#81860
This change doesn't add any new paths to the API, only new methods.
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* Add library panel functionality
* Add lib panel from empty dashboard page
* refactor
* take panelKey into account when getting next panel id in dashboard
* fix tests
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* Add library panel functionality
* refactor
* take panelKey into account when getting next panel id in dashboard
* fix tests
* Use time_intervals instead of the deprecated mute_time_intervals in alert manager config
* don't send mute_time_intervals in the payload
* Add and update tests
* Fix usecase when having both fields in response from getting alert manager config
* Use mute_timings for grafana data source and both for cloud data source when deleting mute timing
* Use mute_timings for grafana data source and both for cloud data source when saving a new or existing alert rule
* Address first code review
* Address more review comments
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* change library panel so that the dashboard key is attached to the panel instead of the library panel
* make sure the save model gets the id from the panel and not the library panel
* do not reload everything when the library panel is already loaded
* Fix merge issue
* Clean up
* Plugins: Angular deprecation: Wait for plugins to be inizialized before rendering AngularDeprecationNotice
* use then
* fix tests
* mockCleanUpDashboardAndVariables.mockReset();
* Handle plugin not found
* PR review feedback
* Add comment
* removed unnecessary return
* PR review feedback
* Use grafanaBootData
* Removed comments
* fix tests
* Use config for hideDeprecation as well
* Add node graph panel suggestion
* Update logic
* Add comment
* Check for correct fields
* Simplify logic
* Also check for viz type
* Remove extra logic on boolean
* RBAC: Remove team permissions on delete
* Remove unecessary deletes from store function
* Nit on mock
* Add test to the database
* Nit on comment
* Add another test to check that other permissions remain
* introduce new config section [unified_alerting.state_history.annotations] and deprecate settings in [alerting]
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
* added the helm project
* added page metadata
* added the intro section
* fixed menuTitle
* added section i.e. Setting up the Grafana Helm repository
* added the deployment section
* finished the deploying grafana section
* completed access grafana section
* updating changes
* added persistent storage section
* added debugging section
* fixed typos
* fixed headings
* fixed numerious typos
* Apply suggestions from code review
looks good now !!
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Apply suggestions from code review
Thanks for the changes. It looks much better now
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* fixed the suggested changes and fixed minor typos
* Apply suggestions from code review
thanks for the improvements. looks polished now!!
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* fixed download link
* fixed typo
* final adjustments
* corrects spelling
* makes prettier
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* fix: indicate __ignore_usage__ for preview queries
* fix: further remove var that shouldn't be there
* refactor: move previewPanel code and add tests
* fix: use simpler `AdHocFiltersVariable` state
Co-authored-by: Andre Pereira <adrapereira@gmail.com>
---------
Co-authored-by: Andre Pereira <adrapereira@gmail.com>
* AuthN: Remove embedded oauth server
* Restore main
* go mod tidy
* Fix problem
* Remove permission intersection
* Fix test and lint
* Fix TestData test
* Revert to origin/main
* Update go.mod
* Update go.mod
* Update go.sum
fix: datatrails: start step is "metric select"
If restoring from a saved data trail, or URL,
the selection of metric becomes a second step.
The first step is always without a metric, and
displays the metric selection scene.
* Show empty state after removing last panel
* betterer
* Refactor isEmpty state update in DashboardScene.tsx
* don't need viewPanelScene check
* track isEmpty through a behavior
* Fix test
* Add test for empty state
* minor fix
* Refactor isEmpty check
* Don't use const
* clean up
* Removed view and delete overrides sections
* Added examples heading and moved examples down one heading level
* Added override rules section and removed rule definitions from task
* Added supported visualizations section and table and docs ref links
* Docs: edit Configure field overrides (#81834)
* Formatted note
* Added missing content and general edits
* Updated screenshots and examples and general edits
* Fix small formatting issues
* Fixed links
* Uploaded images to admin, updated image links, and removed local images
* Swapped figure shortcode for simple Markdown
* move autocomplete logic
* Tests
* Write to correct history
* Remove historyUpdatedAction and related code
* add helpful comments
* Add option to mute all errors/warnings for autocomplete
* Add back in legacy local storage query history for transition period
* Move params to an object for easier use and defaults
* Do not make time filter required
* fix tests
* change deprecation version and add issue number
* replace react-popper with floating-ui in Popover
* update HoverCard
* fix unit tests
* mock useTransitionStyles to ensure consistent unit test results
* add playwright test and plugin-e2e
* run tests in ci
* add ds config tests
* add panel edit tests
* add annotation test
* add variable edit page tests
* add explore page tests
* add panel plugin tests
* add readme
* remove comments
* fix broken test
* remove user.json
* remove newline in starlark
* fix lint issue
* ignore failure of playwright tests
* update code owners
* add detailed error messages in every expect
* update message frame
* fix link
* upload report to gcp
* echo url
* add playwright developer guide
* bump plugin-e2e
* add custom provisioning dir
* update plugin-e2e
* remove not used imports
* fix typo
* minor fixes
* use latest version of plugin-e2e
* fix broken link
* use latest plugin-e2e
* add feature toggle scenario verification tests
* bump version
* use auth file from package
* fix type error
* add panel data assertions
* rename parent dir and bump version
* fix codeowners
* reset files
* remove not used file
* update plugin-e2e
* separate tests per role
* pass prov dir
* skip using provisioning fixture
* wip
* fix permission test
* move to e2e dir
* fix path to readme
* post comment with report url
* format starlark
* post comment with report url
* post comment with report url
* fix token
* make test fail
* fix exit code
* bump version
* bump to latest plugin-e2e
* revert reporting message
* remove comments
* readding report comment
* change exit code
* format starlark
* force test to fail
* add new step that posts comment
* fix link
* use latest playwright image
* fix failing test
* format starlark
* remove unused fixture
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Update dependency webpack-dev-server to v5
* update webpack.hot config (is this even used anymore?)
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Add preservesUnits property to reducer registry items
* Hide units when appropriate
* Prettier
* some code cleanup
* Prevent error when no stat is selected.
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
This commit adds basic support for time_intervals, as mute_time_intervals
is deprecated in Alertmanager and scheduled to be removed before 1.0.
It does not add support for time_intervals in API or file provisioning,
nor does it support exporting time intervals. This will be added in
later commits to keep the changes as simple as possible.
* chore(lerna): bump lerna to 8.x.x
* chore(lerna): run lerna repair command to update lerna.json
* ci(drone): use raw output (no quotes) when updating package.json version
* ci(drone): update config file
* Updated links to former manage dashboards content
* Removed links to manage dashboards and added export content to Sharing page
* Replaced grafana links with cloud docs links
* Removed trailing slash from link
* trigger CI
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* chore(monaco): bump monaco-editor to latest version
* feat(codeeditor): use esm to load monaco editor
* revert(monaco): put back previous version
* feat(monaco): setup MonacoEnvironment when bootstrapping app
* feat(monaco): load monaco languages from registry as workers
* feat(webpack): clean up warnings, remove need to copy monaco into lib
* fix(plugins): wip - remove amd loader workaround in systemjs hooks
* chore(azure): clean up so QueryField passes typecheck
* test(jest): update config to fix failing tests due to missing monaco-editor
* test(jest): update config to work with monaco-editor and kusto
* test(jest): prevent message eventlistener in nodeGraph/layout.worker tripping up monaco tests
* test(plugins): wip - remove amd related tests from systemjs hooks
* test(alerting): prefer clearAllMocks to prevent monaco editor failing due to missing matchMedia
* test(parca): fix failing test due to undefined backendSrv
* chore: move monacoEnv to app/core
* test: increase testing-lib timeout to 2secs, fix parca test to assert dom element
* feat(plugins): share kusto via systemjs
* test(e2e): increase timeout for checking monaco editor in exemplars spec
* test(e2e): assert monaco has loaded by checking the spinner is gone and window.monaco exists
* test(e2e): check for monaco editor textarea
* test(e2e): check monaco editor is loaded before assertions
* test(e2e): add waitForMonacoToLoad util to reduce duplication
* test(e2e): fix failing mysql spec
* chore(jest): add comment to setupTests explaining need to incresae default timeout
* chore(nodegraph): improve comment in layout.worker.utils to better explain the need for file
* fix: sign in using auth_proxy with role a -> b -> a would end up with role b
* Update pkg/services/authn/clients/proxy.go
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
* Update pkg/services/authn/clients/proxy.go
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
* initial very very early stab at isolated state for nested folder picker
* more
* complete state rework. still need to do search
* tidy up some comments
* split api hook into seperate file, start to try and get search results back (its not working)
* Fix loading status
* Reset files
* cleanup
* fix tests
* return object
* restore hiding items
* restore
* restore
* remove those comments
* rename hooks
* rename hooks
* simplify selectors - thanks ash!!!
* more ci please?
* Chore: Replace Form component usage in EditDefaultPolicyForm.tsx
* Chore: Replace Form component usage in EditNotificationPolicyForm.tsx
* Remove ts-ignore
* add variable name validation
* adjust variable name validation logic
* move variable name validation logic to model
* add tests for onValidateVariableName
* extract variable name validation itest into separate describe
* Plugins: fix loading of modules which resolve to Promises
Prior to this commit we expected the default export of a plugin module
to be an object with a `plugin` field.
This is the case for the vast majority of plugins, but if a plugin uses
webpack's `asyncWebAssembly` feature then the default export will actually
be a promise which resolves to such an object.
This commit checks the result of the SystemJS import to make sure it has
a `plugin` field. If not, and if the `default` field looks like a Promise,
it recursively attempts to resolve the Promise until the object looks like
a plugin.
I think this may have broken with the SystemJS upgrade (#70068) because it used
to work without this change in Grafana 10.1, but it's difficult to say
for sure.
* Use Promise.resolve instead of await to clean up some logic
* Override systemJSPrototype.import instead of handling defaults inside importPluginModule
* Add comment to explain why we're overriding systemJS' import
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Chore: Remove Form usage from NewFolderForm
* Chore: Remove Form usage from NewFolderForm
* Chore: Remove Form usage from NewFolderForm
* Replace HorizontalGroup with Stack
* add Default Values and launch prettier
"Release: Updated versions in package to 11.0.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* Use fixed `/docs/grafana-cloud/alerting-and-irm` URLs for cloud references
* Fix `docs/grafana-cloud/` data sources links
* Fix `docs/grafana-cloud/` Panel & Visualization links
* Fix `/docs/grafana-cloud/` link to Dashboard page
* Set root directory `docs/reference` for non-cloud pages
* Fix `admonition` cannot use a `docs/reference` relative link
* Update `doc-validator`
https://github.com/grafana/technical-documentation/releases/tag/doc-validator%2Fv4.1.0
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Loki: Pass time range variable in variable editor
* Remove not needed type
* Update
* Add tests, not re-run if type does not change
* Add range as dependency
* working except for links
* Make sure the links are present on the library panels
* add tests, add empty links before panel is loaded, refactor legacy representation
* Update
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* use split scopes instead of substr in search v1
* tests, of course
* yet, some test helpers dont use split scopes
* another test helper to fix
* add permission.identifier to group by
* check if attribute is uid
* fix tests
* use SplitScope()
* fix more tests
Previously receivers were only validated before saving the alertmanager
configuration. This is a suboptimal experience for those upgrading with preview
as the failed channel upgrade will return an API error instead of being
summarized in the table.
2024-02-16 15:17:07 -05:00
3897 changed files with 147445 additions and 118151 deletions
- Notice to makers/users of custom data sources, there is a minor breaking change in 2.2 that
require an update to custom data sources for them to work in 2.2. [Read this doc](https://github.com/grafana/grafana/tree/master/docs/sources/datasources/plugin_api.md) for more on the
data source api change.
- Data source api changes, [PLUGIN_CHANGES.md](https://github.com/grafana/grafana/blob/master/public/app/plugins/PLUGIN_CHANGES.md)
- Data source api changes, [PLUGIN_CHANGES.md](https://github.com/grafana/grafana/blob/main/public/app/plugins/PLUGIN_CHANGES.md)
- The duplicate query function used in data source editors is changed, and moveMetricQuery function was renamed
@@ -198,7 +198,7 @@ slack channel (link to slack channel in readme).
### Breaking changes
- **Plugin API**: Both data source and panel plugin api (and plugin.json schema) have been updated, requiring an update to plugins. See [plugin api](https://github.com/grafana/grafana/blob/master/public/app/plugins/plugin_api.md) for more info.
- **Plugin API**: Both data source and panel plugin api (and plugin.json schema) have been updated, requiring an update to plugins. See [plugin api](https://github.com/grafana/grafana/blob/main/public/app/plugins/plugin_api.md) for more info.
- **InfluxDB 0.8.x** The data source for the old version of influxdb (0.8.x) is no longer included in default builds, but can easily be installed via improved plugin system, closes [#3523](https://github.com/grafana/grafana/issues/3523)
- **KairosDB** The data source is no longer included in default builds, but can easily be installed via improved plugin system, closes [#3524](https://github.com/grafana/grafana/issues/3524)
- **Templating**: Templating value formats (glob/regex/pipe etc) are now handled automatically and not specified by the user, this makes variable values possible to reuse in many contexts. It can in some edge cases break existing dashboards that have template variables that do not reload on dashboard load. To fix any issue just go into template variable options and update the variable (so it's values are reloaded.).
@@ -100,7 +100,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
## Tech
- **Go**: Grafana is now built using golang 1.9
- **Webpack**: Changed from systemjs to webpack (see readme or building from source guide for new build instructions). Systemjs is still used to load plugins but now plugins can only import a limited set of dependencies. See [PLUGIN_DEV.md](https://github.com/grafana/grafana/blob/master/PLUGIN_DEV.md) for more details on how this can effect some plugins.
- **Webpack**: Changed from systemjs to webpack (see readme or building from source guide for new build instructions). Systemjs is still used to load plugins but now plugins can only import a limited set of dependencies. See [PLUGIN_DEV.md](https://github.com/grafana/grafana/blob/main/PLUGIN_DEV.md) for more details on how this can effect some plugins.
@@ -1291,4 +1291,4 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
- **Text Panel**: The text panel does no longer by default allow unsanitized HTML. [#4117](https://github.com/grafana/grafana/issues/4117). This means that if you have text panels with scripts tags they will no longer work as before. To enable unsafe javascript execution in text panels enable the settings `disable_sanitize_html` under the section `[panels]` in your Grafana ini file, or set env variable `GF_PANELS_DISABLE_SANITIZE_HTML=true`.
- **Dashboard**: Panel property `minSpan` replaced by `maxPerRow`. Dashboard migration will automatically migrate all dashboard panels using the `minSpan` property to the new `maxPerRow` property [#12991](https://github.com/grafana/grafana/pull/12991)
For older release notes, refer to the [CHANGELOG_ARCHIVE.md](https://github.com/grafana/grafana/blob/master/CHANGELOG_ARCHIVE.md)
For older release notes, refer to the [CHANGELOG_ARCHIVE.md](https://github.com/grafana/grafana/blob/main/CHANGELOG_ARCHIVE.md)
We have upgraded AngularJS from version 1.6.6 to 1.8.2. Due to this upgrade some old angular plugins might stop working and will require a small update. This is due to the deprecation and removal of pre-assigned bindings. So if your custom angular controllers expect component bindings in the controller constructor you need to move this code to an `$onInit` function. For more details on how to migrate AngularJS code open the [migration guide](https://docs.angularjs.org/guide/migration) and search for **pre-assigning bindings**.
In order not to break all angular panel plugins and data sources we have some custom [angular inject behavior](https://github.com/grafana/grafana/blob/master/public/app/core/injectorMonkeyPatch.ts) that makes sure that bindings for these controllers are still set before constructor is called so many old angular panels and data source plugins will still work. Issue [#28736](https://github.com/grafana/grafana/issues/28736)
In order not to break all angular panel plugins and data sources we have some custom [angular inject behavior](https://github.com/grafana/grafana/blob/main/public/app/core/injectorMonkeyPatch.ts) that makes sure that bindings for these controllers are still set before constructor is called so many old angular panels and data source plugins will still work. Issue [#28736](https://github.com/grafana/grafana/issues/28736)
### Deprecations
@@ -1288,8 +1288,8 @@ This option to group query variable values into groups by tags has been an exper
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
- **Backend plugins**: Grafana now requires backend plugins to be signed, otherwise Grafana will not load/start them. This is an additional security measure to make sure backend plugin binaries and files haven't been tampered with. Refer to [Upgrade Grafana](https://grafana.com/docs/grafana/latest/installation/upgrading/#upgrading-to-v7-0) for more information.
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
**Deprecation warnings**
@@ -1304,7 +1304,7 @@ Not just visualizing data from anywhere, in Grafana 7 you can transform it too.
Data transformations will provide a common set of data operations that were previously duplicated as custom features in many panels or data sources but are now an integral part of the Grafana data processing pipeline and something all data sources and panels can take advantage of.
In Grafana 7.0 we have a shared data model for both time series and table data that we call [DataFrame](https://github.com/grafana/grafana/blob/master/docs/sources/plugins/developing/dataframe.md). A DataFrame is like a table with columns but we refer to columns as fields. A time series is simply a DataFrame with two fields (time & value).
In Grafana 7.0 we have a shared data model for both time series and table data that we call [DataFrame](https://github.com/grafana/grafana/blob/main/docs/sources/plugins/developing/dataframe.md). A DataFrame is like a table with columns but we refer to columns as fields. A time series is simply a DataFrame with two fields (time & value).
**Transformations shipping in 7.0**
@@ -1414,7 +1414,7 @@ We have also extended the time zone options so you can select any of the standar
### Features / Enhancements
- **Docker**: Upgrade to Alpine 3.11. [#24056](https://github.com/grafana/grafana/pull/24056), [@aknuds1](https://github.com/aknuds1)
- **Forms**: Remove Forms namespace [BREAKING]. Will cause all `Forms` imports to stop working. See migration guide in [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)[#24378](https://github.com/grafana/grafana/pull/24378), [@tskarhed](https://github.com/tskarhed)
- **Forms**: Remove Forms namespace [BREAKING]. Will cause all `Forms` imports to stop working. See migration guide in [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)[#24378](https://github.com/grafana/grafana/pull/24378), [@tskarhed](https://github.com/tskarhed)
### Bug Fixes
@@ -1429,7 +1429,7 @@ We have also extended the time zone options so you can select any of the standar
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
@@ -1484,8 +1484,8 @@ We have also extended the time zone options so you can select any of the standar
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/main/packages/grafana-ui/CHANGELOG.md)
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
required:true
env:
YARN_ENABLE_IMMUTABLE_INSTALLS:false
push:
default:true
required:false
dry_run:
default:false
required:false
jobs:
main:
runs-on:ubuntu-latest
steps:
# This is a basic workflow to help you get started with Actions
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
dry_run:
type:boolean
required:false
default:false
description:When enabled, this workflow will print a preview instead of creating an actual post.
secrets:
GRAFANA_MISC_STATS_API_KEY:
required:true
GRAFANABOT_FORUM_KEY:
required:true
workflow_dispatch:
inputs:
version:
type:string
required:true
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
dry_run:
type:boolean
required:false
default:false
description:When enabled, this workflow will print a preview instead of creating an actual post.
{pkg="github.com/grafana/grafana/pkg",desc="apiserver is not allowed to import grafana core"}
]
files=[
"**/pkg/apiserver/*",
"**/pkg/apiserver/**/*"
]
[linters-settings.depguard.rules.apimachinery]
list-mode="lax"
allow=[
"github.com/grafana/grafana/pkg/apimachinery",
]
deny=[
{pkg="github.com/grafana/grafana/pkg",desc="apimachinery is not allowed to import grafana core"}
]
files=[
"**/pkg/apimachinery/*",
"**/pkg/apimachinery/**/*"
]
[linters-settings.depguard.rules.promlib]
list-mode="lax"# allow unless explicitely denied
deny=[
{pkg="github.com/grafana/grafana/pkg",desc="promlib is not allowed to import grafana core"}
]
allow=[
"github.com/grafana/grafana/pkg/promlib"
]
files=[
"**/pkg/promlib/*",
"**/pkg/promlib/**/*"
]
[linters-settings.gocritic]
@@ -85,7 +123,7 @@ enable = [
"dogsled",
"errcheck",
# "gochecknoinits",
"goconst",
# "goconst",
# "gocritic", # Temporarily disabled on 2022-09-09, running into weird bug "ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?"
"goimports",
"goprintffuncname",
@@ -141,6 +179,10 @@ text = "SA1019: http.CloseNotifier"
linters=["staticcheck"]
text="SA1019: strings.Title"
[[issues.exclude-rules]]
linters=["staticcheck"]
text="SA1019: grpc.Dial"
[[issues.exclude-rules]]
linters=["staticcheck"]
text="use fake service and real access control evaluator instead"
- **BrowseDashboards:** Prepend subpath to New Browse Dashboard actions. [#89130](https://github.com/grafana/grafana/issues/89130), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Fix rule storage to filter by group names using case-sensitive comparison. [#89063](https://github.com/grafana/grafana/issues/89063), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **RBAC:** List only the folders that the user has access to. [#89015](https://github.com/grafana/grafana/issues/89015), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **DashboardScene:** Fixes lack of re-render when updating field override properties. [#88985](https://github.com/grafana/grafana/issues/88985), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes inspect with transforms issue. [#88862](https://github.com/grafana/grafana/issues/88862), [@torkelo](https://github.com/torkelo)
- **Access Control:** Clean up permissions for deprovisioned data sources. [#88700](https://github.com/grafana/grafana/issues/88700), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Loki:** Fix editor history in wrong order. [#88669](https://github.com/grafana/grafana/issues/88669), [@svennergr](https://github.com/svennergr)
- **SSE:** Fix threshold unmarshal to avoid panic. [#88651](https://github.com/grafana/grafana/issues/88651), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **LibraryPanels/RBAC:** Ignore old folder permission check when deleting/patching lib panel. [#88493](https://github.com/grafana/grafana/issues/88493), [@kaydelaney](https://github.com/kaydelaney)
- **Dashboards:** Correctly display Admin access to dashboards in the UI. [#88473](https://github.com/grafana/grafana/issues/88473), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **LogsTable:** Fix default sort by time. [#88434](https://github.com/grafana/grafana/issues/88434), [@svennergr](https://github.com/svennergr)
- **Alerting:** Fix typo in JSON response for rule export. [#88090](https://github.com/grafana/grafana/issues/88090), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **CloudMonitoring:** Fix query type selection issue. [#88024](https://github.com/grafana/grafana/issues/88024), [@aangelisc](https://github.com/aangelisc)
- **Alerting:** Fix scheduler to sort rules before evaluation. [#88021](https://github.com/grafana/grafana/issues/88021), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **DashboardScene:** Skip panel repeats when values are the same. [#87896](https://github.com/grafana/grafana/issues/87896), [@torkelo](https://github.com/torkelo)
- **Alerting:** Do not store series values from past evaluations in state manager for no reason. [#87845](https://github.com/grafana/grafana/issues/87845), [@alexweav](https://github.com/alexweav)
- **DashboardScene:** Fixing major row repeat issues. [#87800](https://github.com/grafana/grafana/issues/87800), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes checkbox orienation in save forms. [#86490](https://github.com/grafana/grafana/issues/86490), [@torkelo](https://github.com/torkelo)
- **Provisioning:** Add override option to role provisioning. (Enterprise)
### Breaking changes
If you had selected your language as "Português Brasileiro" previously, this will be reset. You have to select it again in your Preferences for the fix to be applied and the translations will then be shown. Issue [#89374](https://github.com/grafana/grafana/issues/89374)
<!-- 11.0.1 END -->
<!-- 11.0.0 START -->
# 11.0.0 (2024-05-14)
### Features and enhancements
- **Alerting:** Add two sets of provisioning actions for rules and notifications . [#87572](https://github.com/grafana/grafana/issues/87572), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Chore:** Upgrade go to 1.21.10. [#87472](https://github.com/grafana/grafana/issues/87472), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Auth:** Force lowercase login/email for users. [#86985](https://github.com/grafana/grafana/issues/86985), [@eleijonmarck](https://github.com/eleijonmarck)
- **Navigation:** Add a return to previous button when navigating to different sections. [#86797](https://github.com/grafana/grafana/issues/86797), [@eledobleefe](https://github.com/eledobleefe)
- **DashboardScene:** Move add library panel view from grid item to drawer. [#86409](https://github.com/grafana/grafana/issues/86409), [@torkelo](https://github.com/torkelo)
- **Alerting:** Reduce set of fields that could trigger alert state change. [#86266](https://github.com/grafana/grafana/issues/86266), [@benoittgt](https://github.com/benoittgt)
- **OAuth:** Make sub claim required for generic oauth behind feature toggle. [#86118](https://github.com/grafana/grafana/issues/86118), [@kalleep](https://github.com/kalleep)
- **Loki:** Remove API restrictions on resource calls. [#85201](https://github.com/grafana/grafana/issues/85201), [@svennergr](https://github.com/svennergr)
- **Azure data sources:** Set selected config type before save. [#87632](https://github.com/grafana/grafana/issues/87632), [@bossinc](https://github.com/bossinc)
- **Loki:** Fix log context when no label types are present. [#87600](https://github.com/grafana/grafana/issues/87600), [@svennergr](https://github.com/svennergr)
- **DashboardDataSource:** Fixes issue where sometimes untransformed data could be returned . [#87484](https://github.com/grafana/grafana/issues/87484), [@torkelo](https://github.com/torkelo)
- **Provisioning:** Look up provisioned folders by UID when possible. [#87468](https://github.com/grafana/grafana/issues/87468), [@DanCech](https://github.com/DanCech)
- **Cloudwatch:** Update grafana-aws-sdk to fix sts endpoints. [#87345](https://github.com/grafana/grafana/issues/87345), [@iwysiu](https://github.com/iwysiu)
- **Select:** Fixes issue preserving search term (input) when selecting a value. [#87249](https://github.com/grafana/grafana/issues/87249), [@torkelo](https://github.com/torkelo)
- **Alerting:** Prevent search from locking the browser. [#87230](https://github.com/grafana/grafana/issues/87230), [@gillesdemey](https://github.com/gillesdemey)
- **DashboardScene:** Fixes issue referring to library panel in dashboard data source . [#87173](https://github.com/grafana/grafana/issues/87173), [@torkelo](https://github.com/torkelo)
- **Data source:** Maintain the default data source permissions when switching from unlicensed to licensed Grafana. [#87142](https://github.com/grafana/grafana/issues/87142), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Allow deleting contact points referenced only by auto-generated policies. [#87115](https://github.com/grafana/grafana/issues/87115), [@gillesdemey](https://github.com/gillesdemey)
- **Auth:** Sign sigV4 request after adding headers. [#87072](https://github.com/grafana/grafana/issues/87072), [@iwysiu](https://github.com/iwysiu)
- **DashboardScene:** Fixes issues with relative time range in panel edit. [#87026](https://github.com/grafana/grafana/issues/87026), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes issue with dashboard links and variables. [#87025](https://github.com/grafana/grafana/issues/87025), [@torkelo](https://github.com/torkelo)
- **SQLStore:** Disable redundant create and drop unique index migrations on dashboard table. [#86867](https://github.com/grafana/grafana/issues/86867), [@papagian](https://github.com/papagian)
- **LogContext:** Fix structured metadata labels being added as stream selectors. [#86826](https://github.com/grafana/grafana/issues/86826), [@svennergr](https://github.com/svennergr)
- **DashboardScene:** Fixes issue with editing panels that uses instanceState. [#86824](https://github.com/grafana/grafana/issues/86824), [@torkelo](https://github.com/torkelo)
- **Alerting:** Take receivers into account when custom grouping Alertmanager groups. [#86699](https://github.com/grafana/grafana/issues/86699), [@konrad147](https://github.com/konrad147)
- **LDAP:** Fix listing all non-matching groups. [#86689](https://github.com/grafana/grafana/issues/86689), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Fix simplified routing group by override. [#86563](https://github.com/grafana/grafana/issues/86563), [@JacobsonMT](https://github.com/JacobsonMT)
- **NodeGraph:** Fix invisible arrow tips in Editor. [#86548](https://github.com/grafana/grafana/issues/86548), [@timo](https://github.com/timo)
- **Dashboard:** DashboardPageProxy - Use chaining operators to prevent runtime error. [#86536](https://github.com/grafana/grafana/issues/86536), [@axelavargas](https://github.com/axelavargas)
- **DashboardScene:** Fixes issue saving new dashboard from panel edit. [#86480](https://github.com/grafana/grafana/issues/86480), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes minor issue transitioning between dashboards. [#86475](https://github.com/grafana/grafana/issues/86475), [@torkelo](https://github.com/torkelo)
- **MSSQL:** Add `SQL_VARIANT` converter and update test. [#86469](https://github.com/grafana/grafana/issues/86469), [@aangelisc](https://github.com/aangelisc)
- **DashboardScene:** Fixes react panels with old angular options. [#86411](https://github.com/grafana/grafana/issues/86411), [@torkelo](https://github.com/torkelo)
- **Nodegraph:** Fix issue with rendering single node. [#86195](https://github.com/grafana/grafana/issues/86195), [@aocenas](https://github.com/aocenas)
- **Datasources:** Add fixed width to name field in config editor. [#86179](https://github.com/grafana/grafana/issues/86179), [@sunker](https://github.com/sunker)
- **Alerting:** Return a 400 and errutil error when trying to delete a contact point that is referenced by a policy. [#86163](https://github.com/grafana/grafana/issues/86163), [@alexweav](https://github.com/alexweav)
- **DashboardScene:** Fixes issue moving between dashboards. [#86096](https://github.com/grafana/grafana/issues/86096), [@torkelo](https://github.com/torkelo)
- **Alerting:** Fix evaluation metrics to not count retries. [#86059](https://github.com/grafana/grafana/issues/86059), [@stevesg](https://github.com/stevesg)
- **Google Cloud Monitor:** Fix interface conversion for incorrect type in `cloudMonitoringProm.run`. [#85928](https://github.com/grafana/grafana/issues/85928), [@adamyeats](https://github.com/adamyeats)
- **Dashboard:** Allow `auto` refresh option when saving a dashboard. [#85922](https://github.com/grafana/grafana/issues/85922), [@bfmatei](https://github.com/bfmatei)
- **Time Zones:** Fix relative time when using UTC timezone. [#85779](https://github.com/grafana/grafana/issues/85779), [@ashharrison90](https://github.com/ashharrison90)
- **PostgreSQL:** Fix the verify-ca mode. [#85775](https://github.com/grafana/grafana/issues/85775), [@gabor](https://github.com/gabor)
- **DashboardScene:** Fixes issue with mobile responsive layout due to repeated grid item class. [#85741](https://github.com/grafana/grafana/issues/85741), [@torkelo](https://github.com/torkelo)
- **DashboardScene:** Fixes panel edit issue with clearing title not resulting in hover header mode . [#85633](https://github.com/grafana/grafana/issues/85633), [@torkelo](https://github.com/torkelo)
- **Angular deprecation:** Prefer local "angularDetected" value to the remote one. [#85632](https://github.com/grafana/grafana/issues/85632), [@xnyo](https://github.com/xnyo)
- **Chore:** Fix trailing spaces in prometheus min step. [#85579](https://github.com/grafana/grafana/issues/85579), [@euniceek](https://github.com/euniceek)
- **SAML:** Fix Authn request generation in case of HTTP-POST binding. (Enterprise)
- **Reporting:** Fix CSVs for library panels within folders. (Enterprise)
### Breaking changes
The `@grafana/e2e` package is deprecated in Grafana 11.0.0. If your Grafana plugin has end-to-end tests that use `@grafana/e2e`, it's recommended to replace them with [`@grafana/plugin-e2e`](https://www.npmjs.com/package/@grafana/plugin-e2e?activeTab=readme) and Playwright. For information on how to migrate, please refer to the plugin-e2e [docs](https://grafana.com/developers/plugin-tools/e2e-test-a-plugin/migrate-from-grafana-e2e). Issue [#85778](https://github.com/grafana/grafana/issues/85778)
### Plugin development fixes & changes
- **DateTimePicker:** Alternate timezones now behave correctly. [#87041](https://github.com/grafana/grafana/issues/87041), [@ashharrison90](https://github.com/ashharrison90)
- **TimeOfDayPicker:** Fix text colours in light mode. [#86776](https://github.com/grafana/grafana/issues/86776), [@ashharrison90](https://github.com/ashharrison90)
<!-- 11.0.0 END -->
<!-- 11.0.0-preview START -->
# 11.0.0-preview
### Features and enhancements
- **Alerting:** Editor role can access all provisioning API. [#85022](https://github.com/grafana/grafana/issues/85022), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **SQLStore:** Enable migration locking by default. [#84983](https://github.com/grafana/grafana/issues/84983), [@papagian](https://github.com/papagian)
- **Auth:** Remove `oauth_skip_org_role_update_sync` as an option. [#84972](https://github.com/grafana/grafana/issues/84972), [@eleijonmarck](https://github.com/eleijonmarck)
- **Canvas:** Add "infinite" pan / zoom functionality. [#84968](https://github.com/grafana/grafana/issues/84968), [@nmarrs](https://github.com/nmarrs)
- **InteractiveTable:** Add expand all to column. [#84966](https://github.com/grafana/grafana/issues/84966), [@abannachGrafana](https://github.com/abannachGrafana)
- **Snapshots:** Viewers can not create a Snapshot. [#84952](https://github.com/grafana/grafana/issues/84952), [@evictorero](https://github.com/evictorero)
- **GenAI:** Autogenerate title and description for panels and dashboards. [#84933](https://github.com/grafana/grafana/issues/84933), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Alerting:** Enable simplified routing FF by default. [#84856](https://github.com/grafana/grafana/issues/84856), [@JacobsonMT](https://github.com/JacobsonMT)
- **Auth:** Enable case insensitive logins/emails by default. [#84840](https://github.com/grafana/grafana/issues/84840), [@eleijonmarck](https://github.com/eleijonmarck)
- **RBAC:** Enable annotation permission update by default. [#84787](https://github.com/grafana/grafana/issues/84787), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Azure:** Support multi-resource namespace (NetApp Volumes). [#84779](https://github.com/grafana/grafana/issues/84779), [@aangelisc](https://github.com/aangelisc)
- **Prometheus:** Default support labels value endpoint with match param when prom type and version not set. [#84778](https://github.com/grafana/grafana/issues/84778), [@bohandley](https://github.com/bohandley)
- **MSSQL:** Add Windows AD/Kerberos auth. [#84742](https://github.com/grafana/grafana/issues/84742), [@asimpson](https://github.com/asimpson)
- **Chore:** Disable angular support by default. [#84738](https://github.com/grafana/grafana/issues/84738), [@tolzhabayev](https://github.com/tolzhabayev)
- **Elasticsearch:** Remove xpack button and make includeFrozen not dependant on it. [#84734](https://github.com/grafana/grafana/issues/84734), [@ivanahuckova](https://github.com/ivanahuckova)
- **Plugins:** Enable feature toggle `pluginsDynamicAngularDetectionPatterns` by default. [#84723](https://github.com/grafana/grafana/issues/84723), [@xnyo](https://github.com/xnyo)
- **Plugins:** Enable managedPluginsInstall by default. [#84721](https://github.com/grafana/grafana/issues/84721), [@oshirohugo](https://github.com/oshirohugo)
- **Alerting:** Stop persisting silences and nflog to disk. [#84706](https://github.com/grafana/grafana/issues/84706), [@JacobsonMT](https://github.com/JacobsonMT)
- **Histogram:** Add support for stacking mode. [#84693](https://github.com/grafana/grafana/issues/84693), [@adela-almasan](https://github.com/adela-almasan)
- **Teams:** Display teams page to team reader if they also have the access to list team permissions. [#84650](https://github.com/grafana/grafana/issues/84650), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Plugins:** Enable feature toggle `enablePluginsTracingByDefault` by default. [#84645](https://github.com/grafana/grafana/issues/84645), [@xnyo](https://github.com/xnyo)
- **NestedFolders:** Enable nested folders by default. [#84631](https://github.com/grafana/grafana/issues/84631), [@zserge](https://github.com/zserge)
- **Canvas:** Add direction options for connections. [#84620](https://github.com/grafana/grafana/issues/84620), [@drew08t](https://github.com/drew08t)
- **CloudWatch:** Static labels should use label name. [#84611](https://github.com/grafana/grafana/issues/84611), [@iwysiu](https://github.com/iwysiu)
- **Tempo:** Deprecate old search. [#84498](https://github.com/grafana/grafana/issues/84498), [@joey-grafana](https://github.com/joey-grafana)
- **Canvas:** Support dashed connection lines. [#84496](https://github.com/grafana/grafana/issues/84496), [@Develer](https://github.com/Develer)
- **I18n:** Expose current UI language in @grafana/runtime config. [#84457](https://github.com/grafana/grafana/issues/84457), [@joshhunt](https://github.com/joshhunt)
- **Canvas:** Add snapping to vertex edit. [#84417](https://github.com/grafana/grafana/issues/84417), [@drew08t](https://github.com/drew08t)
- **CloudWatch Logs:** Remove toggle for cloudWatchLogsMonacoEditor. [#84414](https://github.com/grafana/grafana/issues/84414), [@iwysiu](https://github.com/iwysiu)
- **Prometheus:** Use frontend package in Prometheus DS with a feature toggle. [#84397](https://github.com/grafana/grafana/issues/84397), [@bohandley](https://github.com/bohandley)
- **Alerting:** Show error message when error is thrown after clicking create alert f…. [#84367](https://github.com/grafana/grafana/issues/84367), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Storage:** Add support for listing resource history. [#84331](https://github.com/grafana/grafana/issues/84331), [@DanCech](https://github.com/DanCech)
- **Documentation:** Updated yaml for influxdb data sources. [#84119](https://github.com/grafana/grafana/issues/84119), [@ldomesjo](https://github.com/ldomesjo)
- **Queries:** Improve debug logging of metrics queries. [#84048](https://github.com/grafana/grafana/issues/84048), [@mmandrus](https://github.com/mmandrus)
- **Storage:** Support listing deleted entities. [#84043](https://github.com/grafana/grafana/issues/84043), [@DanCech](https://github.com/DanCech)
- **Explore:** Remove deprecated `query` option from `splitOpen`. [#83973](https://github.com/grafana/grafana/issues/83973), [@Elfo404](https://github.com/Elfo404)
- **Auth:** Set the default org after User login. [#83918](https://github.com/grafana/grafana/issues/83918), [@mgyongyosi](https://github.com/mgyongyosi)
- **Canvas:** Add datalink support to rectangle and ellipse elements. [#83870](https://github.com/grafana/grafana/issues/83870), [@nmarrs](https://github.com/nmarrs)
- **NodeGraph:** Edge color and stroke-dasharray support. [#83855](https://github.com/grafana/grafana/issues/83855), [@morrro01](https://github.com/morrro01)
- **Plugins:** Fetch instance provisioned plugins in cloud, to check full installation. [#83784](https://github.com/grafana/grafana/issues/83784), [@oshirohugo](https://github.com/oshirohugo)
- **Alerting:** Implement correct RBAC checks for creating new notification templates. [#83767](https://github.com/grafana/grafana/issues/83767), [@gillesdemey](https://github.com/gillesdemey)
- **Library panels:** Ensure all filters are visible on mobile . [#83759](https://github.com/grafana/grafana/issues/83759), [@ashharrison90](https://github.com/ashharrison90)
- **Alerting:** Allow inserting before or after existing policy. [#83704](https://github.com/grafana/grafana/issues/83704), [@gillesdemey](https://github.com/gillesdemey)
- **Chore:** Taint ArrayVector with `never` to further discourage. [#83681](https://github.com/grafana/grafana/issues/83681), [@joshhunt](https://github.com/joshhunt)
- **Canvas:** Add vertex control to connections. [#83653](https://github.com/grafana/grafana/issues/83653), [@drew08t](https://github.com/drew08t)
- **Alerting:** Disable legacy alerting for ever. [#83651](https://github.com/grafana/grafana/issues/83651), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Table:** Preserve filtered value state. [#83631](https://github.com/grafana/grafana/issues/83631), [@codeincarnate](https://github.com/codeincarnate)
- **Canvas:** Add ability to edit selected connections in the inline editor. [#83625](https://github.com/grafana/grafana/issues/83625), [@nmarrs](https://github.com/nmarrs)
- **Auth:** Add all settings to Azure AD SSO config UI. [#83618](https://github.com/grafana/grafana/issues/83618), [@mgyongyosi](https://github.com/mgyongyosi)
- **Cfg:** Add a setting to configure if the local file system is available. [#83616](https://github.com/grafana/grafana/issues/83616), [@mgyongyosi](https://github.com/mgyongyosi)
- **Server:** Reload TLS certs without a server restart. [#83589](https://github.com/grafana/grafana/issues/83589), [@chalapat](https://github.com/chalapat)
- **Transformations:** Add substring matcher to the 'Filter by Value' transformation. [#83548](https://github.com/grafana/grafana/issues/83548), [@timlevett](https://github.com/timlevett)
- **Folders:** Allow listing folders with write permission. [#83527](https://github.com/grafana/grafana/issues/83527), [@papagian](https://github.com/papagian)
- **Alerting:** Support deleting rule groups in the provisioning API. [#83514](https://github.com/grafana/grafana/issues/83514), [@joeblubaugh](https://github.com/joeblubaugh)
- **Cloudwatch:** Bump grafana/aws-sdk-go to 0.24.0. [#83480](https://github.com/grafana/grafana/issues/83480), [@idastambuk](https://github.com/idastambuk)
- **Alerting:** Stop persisting user-defined templates to disk. [#83456](https://github.com/grafana/grafana/issues/83456), [@JacobsonMT](https://github.com/JacobsonMT)
- **Transformer:** Config from Query: set threshold colours. [#83366](https://github.com/grafana/grafana/issues/83366), [@LarsStegman](https://github.com/LarsStegman)
- **Canvas:** Add ability to rotate elements. [#83295](https://github.com/grafana/grafana/issues/83295), [@nmarrs](https://github.com/nmarrs)
- **Tempo:** Add support for ad-hoc filters. [#83290](https://github.com/grafana/grafana/issues/83290), [@joey-grafana](https://github.com/joey-grafana)
- **Page:** Use browser native scrollbars for the main page content. [#82919](https://github.com/grafana/grafana/issues/82919), [@joshhunt](https://github.com/joshhunt)
- **Parca:** Apply template variables for labelSelector in query. [#82910](https://github.com/grafana/grafana/issues/82910), [@lzakharov](https://github.com/lzakharov)
- **Grafana/UI:** Replace Splitter with useSplitter hook and refactor PanelEdit snapping logic to useSnappingSplitter hook . [#82895](https://github.com/grafana/grafana/issues/82895), [@torkelo](https://github.com/torkelo)
- **Cloudwatch:** Add linting to restrict imports from core. [#82538](https://github.com/grafana/grafana/issues/82538), [@idastambuk](https://github.com/idastambuk)
- **Image Rendering:** Add settings for default width, height and scale. [#82040](https://github.com/grafana/grafana/issues/82040), [@khushijain21](https://github.com/khushijain21)
- **AzureMonitor:** User authentication support. [#81918](https://github.com/grafana/grafana/issues/81918), [@aangelisc](https://github.com/aangelisc)
- **Plugins:** Disable uninstall while cloud uninstall is not completed. [#81907](https://github.com/grafana/grafana/issues/81907), [@oshirohugo](https://github.com/oshirohugo)
- **Plugins:** Disable update button when cloud install is not completed. [#81716](https://github.com/grafana/grafana/issues/81716), [@oshirohugo](https://github.com/oshirohugo)
- **Expressions:** Sql expressions with Duckdb. [#81666](https://github.com/grafana/grafana/issues/81666), [@scottlepp](https://github.com/scottlepp)
- **Grafana:** Replace magic number with a constant variable in response status. [#80132](https://github.com/grafana/grafana/issues/80132), [@rlaisqls](https://github.com/rlaisqls)
- **Alerting:** Update rule access control to explicitly check for permissions "alert.rules:read" and "folders:read". [#78289](https://github.com/grafana/grafana/issues/78289), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Update provisioning API to support regular permissions. [#77007](https://github.com/grafana/grafana/issues/77007), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Whitelabelling:** Override version in UI from config. (Enterprise)
- **Reporting:** Delete Deprecated Endpoint for Single Dashboard. (Enterprise)
- **Plugins:** Add endpoint to get provisioned plugins from an instance. (Enterprise)
- **Reporting:** Delete Deprecated Endpoint for Scheduling. (Enterprise)
- **Reporting:** Delete Deprecated Endpoint for Email. (Enterprise)
### Bug fixes
- **RBAC:** Fix access checks for interactions with RBAC roles in hosted Grafana. [#85520](https://github.com/grafana/grafana/issues/85520), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Keybindings:** Replace mod+h as help shortcut with ? . [#85449](https://github.com/grafana/grafana/issues/85449), [@tskarhed](https://github.com/tskarhed)
- **RBAC:** Fix slow user permission search query on MySQL. [#85410](https://github.com/grafana/grafana/issues/85410), [@gamab](https://github.com/gamab)
- **BrowseDashboards:** Add subpath to URLs on Browse Dashboards page. [#85354](https://github.com/grafana/grafana/issues/85354), [@butkovv](https://github.com/butkovv)
- **Dashboards:** Fix issue where long ad-hoc values broke UI. [#85290](https://github.com/grafana/grafana/issues/85290), [@kaydelaney](https://github.com/kaydelaney)
- **NodeGraph:** Fix possible metadata mismatch between nodes in graph. [#85261](https://github.com/grafana/grafana/issues/85261), [@aocenas](https://github.com/aocenas)
- **Alerting:** Fix receiver inheritance when provisioning a notification policy. [#85193](https://github.com/grafana/grafana/issues/85193), [@julienduchesne](https://github.com/julienduchesne)
- **RBAC:** Fix slow user permission search query on MySQL. [#85058](https://github.com/grafana/grafana/issues/85058), [@gamab](https://github.com/gamab)
- **CloudMonitoring:** Only run query if filters are complete. [#85004](https://github.com/grafana/grafana/issues/85004), [@aangelisc](https://github.com/aangelisc)
- **BrowseDashboards:** Add subpath to URLs on Browse Dashboards page. [#84992](https://github.com/grafana/grafana/issues/84992), [@butkovv](https://github.com/butkovv)
- **Datasources:** Fix expressions that reference hidden queries. [#84977](https://github.com/grafana/grafana/issues/84977), [@sunker](https://github.com/sunker)
- **Canvas:** Fix crash when trying to add wind turbine element. [#84962](https://github.com/grafana/grafana/issues/84962), [@nmarrs](https://github.com/nmarrs)
- **InfluxDB:** Fix alias interpolation when it has $\_\_interval or multiple tags. [#84940](https://github.com/grafana/grafana/issues/84940), [@itsmylife](https://github.com/itsmylife)
- **Alerting:** Stop returning autogen routes for non-admin on api/v2/status. [#84864](https://github.com/grafana/grafana/issues/84864), [@JacobsonMT](https://github.com/JacobsonMT)
- **RolePicker:** Don't try to fetch roles for new form. [#84630](https://github.com/grafana/grafana/issues/84630), [@kalleep](https://github.com/kalleep)
- **Scenes:** Fix public dashboard email sharing section. [#84467](https://github.com/grafana/grafana/issues/84467), [@juanicabanas](https://github.com/juanicabanas)
- **Alerting:** Fix AlertsFolderView not showing rules when using nested folders. [#84465](https://github.com/grafana/grafana/issues/84465), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Scenes:** Fix issue with discarding unsaved changes modal in new dashboards. [#84369](https://github.com/grafana/grafana/issues/84369), [@kaydelaney](https://github.com/kaydelaney)
- **PostgreSQL:** Display correct initial value for tls mode. [#84356](https://github.com/grafana/grafana/issues/84356), [@gabor](https://github.com/gabor)
- **Cloudwatch:** Fix issue with Grafana Assume Role. [#84315](https://github.com/grafana/grafana/issues/84315), [@sarahzinger](https://github.com/sarahzinger)
- **Playlists:** Fix kiosk mode not activating when starting a playlist. [#84262](https://github.com/grafana/grafana/issues/84262), [@joshhunt](https://github.com/joshhunt)
- **Google Cloud Monitor:** Fix `res` being accessed after it becomes `nil` in `promql_query.go`. [#84223](https://github.com/grafana/grafana/issues/84223), [@adamyeats](https://github.com/adamyeats)
- **Elasticsearch:** Fix using of individual query time ranges when querying. [#84201](https://github.com/grafana/grafana/issues/84201), [@ivanahuckova](https://github.com/ivanahuckova)
- **InfluxDB:** Fix for wrong query generated with template variable and non regex operator on frontend mode. [#84175](https://github.com/grafana/grafana/issues/84175), [@wasim-nihal](https://github.com/wasim-nihal)
- **Prometheus:** Remove < and > from Query Builder Label Matcher operations. [#83981](https://github.com/grafana/grafana/issues/83981), [@kylebrandt](https://github.com/kylebrandt)
- **Worker:** Use CorsWorker to avoid CORS issues. [#83976](https://github.com/grafana/grafana/issues/83976), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Tempo:** Fix by operator to support multiple arguments. [#83947](https://github.com/grafana/grafana/issues/83947), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Loki:** Interpolate variables in live queries. [#83831](https://github.com/grafana/grafana/issues/83831), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix bug in screenshot service using incorrect limit. [#83786](https://github.com/grafana/grafana/issues/83786), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Cloudwatch:** Fix new ConfigEditor to add the custom namespace field . [#83762](https://github.com/grafana/grafana/issues/83762), [@idastambuk](https://github.com/idastambuk)
- **LDAP:** Fix LDAP users authenticated via auth proxy not being able to use LDAP active sync. [#83715](https://github.com/grafana/grafana/issues/83715), [@Jguer](https://github.com/Jguer)
- **Elasticsearch:** Fix adhoc filters not applied in frontend mode. [#83592](https://github.com/grafana/grafana/issues/83592), [@svennergr](https://github.com/svennergr)
- **RBAC:** Fix delete team permissions on team delete. [#83442](https://github.com/grafana/grafana/issues/83442), [@gamab](https://github.com/gamab)
- **Dashboards:** Fixes issue where panels would not refresh if time range updated while in panel view mode. [#83418](https://github.com/grafana/grafana/issues/83418), [@kaydelaney](https://github.com/kaydelaney)
- **AzureMonitor:** Fix mishandled resources vs workspaces. [#83184](https://github.com/grafana/grafana/issues/83184), [@adamyeats](https://github.com/adamyeats)
- **Sql:** Fix an issue with connection limits not updating when jsonData is updated. [#83175](https://github.com/grafana/grafana/issues/83175), [@jarben](https://github.com/jarben)
- **Alerting:** Use time_intervals instead of the deprecated mute_time_intervals in a…. [#83147](https://github.com/grafana/grafana/issues/83147), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **DataFrame:** Improve typing of arrayToDataFrame helper and fix null/undefined handling. [#83104](https://github.com/grafana/grafana/issues/83104), [@aocenas](https://github.com/aocenas)
- **Cloudwatch:** Fix filter button issue in VariableEditor. [#83082](https://github.com/grafana/grafana/issues/83082), [@wilguo](https://github.com/wilguo)
- **Alerting:** Fix panic in provisioning filter contacts by unknown name. [#83070](https://github.com/grafana/grafana/issues/83070), [@JacobsonMT](https://github.com/JacobsonMT)
- **Search:** Include collapsed panels in search v2. [#83047](https://github.com/grafana/grafana/issues/83047), [@suntala](https://github.com/suntala)
- **Plugins:** Fix loading modules that only export a default. [#82299](https://github.com/grafana/grafana/issues/82299), [@sd2k](https://github.com/sd2k)
- **Table:** Fix units showing in footer after reductions without units. [#82081](https://github.com/grafana/grafana/issues/82081), [@codeincarnate](https://github.com/codeincarnate)
- **AuthProxy:** Invalidate previous cached item for user when changes are made to any header. [#81445](https://github.com/grafana/grafana/issues/81445), [@klesh](https://github.com/klesh)
- **Unit:** Add SI prefix for empty unit. [#79897](https://github.com/grafana/grafana/issues/79897), [@raymalt](https://github.com/raymalt)
- **Variables:** Multi-select DataSource variables are inconsistently displayed in the Data source picker. [#76039](https://github.com/grafana/grafana/issues/76039), [@polibb](https://github.com/polibb)
- **SAML:** Better error message for saml private key type errors. (Enterprise)
- **Reporting:** Fix monthly schedule text and modify monthly schedule inputs behavior. (Enterprise)
### Breaking changes
In 9.3 we released a way to set `case_insensitive_login` to true. This enables, lowercased username, login for users signing up with Grafana, for more information read our [blog post](https://grafana.com/blog/2022/12/12/guide-to-using-the-new-grafana-cli-user-identity-conflict-tool-in-grafana-9.3/).
If you encounter any issues with users signing up, we recommend everyone to use lowercase in their login, username otherwise refer to the blog post for how to solve any of the users that can be conflicting with their login/username. Issue [#84972](https://github.com/grafana/grafana/issues/84972)
This is a breaking change for users who use uppercase in their login or emails. The users are by default now using lowercase as part of their login and emails.
Before this code change, users would be able to still log in as either `aUser@user.com` or `auser@user.com`, users are now only able to login and signup with grafana using lowercasing `auser@user.com`.
We recommend reviewing the [blog post](https://grafana.com/blog/2022/12/12/guide-to-using-the-new-grafana-cli-user-identity-conflict-tool-in-grafana-9.3/#:~:text=A%20user%20identity%20conflict%20occurs,more%20capitalized%20letters%20%E2%80%9Cgrafana_LOGIN%E2%80%9D.) about using the CLI and why this is important for us to consolidate our security efforts. Issue [#84840](https://github.com/grafana/grafana/issues/84840)
This is a breaking change for users who have restricted the default access to annotation permissions by removing annotation related actions from the Viewer or Editor basic roles. In such cases we are not able to complete the permission migration automatically, and you will see the following log in your Grafana server logs: `basic role permissions missing annotation permissions, skipping annotation permission migration`. You will also notice that dashboard and folder permissions do not appear in the user interface. Don't worry, all the permissions that you assigned are still there, they are just not being displayed.
We recommend reviewing what annotation permissions you have revoked from the basic roles (you can reference [our documentation](https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/) to see what permissions are missing). If you are fine granting them back to the basic roles, do that, then run the following data base command: `DELETE FROM migration_log WHERE migration_id="managed dashboard permissions annotation actions migration"` and restart Grafana. This will make sure that the annotation permission migration gets run again, and this time it should succeed.
If you are not willing to grant the annotation permissions back to the basic roles, please disable `annotationPermissionUpdate` feature toggle (add `annotationPermissionUpdate = false` to `[feature_toggles]` in Grafana's configuration file) and reach out to Grafana's support team. When we can learn more about your use case, we will work with you to find a solution. Issue [#84787](https://github.com/grafana/grafana/issues/84787)
Angular support is turned `off` by default starting Grafana 11, you can find all the details in a [dedicated documentation page.](https://grafana.com/docs/grafana/latest/developers/angular_deprecation/)
The **xpack** checkbox dependency for enabling the **Include Frozen Indices** functionality has been removed, allowing direct control over frozen indices inclusion. Users should review their datasource settings to ensure the "Include Frozen Indices" option is configured as desired, particularly if xpack was previously disabled. This change aims to simplify configuration options and may affect queries if settings are not adjusted accordingly. Issue [#84734](https://github.com/grafana/grafana/issues/84734)
For data sources that extend `DataSourceWithBackend`, the `filterQuery` method is now called **before** the data source `query` method. If the `filterQuery` method assumes that some kind of query migration happens before this method is called, you now need to do the migration inside this method.
Users of data source plugins that did not previously remove hidden queries will see a change of behaviour: Before this change, clicking the `Disable query` button had no impact on the query result, but starting from Grafana 11 responses associated with hidden queries will no longer be returned to the panel. Issue [#84656](https://github.com/grafana/grafana/issues/84656)
SystemJS is no longer exported from `@grafana/runtime`. Plugin developers should instead rely on importing modules / packages using standard TS import syntax and npm/yarn for package installation.
We've removed the Loki tab from the Tempo data source. You can still access Logs through the Loki data source or can also create a link from Tempo to Loki via our [trace to logs](https://grafana.com/docs/grafana/latest/datasources/tempo/configure-tempo-data-source/#trace-to-logs) feature. Issue [#84346](https://github.com/grafana/grafana/issues/84346)
The `query` option in `splitOpen` was deprecated in `10.1` and is now being removed. Issue [#83973](https://github.com/grafana/grafana/issues/83973)
Since https://github.com/grafana/grafana/pull/38942 (Grafana `8.2.0`) the `ExploreQueryFieldProps` type was deprecated and is now removed. Issue [#83972](https://github.com/grafana/grafana/issues/83972)
Since https://github.com/grafana/grafana/pull/38942 `exploreId` is no longer supplied to query editors in Explore. The property was deprecated in `10.3.0` and is now removed. If your query editor needs to know from which app is being rendered, you can check the `app` prop in `QueryEditorProps`. Issue [#83971](https://github.com/grafana/grafana/issues/83971)
The Vector interface that was deprecated in Grafana 10 has been further deprecated. Using it will now generate build-time Typescript errors, but remain working at runtime. If you're still using ArrayVector in your code, it should be removed immediately and replaced with plain arrays. Plugins compiled against older versions and depend on calling get/set will continue to work because the Array prototype still has a modified prototype. This will be removed in the future Issue [#83681](https://github.com/grafana/grafana/issues/83681)
In Grafana 11 the legacy alerting reaches the end-of-life. Users cannot enable it and Grafana will refuse to start if the settings are not updated to run the new Grafana Alerting. Migration from legacy alerting is not available as well. Grafana 10.4.x is the last version that offers the migration.
- If the setting `[alerting].enable` is set to `true` Grafana will not start and emit the log message with recommendations to change the configuration
- Setting `[alerting].max_annotation_age` is replaced by `[unified_alerting.state_history.annotations].max_age`
- Setting `[alerting].max_annotations_to_keep` is replaced by `[unified_alerting.state_history.annotations].max_annotations_to_keep`
- setting `[unified_alerting].execute_alerts` does not fall back to the legacy `[alerting].execute_alerts` anymore. Instead, the default value `true` is used.
- setting `[unified_alerting].evaluation_timeout` does not fall back to the legacy setting `[alerting].evaluation_timeout_seconds` in the case when it is either invalid or has the default value. Now, if the setting is invalid, it will cause Grafana to exit.
- setting `[unified_alerting].min_interval` does not fall back to the legacy setting `[alerting].min_interval_seconds` in the case when it is either invalid or has the default value. Now, if the setting is invalid, it will cause Grafana to exit. Issue [#83651](https://github.com/grafana/grafana/issues/83651)
We've removed React 17 as a peer dependency from our packages. Anyone using the new versions of these packages should ensure they've upgraded to React 18 following the upgrade steps: https://react.dev/blog/2022/03/08/react-18-upgrade-guide Issue [#83524](https://github.com/grafana/grafana/issues/83524)
We're adding a validation between the response of the ID token HD parameter and the list of allowed domains as an extra layer of security. In the event that the HD parameter doesn't match the list of allowed domains, we're denying access to Grafana.
If you set Google OAuth configuration using `api_url,` you might be using the legacy implementation of OAuth, which doesn't have the HD parameter describing the organisation the approved token comes from. This could break your login flow.
This feature can be turned off through the configuration toggle `validate_hd `. Anyone using the legacy Google OAuth configuration should turn off this validation if the ID Token response doesn't have the HD parameter. Issue [#83229](https://github.com/grafana/grafana/issues/83229)
The direct input datasource plugin has been removed in Grafana 11. It has been in alpha for 4 years and is superseded by [TestData](https://grafana.com/docs/grafana/latest/datasources/testdata/) that ships with Grafana.
The alert rule API methods now require more permissions for users to perform changes to rules. To create a new rule or update or delete an existing one, the user must have permission to read from the folder that stores the rules (i.e. permission `folder:read` in the scope of the rule's folder) and permission to read alert rules in that folder (i.e. permission `alert.rules:read`
The standard roles already have all required permissions, and therefore, neither OSS nor Grafana Enterprise users who use the fixed roles (standard roles provided by Grafana) are affected. **Only Grafana Enterprise users who create custom roles can be affected** Issue [#78289](https://github.com/grafana/grafana/issues/78289)
The deprecated endpoint for rendering pdf of a single dashboard `GET /render/pdf/:dashboardID` and report model fields `dashboardId`, `dashboardName`, `dashboardUid`, and `templateVars` have been removed. Only new endpoint `GET /api/reports/render/pdfs` accepting `dashboards` list is support moving forward Issue [#6362](https://github.com/grafana/grafana/issues/6362)
The deprecated old schedule setting with separate fields `hour,``minute`, `day` have been removed. Only new schedule setting with `startDate` will be supported moving forward Issue [#6329](https://github.com/grafana/grafana/issues/6329)
The deprecated `email` field to send a report via `/api/reports/email` endpoint have been removed. Only `emails` field will be supported moving forward. Issue [#6328](https://github.com/grafana/grafana/issues/6328)
### Plugin development fixes & changes
- **GrafanaUI:** Add new `EmptyState` component. [#84891](https://github.com/grafana/grafana/issues/84891), [@ashharrison90](https://github.com/ashharrison90)
- **ExtSvcAccounts:** FIX prevent service account deletion. [#84511](https://github.com/grafana/grafana/issues/84511), [@gamab](https://github.com/gamab)
- **Loki:** Fix null pointer exception in case request returned an error. [#84401](https://github.com/grafana/grafana/issues/84401), [@svennergr](https://github.com/svennergr)
- **Auth:** Only call rotate token if we have a session expiry cookie. [#84181](https://github.com/grafana/grafana/issues/84181), [@kalleep](https://github.com/kalleep)
- **Serviceaccounts:** Add ability to add samename SA for different orgs. [#83953](https://github.com/grafana/grafana/issues/83953), [@eleijonmarck](https://github.com/eleijonmarck)
- **GenAI:** Update the component only when the response is fully generated. [#83895](https://github.com/grafana/grafana/issues/83895), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Tempo:** Better fallbacks for metrics query. [#83688](https://github.com/grafana/grafana/issues/83688), [@adrapereira](https://github.com/adrapereira)
- **Tempo:** Add template variable interpolation for filters. [#83667](https://github.com/grafana/grafana/issues/83667), [@joey-grafana](https://github.com/joey-grafana)
- **QueryVariableEditor:** Select a variable ds does not work. [#83181](https://github.com/grafana/grafana/issues/83181), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Logs Panel:** Add option extra UI functionality for log context. [#83129](https://github.com/grafana/grafana/issues/83129), [@svennergr](https://github.com/svennergr)
- **Plugins:** Enable feature toggle angularDeprecationUI by default. [#82880](https://github.com/grafana/grafana/issues/82880), [@xnyo](https://github.com/xnyo)
- **Table Component:** Improve text-wrapping behavior of cells. [#82872](https://github.com/grafana/grafana/issues/82872), [@ahuarte47](https://github.com/ahuarte47)
- **Alerting:** Dry-run legacy upgrade on startup. [#82835](https://github.com/grafana/grafana/issues/82835), [@JacobsonMT](https://github.com/JacobsonMT)
- **Tempo:** Upgrade @grafana/lezer-traceql patch version to use trace metrics syntax. [#82532](https://github.com/grafana/grafana/issues/82532), [@joey-grafana](https://github.com/joey-grafana)
- **Logs Panel:** Add CSV to download options. [#82480](https://github.com/grafana/grafana/issues/82480), [@gtk-grafana](https://github.com/gtk-grafana)
- **Folders:** Switch order of the columns in folder table indexes so that org_id becomes first. [#82454](https://github.com/grafana/grafana/issues/82454), [@papagian](https://github.com/papagian)
- **Alerting:** Send alerts to APIv2 when using the Alertmanager contact point. [#82373](https://github.com/grafana/grafana/issues/82373), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Emit warning when creating or updating unusually large groups. [#82279](https://github.com/grafana/grafana/issues/82279), [@alexweav](https://github.com/alexweav)
- **Keybindings:** Change 'h' to 'mod+h' to open help modal. [#82253](https://github.com/grafana/grafana/issues/82253), [@tskarhed](https://github.com/tskarhed)
- **Chore:** Update arrow and prometheus dependencies. [#82215](https://github.com/grafana/grafana/issues/82215), [@ryantxu](https://github.com/ryantxu)
- **Loki Log Context:** Always show label filters with at least one parsed label. [#82211](https://github.com/grafana/grafana/issues/82211), [@svennergr](https://github.com/svennergr)
- **RBAC:** Migration to remove the scope from permissions where action is alert.instances:read. [#82202](https://github.com/grafana/grafana/issues/82202), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **JWT Authentication:** Add support for specifying groups in auth.jwt for teamsync. [#82175](https://github.com/grafana/grafana/issues/82175), [@Jguer](https://github.com/Jguer)
- **Alerting:** GA alertingPreviewUpgrade and enable by default. [#82038](https://github.com/grafana/grafana/issues/82038), [@JacobsonMT](https://github.com/JacobsonMT)
- **Elasticsearch:** Apply ad-hoc filters to annotation queries. [#82032](https://github.com/grafana/grafana/issues/82032), [@mikelv92](https://github.com/mikelv92)
- **Alerting:** Show legacy provisioned alert rules warning. [#81902](https://github.com/grafana/grafana/issues/81902), [@gillesdemey](https://github.com/gillesdemey)
- **Tempo:** Support TraceQL metrics queries. [#81886](https://github.com/grafana/grafana/issues/81886), [@adrapereira](https://github.com/adrapereira)
- **Tempo:** Support backtick strings. [#81802](https://github.com/grafana/grafana/issues/81802), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Chore:** Update test database initialization. [#81673](https://github.com/grafana/grafana/issues/81673), [@DanCech](https://github.com/DanCech)
- **Elasticsearch:** Implement CheckHealth method in the backend. [#81671](https://github.com/grafana/grafana/issues/81671), [@mikelv92](https://github.com/mikelv92)
- **Tooltips:** Hide dimension configuration when tooltip mode is hidden. [#81627](https://github.com/grafana/grafana/issues/81627), [@codeincarnate](https://github.com/codeincarnate)
- **Alerting:** Show warning when cp does not exist and invalidate the form. [#81621](https://github.com/grafana/grafana/issues/81621), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **User:** Add uid colum to user table. [#81615](https://github.com/grafana/grafana/issues/81615), [@ryantxu](https://github.com/ryantxu)
- **Cloudwatch:** Remove core imports from infra/log. [#81543](https://github.com/grafana/grafana/issues/81543), [@njvrzm](https://github.com/njvrzm)
- **Alerting:** Add pagination and improved search for notification policies. [#81535](https://github.com/grafana/grafana/issues/81535), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Move action buttons in the alert list view. [#81341](https://github.com/grafana/grafana/issues/81341), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Grafana/ui:** Add deprecation notices to the legacy layout components. [#81328](https://github.com/grafana/grafana/issues/81328), [@Clarity-89](https://github.com/Clarity-89)
- **Cloudwatch:** Deprecate cloudwatchNewRegionsHandler feature toggle and remove core imports from featuremgmt. [#81310](https://github.com/grafana/grafana/issues/81310), [@njvrzm](https://github.com/njvrzm)
- **Folders:** Forbid performing operations on folders via dashboards HTTP API. [#81264](https://github.com/grafana/grafana/issues/81264), [@undef1nd](https://github.com/undef1nd)
- **Feature Management:** Move awsDatasourcesNewFormStyling to Public Preview. [#81257](https://github.com/grafana/grafana/issues/81257), [@idastambuk](https://github.com/idastambuk)
- **Alerting:** Update API to use folders' full paths. [#81214](https://github.com/grafana/grafana/issues/81214), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Datasources:** Add concurrency number to the settings. [#81212](https://github.com/grafana/grafana/issues/81212), [@itsmylife](https://github.com/itsmylife)
- **CloudWatch:** Remove dependencies on grafana/pkg/setting. [#81208](https://github.com/grafana/grafana/issues/81208), [@iwysiu](https://github.com/iwysiu)
- **Logs:** Table UI - Allow users to resize field selection section. [#81201](https://github.com/grafana/grafana/issues/81201), [@gtk-grafana](https://github.com/gtk-grafana)
- **Grafana/ui:** Add Space component. [#81145](https://github.com/grafana/grafana/issues/81145), [@Clarity-89](https://github.com/Clarity-89)
- **Grafana/ui:** Add deprecation notice to the Form component. [#81068](https://github.com/grafana/grafana/issues/81068), [@Clarity-89](https://github.com/Clarity-89)
- **Alerting:** Swap order between Annotations and Labels step in the alert rule form. [#81060](https://github.com/grafana/grafana/issues/81060), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Plugins:** Change managedPluginsInstall to public preview. [#81053](https://github.com/grafana/grafana/issues/81053), [@oshirohugo](https://github.com/oshirohugo)
- **Tempo:** Add span, trace vars to trace to metrics interpolation. [#81046](https://github.com/grafana/grafana/issues/81046), [@joey-grafana](https://github.com/joey-grafana)
- **Tempo:** Support multiple filter expressions for service graph queries. [#81037](https://github.com/grafana/grafana/issues/81037), [@domasx2](https://github.com/domasx2)
- **Alerting:** Support for simplified notification settings in rule API. [#81011](https://github.com/grafana/grafana/issues/81011), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Plugins:** Add fuzzy search to plugins catalogue. [#81001](https://github.com/grafana/grafana/issues/81001), [@Ukochka](https://github.com/Ukochka)
- **CloudWatch:** Only override contextDialer when using PDC. [#80992](https://github.com/grafana/grafana/issues/80992), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Alerting:** Add a feature flag to periodically save states. [#80987](https://github.com/grafana/grafana/issues/80987), [@JohnnyQQQQ](https://github.com/JohnnyQQQQ)
- **RBAC:** Return the underlying error instead of internal server or bad request for managed permission endpoints. [#80974](https://github.com/grafana/grafana/issues/80974), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Correlations:** Enable correlations feature toggle by default. [#80881](https://github.com/grafana/grafana/issues/80881), [@ifrost](https://github.com/ifrost)
- **Transformations:** Focus search input on drawer open. [#80859](https://github.com/grafana/grafana/issues/80859), [@codeincarnate](https://github.com/codeincarnate)
- **Packaging:** Use the GRAFANA_HOME variable in postinst script on Debian. [#80853](https://github.com/grafana/grafana/issues/80853), [@denisse-dev](https://github.com/denisse-dev)
- **Visualizations:** Hue gradient mode now applies to the line color . [#80805](https://github.com/grafana/grafana/issues/80805), [@torkelo](https://github.com/torkelo)
- **Drawer:** Resizable via draggable edge . [#80796](https://github.com/grafana/grafana/issues/80796), [@torkelo](https://github.com/torkelo)
- **Alerting:** Add setting to distribute rule group evaluations over time. [#80766](https://github.com/grafana/grafana/issues/80766), [@alexweav](https://github.com/alexweav)
- **VizTooltips:** Copy to clipboard functionality. [#80761](https://github.com/grafana/grafana/issues/80761), [@adela-almasan](https://github.com/adela-almasan)
- **AuthN:** Support reloading SSO config after the sso settings have changed. [#80734](https://github.com/grafana/grafana/issues/80734), [@mgyongyosi](https://github.com/mgyongyosi)
- **Logs Panel:** Add total count to logs volume panel in explore. [#80730](https://github.com/grafana/grafana/issues/80730), [@gtk-grafana](https://github.com/gtk-grafana)
- **Alerting:** Improve integration with dashboards. [#80201](https://github.com/grafana/grafana/issues/80201), [@konrad147](https://github.com/konrad147)
- **Transformations:** Use an explicit join seperator when converting from an array to string field. [#80169](https://github.com/grafana/grafana/issues/80169), [@ryantxu](https://github.com/ryantxu)
- **Build:** Update plugin IDs list in build and release process. [#80160](https://github.com/grafana/grafana/issues/80160), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **NestedFolders:** Support Shared with me folder for showing items you've been granted access to. [#80141](https://github.com/grafana/grafana/issues/80141), [@joshhunt](https://github.com/joshhunt)
- **Log Context:** Add highlighted words to log rows. [#80119](https://github.com/grafana/grafana/issues/80119), [@svennergr](https://github.com/svennergr)
- **Tempo:** Add `}` when `{` is inserted automatically. [#80113](https://github.com/grafana/grafana/issues/80113), [@harrymaurya05](https://github.com/harrymaurya05)
- **Time Range:** Copy-paste Time Range. [#80107](https://github.com/grafana/grafana/issues/80107), [@harisrozajac](https://github.com/harisrozajac)
- **Table:** Keep expanded rows persistent when data changes if it has unique ID. [#80031](https://github.com/grafana/grafana/issues/80031), [@aocenas](https://github.com/aocenas)
- **FeatureFlags:** Remove the unsupported/undocumented option to read flags from a file. [#79959](https://github.com/grafana/grafana/issues/79959), [@ryantxu](https://github.com/ryantxu)
- **Transformations:** Add Group to Nested Tables Transformation. [#79952](https://github.com/grafana/grafana/issues/79952), [@codeincarnate](https://github.com/codeincarnate)
- **Cloudwatch Metrics:** Adjust error handling. [#79911](https://github.com/grafana/grafana/issues/79911), [@idastambuk](https://github.com/idastambuk)
- **Tempo:** Decouple Tempo from Grafana core. [#79888](https://github.com/grafana/grafana/issues/79888), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Table Panel:** Filter column values with operators or expressions. [#79853](https://github.com/grafana/grafana/issues/79853), [@ahuarte47](https://github.com/ahuarte47)
- **Alerting:** MuteTiming service return errutil + GetTiming by name. [#79772](https://github.com/grafana/grafana/issues/79772), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Azure Monitor:** Add select all subscription option for ARG queries. [#79582](https://github.com/grafana/grafana/issues/79582), [@alyssabull](https://github.com/alyssabull)
- **Alerting:** Enable sending notifications to a specific topic on Telegram. [#79546](https://github.com/grafana/grafana/issues/79546), [@th0th](https://github.com/th0th)
- **Cloudwatch:** Add AWS/EMRServerless and AWS/KafkaConnect Metrics . [#79532](https://github.com/grafana/grafana/issues/79532), [@DugeraProve](https://github.com/DugeraProve)
- **Transformations:** Move transformation help to drawer component. [#79247](https://github.com/grafana/grafana/issues/79247), [@codeincarnate](https://github.com/codeincarnate)
- **Stat:** Support no value in spark line. [#78986](https://github.com/grafana/grafana/issues/78986), [@FOWind](https://github.com/FOWind)
- **NodeGraph:** Use layered layout instead of force based layout. [#78957](https://github.com/grafana/grafana/issues/78957), [@aocenas](https://github.com/aocenas)
- **Alerting:** Create alertingQueryOptimization feature flag for alert query optimization. [#78932](https://github.com/grafana/grafana/issues/78932), [@JacobsonMT](https://github.com/JacobsonMT)
- **Dashboard:** New EmbeddedDashboard runtime component . [#78916](https://github.com/grafana/grafana/issues/78916), [@torkelo](https://github.com/torkelo)
- **Alerting:** Show warning when query optimized. [#78751](https://github.com/grafana/grafana/issues/78751), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Add support for TTL for pushover for Mimir Alertmanager. [#78687](https://github.com/grafana/grafana/issues/78687), [@gillesdemey](https://github.com/gillesdemey)
- **Grafana/ui:** Enable removing values in multiselect opened state. [#78662](https://github.com/grafana/grafana/issues/78662), [@FOWind](https://github.com/FOWind)
- **SQL datasources:** Consistent interval handling. [#78517](https://github.com/grafana/grafana/issues/78517), [@gabor](https://github.com/gabor)
- **Alerting:** During legacy migration reduce the number of created silences. [#78505](https://github.com/grafana/grafana/issues/78505), [@JacobsonMT](https://github.com/JacobsonMT)
- **UI:** New share button and toolbar reorganize. [#77563](https://github.com/grafana/grafana/issues/77563), [@evictorero](https://github.com/evictorero)
- **Alerting:** Update rule API to address folders by UID. [#74600](https://github.com/grafana/grafana/issues/74600), [@papagian](https://github.com/papagian)
- **Reports:** Add uid column to the database. (Enterprise)
- **Plugins:** Add metrics for cloud plugin install. (Enterprise)
- **RBAC:** Make seeding resilient to failed plugin loading. (Enterprise)
- **Plugins:** Support disabling caching at a plugin instance level. (Enterprise)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#82914](https://github.com/grafana/grafana/issues/82914), [@volcanonoodle](https://github.com/volcanonoodle)
- **LibraryPanels/RBAC:** Fix issue where folder scopes weren't being correctly inherited. [#82700](https://github.com/grafana/grafana/issues/82700), [@kaydelaney](https://github.com/kaydelaney)
- **Loki:** Update `@grafana/lezer-logql` to `0.2.3` containing fix for ip label name. [#82378](https://github.com/grafana/grafana/issues/82378), [@ivanahuckova](https://github.com/ivanahuckova)
- **Elasticsearch:** Fix resource calls for paths that include `:`. [#82327](https://github.com/grafana/grafana/issues/82327), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Return provenance of notification templates. [#82274](https://github.com/grafana/grafana/issues/82274), [@julienduchesne](https://github.com/julienduchesne)
- **LibraryPanels:** Fix issue with repeated library panels. [#82255](https://github.com/grafana/grafana/issues/82255), [@kaydelaney](https://github.com/kaydelaney)
- **Loki:** Fix fetching of values for label if no previous equality operator. [#82251](https://github.com/grafana/grafana/issues/82251), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix data races and improve testing. [#81994](https://github.com/grafana/grafana/issues/81994), [@diegommm](https://github.com/diegommm)
- **chore:** Fix typo in GraphTresholdsStyleMode enum. [#81960](https://github.com/grafana/grafana/issues/81960), [@paulJonesCalian](https://github.com/paulJonesCalian)
- **CloudWatch:** Fix code editor not resizing on mount when content height is > 200px. [#81911](https://github.com/grafana/grafana/issues/81911), [@kevinwcyu](https://github.com/kevinwcyu)
- **FieldOptions:** Revert scalable unit option as we already support this via custom prefix/suffixes . [#81893](https://github.com/grafana/grafana/issues/81893), [@torkelo](https://github.com/torkelo)
- **Browse Dashboards:** Imported dashboards now display immediately in the dashboard list. [#81819](https://github.com/grafana/grafana/issues/81819), [@ashharrison90](https://github.com/ashharrison90)
- **Elasticsearch:** Set middlewares from Grafana's `httpClientProvider`. [#81814](https://github.com/grafana/grafana/issues/81814), [@svennergr](https://github.com/svennergr)
- **Folders:** Fix failure to update folder in SQLite. [#81795](https://github.com/grafana/grafana/issues/81795), [@papagian](https://github.com/papagian)
- **Plugins:** Never disable add new data source for core plugins. [#81774](https://github.com/grafana/grafana/issues/81774), [@oshirohugo](https://github.com/oshirohugo)
- **Alerting:** Fixes for pending period. [#81718](https://github.com/grafana/grafana/issues/81718), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix editing group of nested folder. [#81665](https://github.com/grafana/grafana/issues/81665), [@gillesdemey](https://github.com/gillesdemey)
- **Plugins:** Don't auto prepend app sub url to plugin asset paths. [#81658](https://github.com/grafana/grafana/issues/81658), [@wbrowne](https://github.com/wbrowne)
- **Alerting:** Fix inconsistent AM raw config when applied via sync vs API. [#81655](https://github.com/grafana/grafana/issues/81655), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Fix support check for export with modifications. [#81602](https://github.com/grafana/grafana/issues/81602), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix selecting empty contact point value for notification policy inheritance. [#81482](https://github.com/grafana/grafana/issues/81482), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix child provisioned polices not being rendered as provisioned. [#81449](https://github.com/grafana/grafana/issues/81449), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Tempo:** Fix durations in TraceQL. [#81418](https://github.com/grafana/grafana/issues/81418), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Logs:** Fix toggleable filters to be applied for specified query. [#81368](https://github.com/grafana/grafana/issues/81368), [@ivanahuckova](https://github.com/ivanahuckova)
- **Loki:** Fix label not being added to all subexpressions. [#81360](https://github.com/grafana/grafana/issues/81360), [@svennergr](https://github.com/svennergr)
- **Loki/Elastic:** Assert queryfix value to always be string. [#81349](https://github.com/grafana/grafana/issues/81349), [@svennergr](https://github.com/svennergr)
- **Tempo:** Add query ref in the query editor. [#81343](https://github.com/grafana/grafana/issues/81343), [@joey-grafana](https://github.com/joey-grafana)
- **Transformations:** Use the display name of the original y field for the predicted field of the regression analysis transformation. [#81332](https://github.com/grafana/grafana/issues/81332), [@oscarkilhed](https://github.com/oscarkilhed)
- **Field:** Fix perf regression in getUniqueFieldName(). [#81323](https://github.com/grafana/grafana/issues/81323), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Fix scheduler to group folders by the unique key (orgID and UID). [#81303](https://github.com/grafana/grafana/issues/81303), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Explore:** Set default time range to now-1h. [#81135](https://github.com/grafana/grafana/issues/81135), [@ifrost](https://github.com/ifrost)
- **Elasticsearch:** Fix URL creation and allowlist for `/_mapping` requests. [#80970](https://github.com/grafana/grafana/issues/80970), [@svennergr](https://github.com/svennergr)
- **Postgres:** Handle single quotes in table names in the query editor. [#80951](https://github.com/grafana/grafana/issues/80951), [@gabor](https://github.com/gabor)
- **Folders:** Fix creating/updating a folder whose title has leading and trailing spaces. [#80909](https://github.com/grafana/grafana/issues/80909), [@papagian](https://github.com/papagian)
- **Elasticsearch:** Fix showing of logs when `__source` is log message field. [#80804](https://github.com/grafana/grafana/issues/80804), [@ivanahuckova](https://github.com/ivanahuckova)
- **Pyroscope:** Fix stale value for query in query editor. [#80753](https://github.com/grafana/grafana/issues/80753), [@joey-grafana](https://github.com/joey-grafana)
- **Stat:** Fix data links that refer to fields. [#80693](https://github.com/grafana/grafana/issues/80693), [@ajwerner](https://github.com/ajwerner)
- **RBAC:** Clean up data source permissions after data source deletion. [#80654](https://github.com/grafana/grafana/issues/80654), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Fix MuteTiming Get API to return provenance status. [#80494](https://github.com/grafana/grafana/issues/80494), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Tempo:** Fix regression caused by #79938. [#80465](https://github.com/grafana/grafana/issues/80465), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Alerting:** Fix preview getting the correct queries from the form. [#80458](https://github.com/grafana/grafana/issues/80458), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix firing alerts title when showing active in Insights panel. [#80414](https://github.com/grafana/grafana/issues/80414), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Postgres:** Fix enabling the socks proxy. [#80361](https://github.com/grafana/grafana/issues/80361), [@gabor](https://github.com/gabor)
- **Alerting:** Fix group filter. [#80358](https://github.com/grafana/grafana/issues/80358), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Increase size of kvstore value type for MySQL to LONGTEXT. [#80331](https://github.com/grafana/grafana/issues/80331), [@JacobsonMT](https://github.com/JacobsonMT)
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80329](https://github.com/grafana/grafana/issues/80329), [@alexweav](https://github.com/alexweav)
- **Alerting:** Fix NoData & Error alerts not resolving when rule is reset. [#80184](https://github.com/grafana/grafana/issues/80184), [@JacobsonMT](https://github.com/JacobsonMT)
- **Loki:** Fix metric time splitting to split starting with the start time. [#80085](https://github.com/grafana/grafana/issues/80085), [@svennergr](https://github.com/svennergr)
- **Report CSV:** Fix timeout with streaming panels. (Enterprise)
- **RBAC:** Avoid repopulating removed basic role permissions if the permission scope has changed. (Enterprise)
### Breaking changes
We're adding a between the response of the ID token HD parameter and the list of allowed domains. This feature can be disabled through the configuration toggle `validate_hd `. Anyone using the legacy Google OAuth configuration should disable this validation if the ID Token response doesn't have the HD parameter. Issue [#83726](https://github.com/grafana/grafana/issues/83726)
If you use an automated provisioning (eg, Terraform) for custom roles, and have provisioned a role that includes permission with action `alert.instances:read` and some scope, you will need to update the permission in your provisioning files by removing the scope. Issue [#82202](https://github.com/grafana/grafana/issues/82202)
**The following breaking change occurs only when feature flag `nestedFolders` is enabled.**
If the folder title contains the symbol `/` (forward-slash) the notifications created from the rules that are placed in that folder will contain an escape sequence for that symbol in the label `grafana_folder`.
For example, the folder title is `Grafana / Folder`. Currently the label `grafana_folder` will contain the title as it is. If PR is merged - the label value will be `Grafana \/ Folder`.
This can break notifications if notification policies have matches that match that label and folder. Issue [#81214](https://github.com/grafana/grafana/issues/81214)
`PanelContext.onSplitOpen` is removed. In the context of Explore, plugins should use `field.getLinks` to get a list of data link models. Issue [#80087](https://github.com/grafana/grafana/issues/80087)
The unstable alert rule API has been changed and now expects a folder UID instead of the folder title as namespace path parameter.
I addition to this, the responses that used to return the folder title now return `<folder parent UID>/<folder title>` to uniquely identify them.
Any consumers of the specific API should be appropriately adapted. Issue [#74600](https://github.com/grafana/grafana/issues/74600)
### Plugin development fixes & changes
- **Grafana/UI:** Add new Splitter component . [#82357](https://github.com/grafana/grafana/issues/82357), [@torkelo](https://github.com/torkelo)
<!-- 10.4.0 END -->
<!-- 10.3.5 START -->
# 10.3.5 (2024-03-20)
### Features and enhancements
- **Postgres:** Allow disabling SNI on SSL-enabled connections. [#84259](https://github.com/grafana/grafana/issues/84259), [@papagian](https://github.com/papagian)
### Bug fixes
- **Snapshots:** Require delete within same org (backport). [#84707](https://github.com/grafana/grafana/issues/84707), [@ryantxu](https://github.com/ryantxu)
- **Elasticsearch:** Fix legend for alerting, expressions and previously frontend queries. [#84684](https://github.com/grafana/grafana/issues/84684), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Fix preview getting the correct queries from the form. [#81481](https://github.com/grafana/grafana/issues/81481), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
<!-- 10.3.5 END -->
<!-- 10.3.4 START -->
# 10.3.4 (2024-03-06)
### Features and enhancements
- **Chore:** Improve domain validation for Google OAuth - Backport 83229 to v10.3.x. [#83725](https://github.com/grafana/grafana/issues/83725), [@linoman](https://github.com/linoman)
### Bug fixes
- **LDAP:** Fix LDAP users authenticated via auth proxy not being able to use LDAP active sync. [#83750](https://github.com/grafana/grafana/issues/83750), [@Jguer](https://github.com/Jguer)
- **Elasticsearch:** Fix adhoc filters not applied in frontend mode. [#83596](https://github.com/grafana/grafana/issues/83596), [@svennergr](https://github.com/svennergr)
- **Dashboards:** Fixes issue where panels would not refresh if time range updated while in panel view mode. [#83525](https://github.com/grafana/grafana/issues/83525), [@kaydelaney](https://github.com/kaydelaney)
- **Auth:** Fix email verification bypass when using basic authentication. [#83484](https://github.com/grafana/grafana/issues/83484)
- **AuthProxy:** Invalidate previous cached item for user when changes are made to any header. [#83203](https://github.com/grafana/grafana/issues/83203), [@klesh](https://github.com/klesh)
- **LibraryPanels/RBAC:** Fix issue where folder scopes weren't being correctly inherited. [#82902](https://github.com/grafana/grafana/issues/82902), [@kaydelaney](https://github.com/kaydelaney)
- **LibraryPanels:** Fix issue with repeated library panels. [#82259](https://github.com/grafana/grafana/issues/82259), [@kaydelaney](https://github.com/kaydelaney)
- **Plugins:** Don't auto prepend app sub url to plugin asset paths. [#82147](https://github.com/grafana/grafana/issues/82147), [@wbrowne](https://github.com/wbrowne)
- **Elasticsearch:** Set middlewares from Grafana's `httpClientProvider`. [#81929](https://github.com/grafana/grafana/issues/81929), [@svennergr](https://github.com/svennergr)
- **Folders:** Fix failure to update folder in SQLite. [#81862](https://github.com/grafana/grafana/issues/81862), [@papagian](https://github.com/papagian)
- **Loki/Elastic:** Assert queryfix value to always be string. [#81463](https://github.com/grafana/grafana/issues/81463), [@svennergr](https://github.com/svennergr)
### Breaking changes
We're adding a between the response of the ID token HD parameter and the list of allowed domains. This feature can be disabled through the configuration toggle `validate_hd `. Anyone using the legacy Google OAuth configuration should disable this validation if the ID Token response doesn't have the HD parameter. Issue [#83725](https://github.com/grafana/grafana/issues/83725)
<!-- 10.3.4 END -->
<!-- 10.3.3 START -->
# 10.3.3 (2024-02-02)
@@ -113,6 +815,42 @@ Users who have InfluxDB datasource configured with SQL querying language must up
Removes `NamespaceID` from responses of all GET routes underneath the path `/api/ruler/grafana/api/v1/rules` - 3 affected endpoints. All affected routes are not in the publicly documented or `stable` marked portion of the ngalert API. This only breaks clients who are directly using the unstable portion of the API. Such clients should use `NamespaceUID` rather than `NamespaceID` to identify namespaces. Issue [#79359](https://github.com/grafana/grafana/issues/79359)
<!-- 10.3.0 END -->
<!-- 10.2.6 START -->
# 10.2.6 (2024-03-25)
### Features and enhancements
- **Postgres:** Allow disabling SNI on SSL-enabled connections. [#84258](https://github.com/grafana/grafana/issues/84258), [@papagian](https://github.com/papagian)
### Bug fixes
- **CloudMonitoring:** Only run query if filters are complete. [#85014](https://github.com/grafana/grafana/issues/85014), [@aangelisc](https://github.com/aangelisc)
- **Snapshots:** Require delete within same org (backport). [#84730](https://github.com/grafana/grafana/issues/84730), [@ryantxu](https://github.com/ryantxu)
- **Dashboards:** Run shared queries even when source panel is in collapsed row. [#84166](https://github.com/grafana/grafana/issues/84166), [@kaydelaney](https://github.com/kaydelaney)
- **Prometheus:** Fix calculating rate interval when there is no interval specified. [#84082](https://github.com/grafana/grafana/issues/84082), [@itsmylife](https://github.com/itsmylife)
- **Alerting:** Add setting to distribute rule group evaluations over time. [#81404](https://github.com/grafana/grafana/issues/81404), [@alexweav](https://github.com/alexweav)
### Bug fixes
- **Cloudwatch:** Fix errors while loading queries/datasource on Safari. [#83842](https://github.com/grafana/grafana/issues/83842), [@kevinwcyu](https://github.com/kevinwcyu)
- **Elasticsearch:** Fix adhoc filters not applied in frontend mode. [#83595](https://github.com/grafana/grafana/issues/83595), [@svennergr](https://github.com/svennergr)
- **Auth:** Fix email verification bypass when using basic authentication. [#83489](https://github.com/grafana/grafana/issues/83489)
- **Alerting:** Fix queries and expressions in rule view details. [#82875](https://github.com/grafana/grafana/issues/82875), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Plugins:** Don't auto prepend app sub url to plugin asset paths. [#82146](https://github.com/grafana/grafana/issues/82146), [@wbrowne](https://github.com/wbrowne)
- **Folders:** Fix failure to update folder in SQLite. [#81861](https://github.com/grafana/grafana/issues/81861), [@papagian](https://github.com/papagian)
<!-- 10.2.5 END -->
<!-- 10.2.4 START -->
# 10.2.4 (2024-01-29)
@@ -238,7 +976,7 @@ Removes `NamespaceID` from responses of all GET routes underneath the path `/api
- **Alerting:** Show receiver in groups view to avoid duplication in the list. [#77109](https://github.com/grafana/grafana/issues/77109), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Allow more time before Alertmanager expire-resolves alerts. [#77094](https://github.com/grafana/grafana/issues/77094), [@alexweav](https://github.com/alexweav)
- **Tempo:** Add new structural operators. [#77056](https://github.com/grafana/grafana/issues/77056), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **ServiceAccount:** Add pagination to service accout table. [#77044](https://github.com/grafana/grafana/issues/77044), [@kalleep](https://github.com/kalleep)
- **ServiceAccount:** Add pagination to service account table. [#77044](https://github.com/grafana/grafana/issues/77044), [@kalleep](https://github.com/kalleep)
- **Transformations:** Cumulative and window modes for `Add field from calculation`. [#77029](https://github.com/grafana/grafana/issues/77029), [@mdvictor](https://github.com/mdvictor)
- **Plugins:** Allow disabling angular deprecation UI for specific plugins. [#77026](https://github.com/grafana/grafana/issues/77026), [@xnyo](https://github.com/xnyo)
- **Stat:** Add panel option to control wide layout. [#77018](https://github.com/grafana/grafana/issues/77018), [@nmarrs](https://github.com/nmarrs)
@@ -346,7 +1084,7 @@ Removes `NamespaceID` from responses of all GET routes underneath the path `/api
- **Organize fields transformation:** Fix re-ordering of fields using drag and drop. [#77172](https://github.com/grafana/grafana/issues/77172), [@adela-almasan](https://github.com/adela-almasan)
- **Bug fix:** Correctly set permissions on provisioned dashboards. [#77155](https://github.com/grafana/grafana/issues/77155), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **InfluxDB:** Fix adhoc filter calls by properly checking optional parameter in metricFindQuery. [#77113](https://github.com/grafana/grafana/issues/77113), [@itsmylife](https://github.com/itsmylife)
- **Alerting:** Fix NoRulesSplash being rendered for some seconds, fater creating a rule. [#77048](https://github.com/grafana/grafana/issues/77048), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix NoRulesSplash being rendered for some seconds, faster creating a rule. [#77048](https://github.com/grafana/grafana/issues/77048), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Dont show 1 firing series when no data in Expressions PreviewSummary. [#76981](https://github.com/grafana/grafana/issues/76981), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **InfluxDB:** Fix aliasing with $measurement or $m on backend mode. [#76917](https://github.com/grafana/grafana/issues/76917), [@itsmylife](https://github.com/itsmylife)
@@ -719,7 +1457,7 @@ For the existing backend mode users who have table visualization might see some
- **Pyroscope:** Fix error when no profile types are returned. [#75143](https://github.com/grafana/grafana/issues/75143), [@aocenas](https://github.com/aocenas)
- **BarChart:** Axes centered zero, borders, and colors. [#75136](https://github.com/grafana/grafana/issues/75136), [@leeoniya](https://github.com/leeoniya)
- **Plugins:** Refresh plugin info after installation. [#75074](https://github.com/grafana/grafana/issues/75074), [@oshirohugo](https://github.com/oshirohugo)
- **Snapshots:** Use appUrl on snapshot list page. [#74944](https://github.com/grafana/grafana/issues/74944), [@evictorero](https://github.com/evictorero)
@@ -789,6 +1527,24 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **Drawer:** Make content scroll by default. [#75287](https://github.com/grafana/grafana/issues/75287), [@ashharrison90](https://github.com/ashharrison90)
<!-- 10.2.0 END -->
<!-- 10.1.9 START -->
# 10.1.9 (2024-03-25)
### Bug fixes
- **Snapshots:** Require delete within same org (backport). [#84765](https://github.com/grafana/grafana/issues/84765), [@ryantxu](https://github.com/ryantxu)
<!-- 10.1.9 END -->
<!-- 10.1.8 START -->
# 10.1.8 (2024-03-06)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#83492](https://github.com/grafana/grafana/issues/83492)
<!-- 10.1.8 END -->
<!-- 10.1.7 START -->
# 10.1.7 (2024-01-29)
@@ -816,7 +1572,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **DataSourcePicker:** Disable autocomplete for the search input . [#75900](https://github.com/grafana/grafana/issues/75900), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Plugins:** Refresh plugin info after installation. [#75225](https://github.com/grafana/grafana/issues/75225), [@oshirohugo](https://github.com/oshirohugo)
- **Loki:** Fix filters not being added with multiple expressions and parsers. [#75172](https://github.com/grafana/grafana/issues/75172), [@svennergr](https://github.com/svennergr)
- **Recorded Queries:** Add org isolation (remote write target per org), and fix cross org Delete/List. (Enterprise)
- **Auditing and UsageInsights:** FIX Loki configuration to use proxy env variables. (Enterprise)
@@ -924,7 +1680,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **Geomap:** Promote route + photos layer to beta, promote geojson layer to stable. [#72233](https://github.com/grafana/grafana/issues/72233), [@nmarrs](https://github.com/nmarrs)
- **Dashboards:** Add Angular deprecation alert in data source query editor. [#72211](https://github.com/grafana/grafana/issues/72211), [@xnyo](https://github.com/xnyo)
- **Auth:** Lock organization roles for users who are managed through an external auth provider. [#72204](https://github.com/grafana/grafana/issues/72204), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Tranformations:** True OUTER JOIN in the join by field transformation used for tabular data . [#72176](https://github.com/grafana/grafana/issues/72176), [@bohandley](https://github.com/bohandley)
- **Transformations:** True OUTER JOIN in the join by field transformation used for tabular data . [#72176](https://github.com/grafana/grafana/issues/72176), [@bohandley](https://github.com/bohandley)
- **NestedFolders:** Enable new nested folder picker by default for nested folders. [#72129](https://github.com/grafana/grafana/issues/72129), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Add dashboardUID and panelID query parameters for loki state history. [#72119](https://github.com/grafana/grafana/issues/72119), [@alexweav](https://github.com/alexweav)
- **Plugins:** Enable feature toggles for long running queries by deafult. [#70678](https://github.com/grafana/grafana/issues/70678), [@idastambuk](https://github.com/idastambuk)
- **Plugins:** Enable feature toggles for long running queries by default. [#70678](https://github.com/grafana/grafana/issues/70678), [@idastambuk](https://github.com/idastambuk)
- **I18n:** Translate phrases for new Browse Dashboards. [#70654](https://github.com/grafana/grafana/issues/70654), [@Bohdanator](https://github.com/Bohdanator)
- **Flamegraph:** Prevent cropping of tooltip by bottom of the viewport. [#70633](https://github.com/grafana/grafana/issues/70633), [@aocenas](https://github.com/aocenas)
- **Pyroscope:** Preselect default profile type or app in the query editor dropdown. [#70624](https://github.com/grafana/grafana/issues/70624), [@aocenas](https://github.com/aocenas)
@@ -1017,7 +1773,7 @@ Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a futu
- **Alerting:** Bump grafana/alerting and refactor the ImageStore/Provider to provide image URL/bytes. [#70182](https://github.com/grafana/grafana/issues/70182), [@santihernandezc](https://github.com/santihernandezc)
- **Auth:** Support google OIDC and group fetching. [#70140](https://github.com/grafana/grafana/issues/70140), [@Jguer](https://github.com/Jguer)
- **Alerting:** Make QueryEditor not collapsable. [#70112](https://github.com/grafana/grafana/issues/70112), [@VikaCep](https://github.com/VikaCep)
- **Alerting:** Make QueryEditor not collapsible. [#70112](https://github.com/grafana/grafana/issues/70112), [@VikaCep](https://github.com/VikaCep)
- **TimeSeries:** Add option to disconnect values. [#70097](https://github.com/grafana/grafana/issues/70097), [@drew08t](https://github.com/drew08t)
- **Logs:** Add toggle behavior support for "filter for" and "filter out" label within Logs Details. [#70091](https://github.com/grafana/grafana/issues/70091), [@matyax](https://github.com/matyax)
- **Plugins:** Periodically update public signing key. [#70080](https://github.com/grafana/grafana/issues/70080), [@andresmgot](https://github.com/andresmgot)
@@ -1299,6 +2055,24 @@ Starting with 10.0, changing the folder UID is deprecated. It will be removed in
- **Grafana/ui:** Fix margin in RadioButtonGroup option when only icon is present. [#68899](https://github.com/grafana/grafana/issues/68899), [@aocenas](https://github.com/aocenas)
<!-- 10.1.0 END -->
<!-- 10.0.13 START -->
# 10.0.13 (2024-03-25)
### Bug fixes
- **Snapshots:** Require delete within same org (backport). [#84764](https://github.com/grafana/grafana/issues/84764), [@ryantxu](https://github.com/ryantxu)
<!-- 10.0.13 END -->
<!-- 10.0.12 START -->
# 10.0.12 (2024-03-06)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#83493](https://github.com/grafana/grafana/issues/83493)
<!-- 10.0.12 END -->
<!-- 10.0.11 START -->
# 10.0.11 (2024-01-29)
@@ -1840,6 +2614,29 @@ The `database` field has been deprecated in the Elasticsearch datasource provisi
- **InteractiveTable:** Updated design and minor tweak to Correlactions page. [#66443](https://github.com/grafana/grafana/issues/66443), [@torkelo](https://github.com/torkelo)
<!-- 10.0.0-preview END -->
<!-- 9.5.18 START -->
# 9.5.18 (2024-03-25)
### Bug fixes
- **Snapshots:** Require delete within same org (backport). [#84762](https://github.com/grafana/grafana/issues/84762), [@ryantxu](https://github.com/ryantxu)
<!-- 9.5.18 END -->
<!-- 9.5.17 START -->
# 9.5.17 (2024-03-05)
### Features and enhancements
- Bump go-git to v5.11.0. [#83711](https://github.com/grafana/grafana/issues/83711), [@papagian](https://github.com/papagian)
- **Plugins:** Bump otelgrpc instrumentation to 0.47.0. [#83674](https://github.com/grafana/grafana/issues/83674), [@wbrowne](https://github.com/wbrowne)
### Bug fixes
- **Auth:** Fix email verification bypass when using basic authentication. [#83494](https://github.com/grafana/grafana/issues/83494)
<!-- 9.5.17 END -->
<!-- 9.5.16 START -->
# 9.5.16 (2024-01-29)
@@ -1871,7 +2668,7 @@ The `database` field has been deprecated in the Elasticsearch datasource provisi
- **Alerting:** Fix state manager to not keep datasource_uid and ref_id labels in state after Error. [#77391](https://github.com/grafana/grafana/issues/77391), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Transformations:** Config overrides being lost when config from query transform is applied. [#75347](https://github.com/grafana/grafana/issues/75347), [@IbrahimCSAE](https://github.com/IbrahimCSAE)
@@ -173,7 +173,7 @@ Supermajority votes must be called explicitly in a separate thread on the approp
Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
A vote on a single proposal is considered successful if at least two thirds of those eligible to vote vote in favor.
A vote on a single proposal is considered successful if at least two thirds of those eligible to vote in favor.
If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from at least two thirds of those eligible to vote. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
@@ -44,7 +44,7 @@ Once a PR is approved as per above, any team member MAY merge the PR.
## Backporting a PR
Critical bug fixes needed for a previous minor release should be backported to the respective release branches after coordinating with the delivery team.
Please see the [contibution guide](./contribute/merge-pull-request.md#should-the-pull-request-be-backported) for further details.
Please see the [contribution guide](./contribute/merge-pull-request.md#should-the-pull-request-be-backported) for further details.
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
@@ -70,6 +66,9 @@ enable_gzip = false
cert_file=
cert_key=
# Certificates file watch interval
certs_watch_interval=
# Unix socket gid
# Changing the gid of a file without privileges requires that the target group is in the group of the process and that the process is the file owner
# It is recommended to set the gid as http server user gid
@@ -94,6 +93,10 @@ read_timeout = 0
#exampleHeader1 = exampleValue1
#exampleHeader2 = exampleValue2
[environment]
# Sets whether the local file system is available for Grafana to use. Default is true for backward compatibility.
local_file_system_available=true
#################################### GRPC Server #########################
[grpc_server]
network="tcp"
@@ -134,6 +137,9 @@ log_queries =
# For "mysql", use either "true", "false", or "skip-verify".
ssl_mode=disable
# For "postregs", use either "1" to enable or "0" to disable SNI
ssl_sni=
# Database drivers may support different transaction isolation levels.
# Currently, only "mysql" driver supports isolation levels.
# If the value is empty - driver's default isolation level is applied.
@@ -154,7 +160,10 @@ cache_mode = private
# For "sqlite3" only. Enable/disable Write-Ahead Logging, https://sqlite.org/wal.html. Default is false.
wal=false
# For "mysql" only if migrationLocking feature toggle is set. How many seconds to wait before failing to lock the database for the migrations, default is 0.
# For "mysql" and "postgres". Lock the database for the migrations, default is true.
migration_locking=true
# For "mysql" and "postgres" only if migrationLocking is set. How many seconds to wait before failing to lock the database for the migrations, default is 0.
locking_attempt_timeout_sec=0
# For "sqlite" only. How many times to retry query in case of database is locked failures. Default is 0 (disabled).
# Controls if old angular plugins are supported or not. This will be disabled by default in future release
angular_support_enabled=true
# Controls if old angular plugins are supported or not.
angular_support_enabled=false
# The CSRF check will be executed even if the request has no login cookie.
csrf_always_check=false
@@ -469,6 +478,9 @@ auto_assign_org_role = Viewer
# Require email validation before sign up completes
verify_email_enabled=false
# Redirect to default OrgId after login
login_default_org_id=
# Background text for the user field on the login page
login_hint=email or username
password_hint=password
@@ -496,6 +508,9 @@ editors_can_admin = false
# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
user_invite_max_lifetime_duration=24h
# The duration in time a verification email, used to update the email address of a user, remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 1h (1 hour).
verification_email_max_lifetime_duration=1h
# Enter a comma-separated list of usernames to hide them in the Grafana UI. These users are shown to Grafana admins and to themselves.
hidden_users=
@@ -552,10 +567,6 @@ oauth_auto_login = false
# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
oauth_state_cookie_max_age=600
# Skip forced assignment of OrgID 1 or 'auto_assign_org_id' for social logins
# Deprecated, use skip_org_role_sync option for specific provider instead.
oauth_skip_org_role_update_sync=false
# limit of api_key seconds to live before expiration
# Disabled by default, needs to be explicitly enabled
user_identity_enabled=false
# Specifies whether user identity authentication fallback credentials should be enabled in data sources
# Enabling this allows data source creators to provide fallback credentials for backend initiated requests
# e.g. alerting, recorded queries etc.
# Enabled by default, needs to be explicitly disabled
# Will not have any effect if user identity is disabled above
user_identity_fallback_credentials_enabled=true
# Override token URL for Azure Active Directory
# By default is the same as token URL configured for AAD authentication settings
user_identity_token_url=
@@ -942,6 +962,11 @@ user_identity_client_id =
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
user_identity_client_secret=
# Allows the usage of a custom token request assertion when Grafana is behind an authentication proxy
# In most cases this will not need to be used. To enable this set the value to "username"
# The default is empty and any other value will not enable this functionality
username_assertion=
# Set the plugins that will receive Azure settings for each request (via plugin context)
# By default this will include all Grafana Labs owned Azure plugins, or those that make use of Azure settings (Azure Monitor, Azure Data Explorer, Prometheus, MSSQL).
# Enable the Unified Alerting sub-system and interface. When enabled we'll migrate all of your alert rules and notification channels to the new system. New alert rules will be created and your notification channels will be converted into an Alertmanager configuration. Previous data is preserved to enable backwards compatibility but new data is removed when switching. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
# Enable the Alerting sub-system and interface.
enabled=
# Comma-separated list of organization IDs for which to disable unified alerting. Only supported if unified alerting is enabled.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
ha_push_pull_interval=60s
# Enable or disable alerting rule execution. The alerting UI remains visible. This option has a legacy version in the `[alerting]` section that takes precedence.
# Enable or disable alerting rule execution. The alerting UI remains visible.
execute_alerts=true
# Alert evaluation timeout when fetching data from the datasource. This option has a legacy version in the `[alerting]` section that takes precedence.
# Alert evaluation timeout when fetching data from the datasource.
# The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
evaluation_timeout=30s
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. The default value is 1.
max_attempts=1
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time. This option has a legacy version in the `[alerting]` section that takes precedence.
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
min_interval=10s
@@ -1292,6 +1317,10 @@ loki_basic_auth_username =
# Optional password for basic authentication on requests sent to Loki. Can be left blank.
loki_basic_auth_password=
# For "loki" only.
# Optional max query length for queries sent to Loki. Default is 721h which matches the default Loki value.
loki_max_query_length=721h
[unified_alerting.state_history.external_labels]
# Optional extra labels to attach to outbound state history records or log streams.
# Any number of label key-value-pairs can be provided.
# Enable the legacy alerting sub-system and interface. If Unified Alerting is already enabled and you try to go back to legacy alerting, all data that is part of Unified Alerting will be deleted. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
enabled=
# Makes it possible to turn off alert execution but alerting UI is visible
execute_alerts=true
# Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
error_or_timeout=alerting
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
nodata_or_nullvalues=no_data
# Alert notifications can include images, but rendering many images at the same time can overload the server
# This limit will protect the server from render overloading and make sure notifications are sent out quickly
concurrent_render_limit=5
# Default setting for alert calculation timeout. Default value is 30
evaluation_timeout_seconds=30
# Default setting for alert notification timeout. Default value is 30
notification_timeout_seconds=30
# Default setting for max attempts to sending alert notifications. Default value is 3
max_attempts=3
# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
min_interval_seconds=1
# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as an duration. Ex 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_annotation_age=
# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
@@ -71,6 +67,9 @@
;cert_file =
;cert_key =
# Certificates file watch interval
;certs_watch_interval =
# Unix socket gid
# Changing the gid of a file without privileges requires that the target group is in the group of the process and that the process is the file owner
# It is recommended to set the gid as http server user gid
@@ -124,6 +123,9 @@
# For "mysql", use either "true", "false", or "skip-verify".
;ssl_mode = disable
# For "postregs", use either "1" to enable or "0" to disable SNI
;ssl_sni =
# Database drivers may support different transaction isolation levels.
# Currently, only "mysql" driver supports isolation levels.
# If the value is empty - driver's default isolation level is applied.
@@ -156,7 +158,10 @@
# For "sqlite3" only. Enable/disable Write-Ahead Logging, https://sqlite.org/wal.html. Default is false.
;wal = false
# For "mysql" only if migrationLocking feature toggle is set. How many seconds to wait before failing to lock the database for the migrations, default is 0.
# For "mysql" and "postgres" only. Lock the database for the migrations, default is true.
;migration_locking = true
# For "mysql" and "postgres" only. How many seconds to wait before failing to lock the database for the migrations, default is 0.
;locking_attempt_timeout_sec = 0
# For "sqlite" only. How many times to retry query in case of database is locked failures. Default is 0 (disabled).
@@ -376,8 +381,8 @@
# $NONCE in the template includes a random nonce.
# $ROOT_PATH is server.root_url without the protocol.
# Controls if old angular plugins are supported or not. This will be disabled by default in future release
;angular_support_enabled = true
# Controls if old angular plugins are supported or not.
;angular_support_enabled = false
# List of additional allowed URLs to pass by the CSRF check, separated by spaces. Suggested when authentication comes from an IdP.
;csrf_trusted_origins = example.com
@@ -449,6 +454,9 @@
# Require email validation before sign up completes
;verify_email_enabled = false
# Redirect to default OrgId after login
;login_default_org_id =
# Background text for the user field on the login page
;login_hint = email or username
;password_hint = password
@@ -476,6 +484,9 @@
# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
;user_invite_max_lifetime_duration = 24h
# The duration in time a verification email, used to update the email address of a user, remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 1h (1 hour).
;verification_email_max_lifetime_duration = 1h
# Enter a comma-separated list of users login to hide them in the Grafana UI. These users are shown to Grafana admins and themselves.
; hidden_users =
@@ -533,10 +544,6 @@
# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
;oauth_state_cookie_max_age = 600
# Skip forced assignment of OrgID 1 or 'auto_assign_org_id' for social logins
# Deprecated, use skip_org_role_sync option for specific provider instead.
;oauth_skip_org_role_update_sync = false
# limit of api_key seconds to live before expiration
# By default is the same as token URL configured for AAD authentication settings
;user_identity_token_url =
@@ -869,6 +886,11 @@
# By default is the same as used in AAD authentication or can be set to another application (for OBO flow)
;user_identity_client_secret =
# Allows the usage of a custom token request assertion when Grafana is behind an authentication proxy
# In most cases this will not need to be used. To enable this set the value to "username"
# The default is empty and any other value will not enable this functionality
;username_assertion =
# Set the plugins that will receive Azure settings for each request (via plugin context)
# By default this will include all Grafana Labs owned Azure plugins, or those that make use of Azure settings (Azure Monitor, Azure Data Explorer, Prometheus, MSSQL).
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;ha_push_pull_interval = "60s"
# Enable or disable alerting rule execution. The alerting UI remains visible. This option has a legacy version in the `[alerting]` section that takes precedence.
# Enable or disable alerting rule execution. The alerting UI remains visible.
;execute_alerts = true
# Alert evaluation timeout when fetching data from the datasource. This option has a legacy version in the `[alerting]` section that takes precedence.
# Alert evaluation timeout when fetching data from the datasource.
# The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;evaluation_timeout = 30s
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. The default value is 1.
;max_attempts = 1
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time. This option has a legacy version in the `[alerting]` section that takes precedence.
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;min_interval = 10s
@@ -1189,54 +1211,25 @@
# Optional password for basic authentication on requests sent to Loki. Can be left blank.
; loki_basic_auth_password = "mypass"
# For "loki" only.
# Optional max query length for queries sent to Loki. Default is 721h which matches the default Loki value.
; loki_max_query_length = 360h
[unified_alerting.state_history.external_labels]
# Optional extra labels to attach to outbound state history records or log streams.
# Any number of label key-value-pairs can be provided.
; mylabelkey = mylabelvalue
[unified_alerting.upgrade]
# If set to true when upgrading from legacy alerting to Unified Alerting, grafana will first delete all existing
# Unified Alerting resources, thus re-upgrading all organizations from scratch. If false or unset, organizations that
# have previously upgraded will not lose their existing Unified Alerting data when switching between legacy and
# Unified Alerting. Should be kept false when not needed as it may cause unintended data-loss if left enabled.
@@ -4,7 +4,7 @@ The main goal of issue triage is to categorize all incoming Grafana issues and m
> **Note:** This information is for Grafana project Maintainers, Owners, and Admins. If you are a Contributor, then you will not be able to perform most of the tasks in this topic.
The core maintainers of the Grafana project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
The core maintainers of the Grafana project are responsible for categorizing all incoming issues and delegating any critical or important issue to other maintainers. Currently, one maintainer each week is responsible. Besides that part, triage provides an important way to contribute to an open source project.
Triage helps ensure issues resolve quickly by:
@@ -136,13 +136,13 @@ To make it easier for everyone to understand and find issues they're searching f
Depending on the issue, you might not feel all this information is needed. Use your best judgement. If you cannot triage an issue using what its author provided, explain kindly to the author that they must provide the above information to clarify the problem. Label issue with `needs more info` and add any related `area/*` or `datasource/*` labels. Alternatively, use `bot/needs more info` label and the Grafana bot will request it for you.
If the author provides the standard information but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time.
If the author provides the standard information, but you are still unable to triage the issue, request additional information. Do this kindly and politely because you are asking for more of the author's time.
If the author does not respond to the requested information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be reopened when the necessary information is provided.
When you feel you have all the information needed you're ready to [categorizing the issue](#3-categorizing-an-issue).
If you receive a notification with additional information provided but you are not anymore on issue triage and you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
If you receive a notification with additional information provided, but you are not anymore on issue triage and you feel you do not have time to handle it, you should delegate it to the current person on issue triage.
## 3. Categorizing an issue
@@ -312,7 +312,7 @@ When an issue has all basic information provided, but the triage responsible hav
Investigating issues can be a very time consuming task, especially for the maintainers, given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services, etc that are being used with Grafana. There is a certain number of combinations that are more common than others, and these are in general easier for maintainers to investigate.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise the issue is highly likely to be closed.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise, the issue is highly likely to be closed.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments) the issue if you happen to have the same problem. If you have further details that may help investigating the issue please provide as much information as possible.
During development it's convenient to enable certain log level, e.g. debug, for certain loggers to minimize the generated log output and make it easier to find things. See [[log.filters]](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#filters) for information how to configure this.
During development, it's convenient to enable certain log level, e.g. debug, for certain loggers to minimize the generated log output and make it easier to find things. See [[log.filters]](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#filters) for information how to configure this.
@@ -33,7 +33,7 @@ Tests must use the standard library, `testing`. For assertions, prefer using [te
We have a [testsuite](https://github.com/grafana/grafana/tree/main/pkg/tests/testsuite) package which provides utilities for package-level setup and teardown.
Currently this is just used to ensure that test databases are correctly set up and torn down, but it also provides a place we can attach future tasks.
Currently, this is just used to ensure that test databases are correctly set up and torn down, but it also provides a place we can attach future tasks.
Each package SHOULD include a [TestMain](https://pkg.go.dev/testing#hdr-Main) function that calls `testsuite.Run(m)`:
@@ -124,7 +124,7 @@ If you're unsure, see the existing [changelog](https://github.com/grafana/grafan
The pull request title should be formatted according to `<Area>: <Summary>` (Both "Area" and "Summary" should start with a capital letter).
The Grafana team _squashes_ all commits into one when we accept a pull request. The title of the pull request becomes the subject line of the squashed commit message. We still encourage contributors to write informative commit messages, as they becomes a part of the Git commit body.
The Grafana team _squashes_ all commits into one when we accept a pull request. The title of the pull request becomes the subject line of the squashed commit message. We still encourage contributors to write informative commit messages, as they become a part of the Git commit body.
We use the pull request title when we generate change logs for releases. As such, we strive to make the title as informative as possible.
@@ -133,7 +133,7 @@ We use the pull request title when we generate change logs for releases. As such
## Configuration changes
If your PR includes configuration changes, all of the following files must be changed correspondingly:
If your PR includes configuration changes, all the following files must be changed correspondingly:
@@ -8,7 +8,7 @@ Make sure you have the following dependencies installed before setting up your d
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature)
- [Node.js (Long Term Support)](https://nodejs.org), with [corepack enabled](https://nodejs.org/api/corepack.html#enabling-the-feature). See [.nvmrc](../.nvmrc) for supported version. It's recommend you use a version manager such as [nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm), or similar.
- GCC (required for Cgo dependencies)
### macOS
@@ -76,6 +76,7 @@ After the command has finished, we can start building our source code:
yarn start
```
This command will generate sass theme files, build all external plugins, then build the frontend assets.
Once `yarn start` has built the assets, it will continue to do so whenever any of the files change. This means you don't have to manually build the assets every time you change the code.
> Troubleshooting: if your first build works, but after pulling updates you see unexpected errors in the "Type-checking in progress..." stage, these can be caused by the [tsbuildinfo cache supporting incremental builds](https://www.typescriptlang.org/tsconfig#incremental). You can `rm tsconfig.tsbuildinfo` and re-try.
@@ -151,7 +152,7 @@ go run build.go test
### Run SQLLite, PostgreSQL and MySQL integration tests
By default grafana runs SQLite, to run test with SQLite
By default, grafana runs SQLite, to run test with SQLite
```bash
go test -covermode=atomic -tags=integration ./pkg/...
@@ -171,9 +172,11 @@ make test-go-integration-postgres
### Run end-to-end tests
The end to end tests in Grafana use [Cypress](https://www.cypress.io/) to run automated scripts in a headless Chromium browser. Read more about our [e2e framework](/contribute/style-guides/e2e.md).
Grafana uses [Cypress](https://www.cypress.io/) to end-to-end test core features. Core plugins use [Playwright](https://playwright.dev/) to run automated end-to-end tests. You can find more information on how to add end-to-end tests to your core plugin [here](./style-guides/e2e-plugins.md)
To run the tests:
#### Running Cypress tests
To run all tests in a headless Chromium browser.
```
yarn e2e
@@ -197,6 +200,34 @@ To choose a single test to follow in the browser as it runs, use `yarn e2e:dev`
yarn e2e:dev
```
#### To run the Playwright tests:
**Note:** If you're using VS Code as your development editor, it's recommended to install the [Playwright test extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright). It allows you to run, debug and generate Playwright tests from within the editor. For more information about the extension and how to install it, refer to the [Playwright documentation](https://playwright.dev/docs/getting-started-vscode).
Each version of Playwright needs specific versions of browser binaries to operate. You will need to use the Playwright CLI to install these browsers.
```
yarn playwright install chromium
```
To run all tests in a headless Chromium browser and display results in the terminal.
```
yarn e2e:playwright
```
For a better developer experience, open the Playwright UI where you can easily walk through each step of the test and visually see what was happening before, during and after each step.
```
yarn e2e:playwright:ui
```
To open the HTML reporter for the last test run session.
```
yarn e2e:playwright:report
```
## Configure Grafana for development
The default configuration, `defaults.ini`, is located in the `conf` directory.
@@ -300,7 +331,7 @@ For some people, typically using the bash shell, ulimit fails with an error simi
ulimit: open files: cannot modify limit: Operation not permitted
```
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already a ulimit command that you can tweak.
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already an ulimit command that you can tweak.
@@ -5,7 +5,7 @@ This guide helps you get started adding your feature behind a feature flag in Gr
## Steps to adding a feature toggle
1. Define the feature toggle in [registry.go](../pkg/services/featuremgmt/registry.go). To see what each feature stage means, look at the comments [here](../pkg/services/featuremgmt/features.go). If you are a community member, use the [CODEOWNERS](../.github/CODEOWNERS) file to determine which team owns the package you are updating.
2. Run the go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This will generate all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. You can run the test by running `go test ./pkg/services/featuremgmt/...`. This will say the tests failed the first time, but it will have generated the right code. If you re-run the tests, it will pass.
2. Run the go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This will generate all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. You can run the test by running `make gen-feature-toggles`.
@@ -66,13 +66,19 @@ While the `t` function can technically be used outside of React functions (e.g,
## How to add a new language
1. Add new locale in Crowdin and download files to repo
1. Grafana OSS Crowdin project -> "dot dot dot" menu in top right -> Target languages
2.If Crowdin's locale code is different from our IETF language tag, add a custom mapping in Project Settings -> Language mapping
3.GH repo grafana/grafana -> Actions -> Choose `Crowdin Download Action` -> Run workflow -> Creates a PR automatically
2. Review the PR `I18n: Download translations from Crowdin`
3.Update `public/app/core/internationalization/constants.ts` (add new constant, and add to `LOCALES`) and add changes to the open PR
4. Approve and merge the PR
1. Add a new locale in Crowdin
1. Grafana OSS Crowdin project
2."dot dot dot" menu in top right
3.Target languages, and add the language
4. If Crowdin's locale code is different from our IETF language tag (such as Chinese Simplified), add a custom mapping in Project Settings -> Language mapping
2.Sync the new (empty) language to the repo
1. In Grafana's Github Actions, go to [Crowdin Download Action](https://github.com/grafana/grafana/actions/workflows/i18n-crowdin-download.yml)
2. Select 'Run workflow', from main
3. The workflow will create a PR with the new language files, which can be reviewed and merged
@@ -22,4 +22,4 @@ The above commands use some utils scripts under [_\<repo-root>/e2e_](../../e2e)
## Test suites
All the integration tests are located at _\<repo-root>/e2e/suite\<x>/specs_. The page objects and reusable flows are in the [_\<repo-root>/packages/grafana-e2e_](../../packages/grafana-e2e) package.
All the integration tests are located at _\<repo-root>/e2e/suite\<x>/specs_.
Be sure that you've read the [generalized E2E document](e2e.md).
When end-to-end testing Grafana plugins, it's recommended to use the [`@grafana/plugin-e2e`](https://www.npmjs.com/package/@grafana/plugin-e2e?activeTab=readme) testing tool. `@grafana/plugin-e2e` extends [`@playwright/test`](https://playwright.dev/) capabilities with relevant fixtures, models, and expect matchers; enabling comprehensive end-to-end testing of Grafana plugins across multiple versions of Grafana. For information on how to get started with Plugin end-to-end testing and Playwright, checkout the [Get started](https://grafana.com/developers/plugin-tools/e2e-test-a-plugin/get-started) guide.
## Adding end-to-end tests for a core plugin
Playwright end-to-end tests for plugins should be added to the [`e2e/plugin-e2e`](https://github.com/grafana/grafana/tree/main/e2e/plugin-e2e) directory.
1. Add a new directory that has the name as your plugin [`here`](https://github.com/grafana/grafana/tree/main/e2e/plugin-e2e). This is where your plugin tests will be kept.
2. Playwright uses [projects](https://playwright.dev/docs/test-projects) to logically group tests together. All tests in a project share the same configuration.
In the [Playwright config file](https://github.com/grafana/grafana/blob/main/playwright.config.ts), add a new project item. Make sure the `name` and the `testDir` sub directory matches the name of the directory that contains your plugin tests.
Adding `'authenticate'` to the list of dependencies and specifying `'playwright/.auth/admin.json'` as storage state will ensure all tests in your project will start already authenticated as an admin user. If you wish to use a different role for and perhaps test RBAC for some of your tests, please refer to the plugin-e2e [documentation](https://grafana.com/developers/plugin-tools/e2e-test-a-plugin/use-authentication).
```ts
{
name: 'mysql',
testDir: path.join(testDirRoot, '/mysql'),
use: {
...devices['Desktop Chrome'],
storageState: 'playwright/.auth/admin.json',
},
dependencies: ['authenticate'],
},
```
3. Update the [CODEOWNERS](https://github.com/grafana/grafana/blob/main/.github/CODEOWNERS/#L315) file so that your team is owner of the tests in the directory you added in step 1.
## Commands
-`yarn test:e2e` will run [Grafana's E2E utility](../../packages/grafana-e2e) against an already running Grafana server.
-`yarn test:e2e:update` will run `test:e2e` but instead of asserting that screenshots match their expected fixtures, they'll be replaced with new ones.
- `yarn e2e:playwright` will run all Playwright tests. Optionally, you can provide the `--project mysql` argument to run tests in a certain project.
Your running Grafana instance can be targeted by setting the `CYPRESS_BASE_URL`, `CYPRESS_USERNAME` and `CYPRESS_PASSWORD` environment variableS:
The script above assumes you have Grafana running on `localhost:3000`. You may change this by providing environment variables.
Grafana Labs uses a minimal [homegrown solution](../../packages/grafana-e2e) built on top of [Cypress](https://cypress.io) for its end-to-end (E2E) tests.
Grafana Labs uses a minimal [homegrown solution](../../e2e/utils/index.ts) built on top of [Cypress](https://cypress.io) for its end-to-end (E2E) tests.
Important notes:
- We generally store all element identifiers ([CSS selectors](https://mdn.io/docs/Web/CSS/CSS_Selectors)) within the framework for reuse and maintainability.
- We generally do not use stubs or mocks as to fully simulate a real user.
- Cypress' promises [do not behave as you'd expect](https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Mixing-Async-and-Sync-code).
- [Testing core Grafana](e2e-core.md) is slightly different than [testing plugins](e2e-plugins.md).
- [Testing core Grafana](e2e-core.md) is different than [testing plugins](e2e-plugins.md) - core Grafana uses Cypress whereas plugins use [Playwright test](https://playwright.dev/).
Use hook useStyles2(getStyles) to memoize the styles generation and try to avoid passing props to the the getStyles function and instead compose classes using emotion cx function.
Use hook useStyles2(getStyles) to memoize the styles generation and try to avoid passing props to the getStyles function and instead compose classes using emotion cx function.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.