Compare commits

..

897 Commits

Author SHA1 Message Date
Brian Gann
f7a938db9a update whats-new 2025-01-24 21:45:00 -05:00
github-actions[bot]
b9513983ce apply security patch: v11.5.x/305-202501232115.patch
commit 874ce8d12caad3742857ca86d2da7d5f81f3f825
Author: Matt Jacobson <matthew.jacobson@grafana.com>
Date:   Thu Jan 23 16:14:28 2025 -0500

    linting

commit c4b6d9194cc8b79e252e562a27a2d09a42d7a5e8
Author: Matt Jacobson <matthew.jacobson@grafana.com>
Date:   Thu Jan 23 14:56:35 2025 -0500

    CVE-2024-11741 - victorops url
2025-01-24 20:37:56 +00:00
grafana-delivery-bot[bot]
df7987a6b8 [v11.5.x] docs: Fixes broken link in data source LBAC (#99497)
Some checks failed
publish-technical-documentation-release / sync (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Co-authored-by: Alex Bikfalvi <alex@bikfalvi.com>
Fixes broken link in data source LBAC (#99496)
2025-01-24 13:31:53 +02:00
Jack Baldry
56e82b7a1c [v11.5.x] Remove codespell (#99428)
Some checks are pending
publish-technical-documentation-release / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
2025-01-23 12:41:36 +00:00
grafana-delivery-bot[bot]
41e7cd2c02 [v11.5.x] LibraryPanel: Fallback to panel title if library panel title is not set (#99411)
LibraryPanel: Fallback to panel title if library panel title is not set (#99377)

(cherry picked from commit c862aa4d68)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
2025-01-23 11:09:54 +02:00
grafana-delivery-bot[bot]
6167aac263 [v11.5.x] Docs: add user de-duplication description, update usage billing instructions (#99407)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2025-01-23 09:56:45 +02:00
grafana-delivery-bot[bot]
6ee1bfb736 [v11.5.x] docs>alert-rules>templates:example-fix (#99361)
Some checks are pending
publish-technical-documentation-release / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
docs>alert-rules>templates:example-fix (#99355)

* docs>alert-rules>templates:example-fix

* second-fix

* fixed 2 other label templates

(cherry picked from commit 88d5ae8153)

Co-authored-by: antonio <45235678+tonypowa@users.noreply.github.com>
2025-01-22 13:20:12 +02:00
grafana-delivery-bot[bot]
e0d8318caa [v11.5.x] Alerting docs: add Admonitions to Link Doc pages with practical Tutorials (#99324)
Some checks are pending
publish-technical-documentation-release / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Alerting docs: add Admonitions to Link Doc pages with practical Tutorials (#99317)

Alerting docs: add admonitions to link to practical tutorials

(cherry picked from commit c7edbffd82)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-01-21 15:31:25 +01:00
grafana-delivery-bot[bot]
842179916d [v11.5.x] Alerting docs: add instructions to execute notification template examples (#99304)
Some checks are pending
publish-technical-documentation-release / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Alerting docs: add instructions to execute notification template examples (#99275)

(cherry picked from commit 9ce9ad1777)

Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-01-21 10:49:22 +01:00
grafana-delivery-bot[bot]
d7d80d2634 [v11.5.x] Docs: Reporting restructure (#99289)
Some checks are pending
publish-technical-documentation-release / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-01-20 14:32:03 -05:00
grafana-delivery-bot[bot]
fb0204c8df [v11.5.x] Azure: Improve resource request error handling (#99259)
Azure: Improve resource request error handling (#99017)

* Improve resource request error handling

- Correctly parse JSON responses
- Log erroneous failures in JSON marshalling/unmarshalling
- Correctly set response status code
- Do not attempt to use the response writer as it will be nil

* Minor change

* Improve type assertion handling

(cherry picked from commit f6194931f5)

Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
2025-01-20 15:17:04 +02:00
grafana-delivery-bot[bot]
5f7f04518b [v11.5.x] Add Apache instructions (#99211)
Some checks failed
publish-technical-documentation-release / sync (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
Co-authored-by: Ronald McCollam <mccollam@gmail.com>
2025-01-17 12:11:50 -06:00
grafana-delivery-bot[bot]
5e369c6709 [v11.5.x] Docs: move DynamoDB to Unsupported list (#99195)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-01-17 10:05:55 -05:00
Mariell Hoversholm
940d71250b Security: Update to Go 1.23.5 - Backport to v11.5.x (#99122)
Some checks are pending
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* feat: update to Go 1.23.5

* chore: make drone

* chore: make update-workspace

* fix: 1.23.5, not 1.23.4

* fix: update in Makefile

* CI: Force re-build
2025-01-17 09:30:36 +01:00
Alexander Zobnin
cbb688e910 Zanzana: Remove usage from legacy access control (#98883)
* Zanzana: Remove usage from legacy access control

* remove unused

* remove zanzana client from services where it's not used

* remove unused metrics

* fix linter
2025-01-14 10:26:15 +01:00
Giuseppe Guerra
7480c9eb54 Plugins: Disable SRI checks for filesystem plugins (#98673)
* Plugins: Disable SRI checks for filesystem plugins

* Plugins: Disable SRI checks for filesystem plugins

* Update tests

* Lint

* Check for cdn enabled rather than just plugin class

* ops

* Update tests

* lint
2025-01-14 09:51:01 +01:00
Gabriel MABILLE
4c86de2678 Chore: Update authlib (#98870)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* Chore: Update authlib

* AccessChecker -> AccessClient
2025-01-14 09:42:17 +01:00
Alex Rosenfeld
29a8fbd898 Panel inspect: Fix file names of data download included uninterpolated variable names. (#98832)
* use panel title for dataName instead of panel.getDisplayTitle()

* Interpolate variables in panel title for downloads in scenes

---------

Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
2025-01-14 09:35:54 +01:00
Ieva
9b34a56d7c AuthZ service: Take action sets into account when checking folder create permissions (#98751)
take action sets into account when checking folder create permissions
2025-01-14 08:33:42 +00:00
Mariell Hoversholm
05ea05d64e Chore: Bump Go to 1.23.4 (#98853)
* Chore: Bump Go to 1.23.4

This is done in preparation of updating the App SDK library we import, as it has bumped its Go version to 1.23.4 as well.

* Chore: make update-workspace
2025-01-14 09:28:44 +01:00
grafana-pr-automation[bot]
8054b30d5d I18n: Download translations from Crowdin (#98921)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-14 07:35:24 +02:00
Brendan O'Handley
fd4718df33 Explore metrics: Consolidate filters with the OTel experience (#98371)
* sort otel resources to top of adhoc filters

* add bool in datatrail

* add function to find non promoted otel resources

* add additional super filter variable

* hide filters var and keep otel filters var hidden

* add nonpromoted resources to state, update otel or var filters when super filter is updated

* update comments

* update plan

* Allow deployment environment values from both metrics and target_info

* Remove usage of dep env var in getting resources

* update code comments for clarity

* Remove dep env variable, autoselect dep env in otelmetricvar and allow updating of vals in otelmetricvar

* Fix bug that conflicts with local storage useOtelExperience check

* expose metadata to show data source is loaded to prevent otel race conditions

* remove filtering check on target_info in the itel join query

* update plan with extra issues

* refactor update and reset functions for otel experience

* use non promoted resources as the standardization check

* sort the resources in filters var if using otel experience

* add test for sorting resources with otelmetricsvar

* update tests for otel experience in datatrail.test

* update tests for otel utils

* update otel api tests

* update trail store tests to remove dep env var

* run prettier

* remove unused imports

* add tests, distinguish on start and when the initial otel check is done, update comments

* Fix bug when adding multiple otel resources

* fix when adding filter from breakdown

* add migration for dep env var

* update migration function and write tests

* prettier

* Update dep env migration to handle bookmarks

* fix trailstore tests for reintroducing the dep env var

* refactor default env function, we only need the value

* remove redundant check

* move otel functions to utils and update and add tests

* prettier

* cleanup

* fix migration for fromStart

* update tests for migration

* use join and use push

* fix flow with state

* Fix flow in update OTel function

* update tests for flow fixes

* fix toggle OTel bugs

* report when dep env has been migrated and delete dep env filters to not migrate it again

* Clear out dep env after migration

* run prettier

* improve non promoted attribute function

* remove unused functions

* prettier

* default otel experience to off

* report when otel experience is used

* report when otel is turned on and off

* report otel filters changed

* prettier

* keep default otel off, respect the local storage, but if loading with otel vars from url or bookmark we can turn it on

* Add new badge

* fix metric scene breakdown add filter bug around non promoted labels on a metric that are different than non promoted labels for all metrics

* prettier

* make i18n-extract

* prettier for translations

* change button name to "Filter"

* Update public/app/features/trails/Breakdown/AddToFiltersGraphAction.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/DataTrail.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/migrations/otelDeploymentEnvironment.ts

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/DataTrail.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/otel/api.ts

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Update public/app/features/trails/otel/util.ts

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* Add more padding for pill where capital letter gets to close to the left border and looks off.

* clear up comments

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
2025-01-14 02:42:18 +02:00
Matthew Jacobson
6883a4b294 Alerting: Regenerate swagger spec (#98914)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2025-01-14 01:23:45 +02:00
maicon
766d645d82 Filewalkwithme/unistore refactor folder service to hit folder apiserver (#98409)
Refactor folder service to use Unified Storage

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-01-13 18:15:35 -03:00
Nathan Marrs
009d7f42b3 Feature Toggles: Add two test feature toggles to test potential AB test setup (#98844)
* add two dummy feature toggles to use for testing potential AB testing setup

* update betterer

* update auto generated files

* fix camelcase test case
2025-01-13 13:13:13 -08:00
dependabot[bot]
1c67f4084c Bump google.golang.org/api from 0.213.0 to 0.216.0 (#98905)
* Bump google.golang.org/api from 0.213.0 to 0.216.0

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.213.0 to 0.216.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.213.0...v0.216.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update workspace

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-13 16:05:48 -05:00
Sarah Zinger
210d73188d Return a 400 instead of a 500 for empty query (#98841) 2025-01-13 14:58:13 -05:00
Larissa Wandzura
ab6d82a33c Docs: MySQL data source updates/revamp (#98652)
* made initial edits

* continued updates

* finished initial config doc updates

* updates

* updates to query editor

* edits to query editor

* final edits prior to PR

* more final edits :-)

* edits based on feedback meeting

* fixed some spelling and grammar issues

* final edits

* ran prettier

* minor change to intro description

* Fix prettier

* Update docs/sources/datasources/mysql/query-editor/_index.md

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update docs/sources/datasources/mysql/query-editor/_index.md

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update docs/sources/datasources/mysql/query-editor/_index.md

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* edits based on feedback

* fixed mistake

* Fix prettier

* fixed ref UIs, edits based on feedback

* one minor change

* ran prettier again

---------

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2025-01-13 13:47:44 -06:00
Scott Lepper
dc61a8c62e [search] playlist - support legacy uid filter (#98898) 2025-01-13 13:38:05 -06:00
Isabel Matwawana
bc398109f9 Docs: Add Google Sheets to unsupported list (#98536) 2025-01-13 13:53:48 -05:00
Isabel Matwawana
d0b552997d Docs: Fix Vale linter errors (#98828) 2025-01-13 13:48:35 -05:00
ismail simsek
38c4f3d5ef Prometheus: UTF8 metrics for prometheus devenv (#98237)
* utf8 metrics for prometheus devenv

* add label value with quotes
2025-01-13 19:28:50 +02:00
Josh Hunt
c3b0eb6277 Reverts "MetricCombobox: Fix overflowing parents" (#98868)
Revert MetricCombobox: Fix overflowing parents

https://github.com/grafana/grafana/pull/97049
2025-01-13 16:44:35 +00:00
Tobias Skarhed
ec42a8f83f MultiCombobox: Add basic filtering (#98608)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
Add filtering to Multi
2025-01-13 17:24:54 +01:00
ismail simsek
f74396b51d Prometheus: Update prometheus to v0.301.0 for utf8 support (#98848)
* update github.com/prometheus/prometheus to v0.301.0

* have an adapter for infra logger

* go mod tidy and go work sync

* remvoe the cuelang.org/go replace

* remove slog_adapter
2025-01-13 17:14:20 +01:00
renovate[bot]
598e9f4dc1 Update dependency i18next-parser to v9.1.0 (#98889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 15:18:55 +00:00
Ryan McKinley
98c7861936 Search: Update repository query apis (#98886) 2025-01-13 17:05:04 +02:00
Gabriel MABILLE
4d699d4810 AuthZ: Use M3 AuthZ Service (#98621)
* AuthZ: Use M3 AuthZ Service

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* Fix oss

* fake auth info

---------

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
2025-01-13 16:03:14 +01:00
renovate[bot]
460dab57c7 Update dependency eslint to v9.18.0 (#98880)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 14:58:57 +00:00
Mariell Hoversholm
e754ea7a64 Fix: MySQL integration tests don't need to verify CA (#98857)
* Fix: MySQL integration tests don't need to verify CA

The _better_ solution here is to use our own, custom CA certificate. But there is also no real problem in risking a MITM
attack here as it's just test code, with no sensitive data, and it's ran on our own infra (so if we have a MITM problem,
we have even bigger issues...).

* Chore: make drone

* Chore: buildifier format
2025-01-13 15:40:19 +01:00
Gilles De Mey
4aa29c79a4 Alerting: Update useAsync to typeguard states (#98884) 2025-01-13 15:20:48 +01:00
Stephanie Hingtgen
9ec10be1c7 K8s: Provisioned dashboard support (#98843) 2025-01-13 08:14:12 -06:00
Victor Marin
d8d84a000a Dashboards: Allow DashboardDS subqueries in MixedDS (#97116)
* Allow dashboardDS to run in mixedDS

* Make mixedDS panel wait for dashboardDS panel to load first

* cleanup

* cleanup

* refresh dashboardDS queries within mixedDS when source panel changes

* more tests

* fix

* fixes scenario where source returns an error

* do not allow dashboardDS references to mixedDS targets that contain other dashboardDS panels

* test

* lint

* Show invalid panels as invalid and with a message

* refactor

* avoid bunching shared dashboard queries

* skip instead of debouncing to avoid stale data

* debouce dashboard ds result stream when coming from mixed ds

* restore unnecessarily touched files

* fix import

* increase debounce interval value to account for slower machines

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-01-13 15:01:34 +02:00
renovate[bot]
e028924fc9 Update dependency @stylistic/eslint-plugin-ts to v2.13.0 (#98878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 12:43:20 +00:00
ismail simsek
96011a5fbb Chore: Bump promlib to v0.0.7 (#98849)
bump promlib to v0.0.7
2025-01-13 13:08:35 +01:00
Dominik Prokop
99e1780527 Revert "Schema v2: Reason about new dashboard based on UID (#98800)" (#98877)
This reverts commit 72846e3431.
2025-01-13 13:07:45 +01:00
Jack Baldry
6f02d2d73d Fix syntax (#98875) 2025-01-13 11:49:04 +00:00
renovate[bot]
2928cd43aa Update dependency react-hook-form to v7.54.2 (#98867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 11:43:06 +00:00
Dominik Prokop
72846e3431 Schema v2: Reason about new dashboard based on UID (#98800)
* Schema v2: Reason about new dashboard based on UID

* Fix test
2025-01-13 12:16:35 +01:00
Torkel Ödegaard
e0cfd12fb3 Dashboard: Edit mode element selection (#97718)
* Dashboard: Edit mode elemenmt selection

* Add new panel to rows layout (#97729)

* Add new panel to rows layout

* Use `DashboardEditPane` to obtain selected object

* Fixed rows bottom padding issue

* Update

* Minor fix

* Update

* Update

* Update

---------

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
2025-01-13 12:15:16 +01:00
Karl Persson
0f9b107201 Zanzana: Consistently add context (#98862)
* Zanzana: Reworks how contextuals are loaded

* Cleanup listObjectWithStream

* Run list test with streaming enabled
2025-01-13 12:11:51 +01:00
Eric Leijonmarck
04acbcdef2 LBAC for datasources: Add feature toggle LBAC for datasources mimir teamHttpHeadersMimir (#98866)
adds feature toggle LBAC for datasources mimir
2025-01-13 12:42:47 +02:00
renovate[bot]
c6b7e35c4e Update dependency micro-memoize to v4.1.3 (#98863)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 10:33:37 +00:00
Jack Baldry
60aaa8d703 Fix only run on fork guard (#98795) 2025-01-13 10:28:43 +00:00
renovate[bot]
a3a1fa7f2c Update dependency eslint-plugin-react to v7.37.4 (#98858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 10:05:16 +00:00
renovate[bot]
0d06ed5f78 Update dependency browserslist to v4.24.4 (#98835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 09:41:59 +00:00
Daniel-Davies
ddca09fb02 OAuth: Return SocialError on membership check failure (#98330)
use socialerror
2025-01-13 11:39:31 +02:00
Alexander Zobnin
5922015fec Zanzana: Setup GRPC authentication in client/server mode (#98680)
* Zanzana: Setup GRPC authentication in client/server mode

* don't use grpcutils

* refactor

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

* Add a namespace stub for in-proc mode

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

* Read parameters from config

* authorize server requests

* add namespace to the tests context

* use stack id from config

* simplify authorize func

* properly format namespace

* return Unauthenticated if namespace is empty

* use insecure cred only in dev env

* check request namespace

* Use CallCredentials API for client auth

* provide config

* fail if stack id is missing

* improve error message

* use insecure connection by default

---------

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2025-01-13 10:02:15 +01:00
Marcus Andersson
8f79a59e1f PluginExtensions: Persisting log messages accross the browser session (#95836)
* making sure to keep the messages across a session.

* moved values into consts.
2025-01-13 09:23:14 +01:00
Marcus Andersson
5282b7ca8c Bugfix: Updating storybook example to pass theme property to BarGuage (#98804)
* Updating storybook example and making sure BarGauage has theme setup.

* removed unneccessary theme.

* Reverted change updated example.
2025-01-13 09:21:17 +01:00
Scott Lepper
01aeb56646 [search] fix browse mode to show dashboards (#98842)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
[search] fix browse mode to show dashboards
2025-01-11 11:09:31 -05:00
Matthew Jacobson
ad1417b732 Alerting: Return default builtin templates in k8s templategroup API and UI (#96330)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
* Alerting: PoC - default template in k8s templategroup API

* Move code to grafana/alerting

* Move validation to admission validation abstraction

* Testing

* Linting

* Workspace update

* Update grafana/alerting hash to the merged commit

* More user-friendly name and remove need for CREATE/UPDATE validation

Use __default__ for k8s object name and UID so that we don't need to restrict
CREATE/UPDATE for similarly named user-owned templates.
2025-01-10 19:53:18 -05:00
Kristina
0029f92ac3 VizTooltip: Add option to hide zeros when all series are shown (#97986)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-01-10 17:23:50 -06:00
Ida Štambuk
d73bb12b99 Features: Remove cloudwatchMetricInsightsCrossAccount feature toggle (#98826)
Some checks failed
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2025-01-11 00:23:23 +02:00
Selene
9e5fd78b52 Codegen: Remove pfs codegen dependency from Grafana codebase (#98840)
* Remove pfs dependency for IAM struct to avoid to import codegen code in main go.mod

* Remove pointer

* Remove dependency cycle

* Update tests
2025-01-10 22:43:40 +02:00
Michael Mandrus
c9d22f06c3 CloudMigrations: Bulk update local resources (#96002)
* wip

* make tests pass

* get all tests passing

* fixes

* some small cleanup

* fix test

* convert delimiter keys to struct keys

* dont execute empty sql statement

* remove printlns

* fix unit test

* a bit more cleanup

* whoops
2025-01-10 14:42:18 -05:00
Ezequiel Victorero
99a0eb825d Revert "Share: Add analytics to invite user flow" (#98838)
Revert "Share: Add analytics to invite user flow (#98617)"

This reverts commit 79cd8ac894.
2025-01-10 16:17:09 -03:00
Ryan McKinley
ed39259461 Search: Replace Origin calls with Repository (#98754) 2025-01-10 20:27:10 +02:00
Matias Chomicki
3eace5f7c8 Loki: Sync query direction with sort order in Explore and Dashboards (#98722)
* Logs: sync direction and sort order for loki queries in explore

* Logs: emit event on sort order change

* Loki query editor: listen to sort change events and update direction

* Loki query editor: unsubscribe to sort event

* Logs: don't publish events in Explore

* LokiQueryBuilderOptions: use stored order as default value when in explore

* Query builder options: initialize query direction

* Logs: unit test

* LogsPanel: update unit test

* Update tests

* LokiQueryBuilderOptions: unit test

* Update public/app/plugins/datasource/loki/querybuilder/components/LokiQueryBuilderOptions.tsx

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>

* Update public/app/plugins/datasource/loki/querybuilder/components/LokiQueryBuilderOptions.tsx

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2025-01-10 19:59:03 +02:00
renovate[bot]
90e65f6ce6 Update dependency @rsdoctor/webpack-plugin to v0.4.13 (#98833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 17:48:16 +00:00
Alexander Akhmetov
aaa4fe1fe4 Alerting: handle err-mimir-label-value-too-long as user error in the prom writer (#98783)
Alerting: handle err-mimir-label-value-too-long as user error in the writer
2025-01-10 18:36:05 +01:00
renovate[bot]
d7da75c480 Update dependency @grafana/plugin-e2e to v1.14.6 (#98830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 17:16:41 +00:00
Gabriel MABILLE
bc7e90bc28 AuthZ: Fix client dial options (#98827) 2025-01-10 17:41:56 +01:00
xavi
345757c3ae Auth: Fix SAML user IsExternallySynced not being set correctly (#98487) 2025-01-10 17:37:37 +01:00
Misi
9df20eda77 Docs: Update SAML docs (#98809)
* Update feature toggle name in SAML docs

* Update SAML docs
2025-01-10 17:32:49 +01:00
renovate[bot]
5f1005aa4f Update dependency @formatjs/intl-durationformat to v0.7.2 (#98820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 16:32:08 +00:00
Ashley Harrison
2e969686f0 Theme: Extract extra theme definitions into their own directory (#98610)
extract theme definitions into their own directory
2025-01-10 16:31:19 +00:00
Tom Ratcliffe
1ba9a27f70 Chore: Update no-untranslated-strings to check tooltip and template literals (#98281) 2025-01-10 16:26:03 +00:00
Galen Kistler
6568f3669d Loki Datasource: Don't escape single quotes (#98767)
* fix: remove single quote escape
2025-01-10 10:01:17 -06:00
Haris Rozajac
f3d2313f09 Dashboard SchemaV2: Panel repeater (#98654)
* Wip: working layout for repeaters

* Update schema

* only persist orig panel

* Keep only supported mode and rename repeater function

* refactor dimension calcs

* v1 transformer uses calculateGridItemDimensions
2025-01-10 08:09:06 -07:00
Hugo Kiyodi Oshiro
7499611129 Plugins: Disable version installation for specific plugin types (#98597)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2025-01-10 16:02:09 +01:00
renovate[bot]
67ddadbab9 Update dependency i18next to v24.2.1 (#98816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 14:52:32 +00:00
Ashley Harrison
ee362ed978 Snapshot: Show proper breadcrumb path (#98806)
* fix snapshot breadcrumbs

* cleaner
2025-01-10 14:50:44 +00:00
Tom Ratcliffe
3fa0834c49 Chore: Remove unneeded betterer package & results that have been fixed (#98280) 2025-01-10 14:44:37 +00:00
Stephanie Hingtgen
215eb31c7a Annotations: Fix usage of dashboard table for permissions (#98774) 2025-01-10 08:35:38 -06:00
Santiago
86e8147df3 Alerting: Use AlertRuleKey for comparison before rule evaluation (#98808)
(WIP) Alerting: Use AlertRuleKey for comparison before rule evaluation
2025-01-10 15:31:03 +01:00
Andre Pereira
b742896838 Tempo: Add support for TraceQL Metrics exemplars (#96859)
* Add support for exemplars

* TraceQL metrics exemplars ftw

* Fix exemplars on histogram queries

* Added exemplars field for the query builder options

* Add series labels as exemplars dataframe fields so the panel can link series with exemplars

* Fix tests

* Fix lint

* Hide exemplars field from options

* Fix crash on histogram queries

* Use DataTopicAnnotations enum

* Fix test
2025-01-10 14:21:58 +00:00
brendamuir
619e7d3d3f Alerting docs: fix template example link (#98715)
* Alerting docs: fix template example link

* ran prettier

* adjust spacing

* Update docs/sources/alerting/configure-notifications/template-notifications/manage-notification-templates.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* Alerting docs: fix `Explore` ref link

* updates other links

* correcting link

* Update docs/sources/alerting/alerting-rules/_index.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* Update docs/sources/alerting/alerting-rules/templates/_index.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

* fix label ref

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Pepe Cano <825430+ppcano@users.noreply.github.com>
2025-01-10 15:21:18 +01:00
Matheus Macabu
4e398bf2bd Datasources: Add toggle to control default behaviour of 'Manage alerts via Alerts UI' toggle (#98441)
* Datasources: Add toggle to control default behaviour of 'Manage alerts via Alerts UI' toggle

* Update documentation with suggestions

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2025-01-10 15:20:09 +01:00
renovate[bot]
ac2345a3c0 Update dependency eslint-plugin-jest to v28.10.0 (#98815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 16:03:56 +02:00
Laura Fernández
7660fa3921 Unified History: Going to a dashboard page creates two history entries (#98333) 2025-01-10 14:59:06 +01:00
grafana-pr-automation[bot]
6c1cce407a I18n: Download translations from Crowdin (#98690)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-10 13:45:54 +00:00
Torkel Ödegaard
7639934818 RuntimeDataSource: Support in core for runtime registered data sources (#93956)
* RuntimeDataSource: Support in core for runtime registered data sources

* Added tests for runtime datasource.

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

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

* Fixed betterer error.

* fixed type issues.

* updated comment according to feedback.

* will prevent runtime ds registration from overwriting regular ds.

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2025-01-10 14:42:49 +01:00
renovate[bot]
d4de5022eb Update dependency core-js to v3.40.0 (#98805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 13:40:26 +00:00
Misi
de290cf6a5 Auth: Fallback to default client authentication setting in AzureAD OAuth (#98798)
Fallback to default client authentication setting for backwards compatibility
2025-01-10 14:21:16 +01:00
Selene
0501ff9079 Codegen: Isolate schema generation code (#98742)
* Create go.mod files for plugins and core kinds

* Update go work and main go.mod dependencies

* Update pfs import

* Missing update of pfs dependency

* Remove fixed cuelang dependency

* Update codeowners

* Update workspace

* Update Dockerfile

* Missing go.mod codeowner

* Use intermediate kin-openapi dependency to make all workspaces to work
2025-01-10 13:33:51 +01:00
renovate[bot]
32cb6d9dab Update scenes to v5.36.4 (#98797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 11:57:40 +00:00
renovate[bot]
6e8bbe7964 Update dependency uuid to v11.0.5 (#98796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 11:29:48 +00:00
Michael Mandrus
7aa747eb7b CloudMigrations: Enable feature toggle by default in 11.5 (#98686)
* update toggle state for 11.5

* remove unneeded e2c toggle

* remove public preview condition

* regen some stuff
2025-01-10 05:28:35 -06:00
renovate[bot]
ae257246bc Update dependency glob to v11.0.1 (#98793)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 11:02:30 +00:00
Timur Olzhabayev
50668d527a Chore: Lift pluginsFrontendSandbox feature toggle to the next stage (#98789)
Move pluginsFrontendSandbox feature toggle to the next stage
2025-01-10 13:00:31 +02:00
Karl Persson
c593b20465 Zanana: Add custom verb for get_permissions and set_permissions. (#98616)
* Add custom verb for get_permissions and update_permissions.

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2025-01-10 11:49:26 +01:00
renovate[bot]
c62864a7ea Update dependency @swc/core to v1.10.7 (#98791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 10:41:04 +00:00
renovate[bot]
fa7f5d1a5c Update dependency @grafana/plugin-e2e to v1.14.6 (#98788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 10:20:39 +00:00
Alex Khomenko
16d899f1b0 Announcement banner: Remove feature toggle (#98782) 2025-01-10 12:18:43 +02:00
Andrej Ocenas
41c120ba89 Sidecar: Fix cases when sidecar wouldn't open depending on the first loaded route (#98679)
Update mainOnAllowedRoute even if no activeId
2025-01-10 11:09:12 +01:00
renovate[bot]
a0a32fc5df Update dependency @prometheus-io/lezer-promql to v0.301.0 (#98770)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 09:49:33 +00:00
Karl Persson
bdb4725768 UserDisplay: Handle both service accounts and user names when resolving "createdBy" (#98719)
* Handle both user and service accounts when resolving identity name for dashboards and folders

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-01-10 10:06:59 +01:00
Konrad Lalik
557820df56 Alerting: Improve k8s error type (#98569)
* Add more checks to isApiMachineryError type guard

* Make the k8s error details property optional
2025-01-10 09:02:36 +01:00
Marcus Andersson
e4b94fce8a E2E: Updated selectors from 11.4 to target 11.5 (#98784)
Updated selectors to target 11.5.0 since the 11.4 was a special release.
2025-01-10 09:51:56 +02:00
Andrew Hackmann
be1505f2fb InfluxDB: adhoc filters can use template vars as values (#98567)
---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-01-10 09:49:28 +02:00
Stephanie Hingtgen
9488bf2915 Dashboards: use service for quotas (#98756)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Update `make docs` procedure / main (push) Has been cancelled
2025-01-09 22:21:21 -07:00
Stephanie Hingtgen
e195a56c24 Dashboards: move validation to service (#98769) 2025-01-09 22:28:26 -06:00
Zach Day
0e953a8ff3 Docs: Add 11.4 to supported versions table (#98772)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2025-01-09 17:31:32 -05:00
Scott Lepper
07d3bdbe72 [search] - filter by starred (#98651)
[search] - filter by starred
2025-01-09 16:45:04 -05:00
renovate[bot]
1e9f5367af Update dependency @bsull/augurs to ^0.8.0 (#98757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 21:41:26 +00:00
Alex Bikfalvi
cfdc27b4c6 docs(TraceView): Add documentation for span filters as panel options (#98721)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-01-09 14:44:30 -05:00
Isabella Siu
5690859f5f CloudWatch: Fix conditions for fetching wildcards (#98648) 2025-01-09 14:42:06 -05:00
Selene
7cad430ca7 ContactPoints: Remove blank lines prefixes in contact point types (#98590)
Remove blank lines prefixes in contact point types
2025-01-09 19:07:29 +01:00
Yuri Tseretyan
4f62c8a160 Alerting: Update state manager to take image only once per rule evaluation (#98289)
* add test

* update state manager to take image only once per rule evaluation process execution

* update test
2025-01-09 12:57:58 -05:00
Dave Henderson
ee7ffb7a04 chore(deps): remove obsolete prometheus replace directive (#96925)
* chore(deps): remove obsolete prometheus replace directive

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* chore: Replace newly-deprecated call

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

---------

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2025-01-09 12:56:42 -05:00
renovate[bot]
bf8524e5a6 Update dependency typescript to v5.7.3 (#98753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 17:47:23 +00:00
Andre Pereira
ce1ae404db Trace View: Set span filters as panel options (#98328)
* Set span filters through panel options WIP

* Replace vars, tags editor, service and span name are now selects

* Fix undefined access

* Fix sync between panel options and span filters component

* Refactor tags input and use it in the plugin options

* Fix options to panel communication

* Rename Tags file. Fix tag values loading in dropdown

* Fix clear tags

* useMount instead of useEffect

* Replace HorizontalGroup with Stack

* Update betterer results

---------

Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
2025-01-09 17:47:07 +00:00
Leonor Oliveira
90035f9786 Remove permissions call which would get folders again (#98729)
* Remove permissions call which would get folders again

* Remove comment
2025-01-09 18:45:20 +01:00
renovate[bot]
bad9044745 Update dependency browserslist to v4.24.4 (#98743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 17:23:28 +00:00
Misi
c52ec21c75 Auth: Add a feature toggle to roll out SAML session improvements (#98750)
Add separate feature toggle to roll out SAML-related external session improvements
2025-01-09 19:02:49 +02:00
colin-stuart
4581a82ac4 Auth: disable passwordless auth if any SAML/OAuth is enabled (#98227)
* Auth: disable passwordless auth if any SAML/OAuth is enabled

* Update pkg/services/authn/authnimpl/registration.go

Co-authored-by: Victor Cinaglia <victor@grafana.com>

* simplify check if any auth providers are enabled

* add accidentally removed break statement, use IsEnabled with empty context to check if PasswordlessMagicLinkAuth enabled

* use IsClientEnabled

* Update pkg/api/frontendsettings.go

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

---------

Co-authored-by: Victor Cinaglia <victor@grafana.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
2025-01-09 11:44:16 -05:00
margotphelps
9e9adbf5b5 Docs: Add G12 release date to upgrade guide (#98728)
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-01-09 11:34:54 -05:00
Andres Martinez Gotor
82892fa034 Plugins: Enable userStorageAPI feature flag by default (#98745) 2025-01-09 18:31:07 +02:00
renovate[bot]
3c0dc15bf0 Update dependency @grafana/plugin-e2e to v1.14.4 (#98737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 15:42:43 +00:00
Sven Grossmann
5a86f032f1 Loki: Only hide a set of labels instead of every label starting with __ (#98730)
Loki: Only hide a set of labels
2025-01-09 16:29:59 +01:00
renovate[bot]
e0121055fb Update dependency typescript to v5.7.2 (#93749)
* Update dependency typescript to v5.7.2

* typescript fixes

* don't need this change

* remaining typescript fixes

* remove emotion/react aliasing

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-01-09 15:20:45 +00:00
Haris Rozajac
6b03adbbb0 Dashboard V2: Snapshot variables and read snapshot (#98463)
* Introduce DashboardScenePageStateManagerLike interface

* Implement dash loader for handling v2 api

* Transformation improvements

* Update response transformer test

* v2 schema: Remove defaultOptionEnabled from ds variable schema

* v2 schema: Make annotations filter optional

* WIP render dashboard from v2 schema

* Force dashbaord scene for v2 api

* V2 schema -> scene meta transformation

* v2 api: Handle home dashboard

* Use correct api client in DashboardScenePage

* Correctly use v2 dashboard scene serializer

* Remove unnecesary type assertions

* Handle v2 dashboard not found

* Fix type

* Fix test

* Some more tests fix

* snapshot

* Add dashboard id annotation

* Nits

* Nits

* Rename v2 api

* Enable snapshot variables

* Support getSnapshotUrl() for v2 serializer

* fix

* Make metadata available in the serializer

* Test

* Decouple meta info

* State Manager: Extract snapshot loading into loadSnapshot

* Fix tests

* Add test for snapshot url

* Don't expose dashboardLoaderSrvV2

* Remove TODO

* Bubble up loading snapshot error to error boundary

* Fix test

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2025-01-09 08:14:41 -07:00
Eric Leijonmarck
78fda78a56 LBAC for datasources: Extend docs to direct to our terraform provider for provisioning of lbac rules (#98678)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* update docs to direct to our terraform provider for provisioning

* run prettier

* Update _index.md

---------

Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
2025-01-09 15:12:32 +01:00
Ryan McKinley
a84ab52cc7 Provisioning: Add resource types (#98727)
Co-authored-by: Mariell Hoversholm <mariell.hoversholm@grafana.com>
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-01-09 17:12:01 +03:00
Oscar Kilhed
56be39ed4f Dashboards: Fix issue where filtered panels would not react to variable changes (#98718)
* Make sure we activate the parent and tree even if current panel is active

* force activate full scene object tree

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-01-09 14:51:00 +01:00
Esteban Beltran
9e8c1acd00 Docs: Add documentation for auto-triage github action (#97672)
* Add documentation about auto-triager bot

* Add diagram

* Update links to prompts and labels files
2025-01-09 14:58:26 +02:00
Ivan Ortega Alba
9aacc1a04b Scenes: Upgrade to 5.36.3 (#98661) 2025-01-09 14:56:16 +02:00
renovate[bot]
03ea0e3b3b Update dependency @rsdoctor/webpack-plugin to v0.4.13 (#98688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 11:35:04 +00:00
Andreas Christou
2860eb52d0 Azure: Improve Azure Prometheus exemplars UI/UX (#97198)
* Add better error messaging

- Ensure it's clear to users what action needs to be taken if an operation ID cannot be found
- Add test

* Display resource picker for trace exemplar queries

* Remove unneeded test

* Update tests
2025-01-09 13:33:47 +02:00
Ashley Harrison
42f6f917c9 MonacoEditor: set font to Roboto mono (#98672)
set default code editor font to roboto mono
2025-01-09 10:44:07 +00:00
Tom Ratcliffe
f75bbe9f43 Alerting: Add self closing comp rule to alerting eslint config (#98603) 2025-01-09 10:02:52 +00:00
Tom Ratcliffe
42894ba840 Alerting: Use common i18n phrases for cancel and save (#98600) 2025-01-09 10:02:15 +00:00
Alexa V
f04d72a49c Dashboards: SchemaV2 - Fix default datasource logic (#98573)
Get defaultDatasource config option from config.bootData.settings.defaultDatasource
2025-01-09 11:51:53 +02:00
Karl Persson
fb5783691d Zanzana: Fix reconciliation of fixed roles (#98696)
Remove "globalReconciler" and reuse the same one but only run them for cluster namespace
2025-01-09 10:40:18 +01:00
Agnès Toulet
4ae627e420 Render Service: Add trace ID to logs (#98006)
* Rendering: add logs

* fix tests and lint issues

* add context to logs

* update timed out logs to error logs
2025-01-09 10:19:11 +01:00
Leonor Oliveira
4f2d8a1a3b Remove access to folders directly from library elements service (#98665)
* Remove access to folders directly from library elements service

* Lint

* Remove unwanted comment
2025-01-09 11:03:04 +02:00
zenador
22282334c7 Prometheus datasource: Update info annotations without missing severity level (#98485)
Update how info severity level is handled along with changes in plugin-sdk-go
2025-01-09 08:24:56 +01:00
Matheus Macabu
3958fb9e0a CloudMigrations: Introduce RBAC role for migration assistant (#98588)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* CloudMigrations: delete unused code

* CloudMigrations: add access control and protect API + navtree with action

* CloudMigrations: register access control roles

* CloudMigrations: gate frontend based with access control

* CloudMigrations: fix api tests

* CloudMigrations: add docs on new actions and roles

* CloudMigrations: dont interpolate vars to make it more greppable

* CloudMigrations: run prettier
2025-01-09 06:03:42 +02:00
Dominik Prokop
79d8201b49 Dashboards API: v0 k8s dashboards saving (#98695)
* Dashboards API: v0 k8s dashboards saving

* Build dashboard url with a slug

* fix test

* fix test

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-01-08 23:58:54 +01:00
Stephanie Hingtgen
2992fbf6ef K8s: Stats: Update requester (#98706)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
2025-01-08 22:09:39 +02:00
Ryan McKinley
429da7fd68 SQL/Blob: Add support for blob storage to SQL backend (#98192) 2025-01-08 22:08:10 +02:00
Yuri Tseretyan
3e68731600 Alerting: Enable flag alertingApiServer by default (#98282)
* enable flag alertingApiServer by default
* remove feature flag toggle in integration tests
* disable flag for old API tests
2025-01-08 14:31:35 -05:00
Matias Chomicki
34c597b3b3 Logs Panel: fix preview and scroll position interaction (#98687) 2025-01-08 17:40:41 +00:00
jackyin
121a9162ff Library Panel: Fix issue where library panels did not display panel links. (#98655)
* add library panel link

* opimize

* format

* add test

* fix import orders

---------

Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
2025-01-08 18:14:19 +01:00
Will Browne
5a2315dabf Plugins: Capture error source from grpc status errors (#97471)
* capture errorsource from grpc error

* apply PR feedback

* update comment

* update comment

* use SDK logic

* update SDK commit

* update sdk

* update golden files
2025-01-08 17:05:28 +00:00
Eve Meelan
8cb7159872 Add the correct pattern for Cloud linking (#98692)
update pattern for cloud
2025-01-08 11:15:23 -05:00
Andreas Christou
a064f659b2 Azure: Correct version statement for Managed Identity (#98627)
Correct version statement
2025-01-08 16:03:10 +00:00
grafana-pr-automation[bot]
cf75566b3f I18n: Download translations from Crowdin (#98620)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-08 15:55:03 +00:00
renovate[bot]
0ff033c422 Update dependency @leeoniya/ufuzzy to v1.0.18 (#98667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 15:52:47 +00:00
Yulia Shanyrova
e318af54a8 Plugins: Fix Managed By Grafana version display for grafana cloud (#98577)
* Change usePluginInfo to keep installed and latest version

* fix tests, delete console.log

* fix isManaged plugin which s not installed

* refactor add versions into info
2025-01-08 16:08:01 +01:00
Sonia Aguilar
9c7a355afd Alerting: Add tests for combination of switch modes in the alert rule form (#98052)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Add tests for combination of switch

* refactor test

* use alerting option for default datasource in RuleEditor Grafana rules test

* add test for grafana recording rules

* use enum for grafana steps in tests

* dont make each test dependent on previous localstorage

* add test for local storage
2025-01-08 14:48:08 +01:00
Marcus Andersson
299e16b61a E2E: Adding selectors to improve interactions with panel edit options (#97802)
* added selector for older versions of selector menu.

* added test-id to the portal container.

* fixed import order.
2025-01-08 14:40:49 +01:00
Stephanie Hingtgen
5ed2a4c624 K8s: Dashboards: Add deletion validation for provisioned dashboards (#98504) 2025-01-08 06:58:21 -06:00
Stephanie Hingtgen
ce512862f7 Stats: remove dependency on dashboards and folders (#98653) 2025-01-08 06:57:52 -06:00
Ieva
338a41f178 AuthZ service: Add single flight groups for permission fetching (#98607)
add single flight groups for user and anonymous permission checking
2025-01-08 14:53:32 +02:00
Ezequiel Victorero
79cd8ac894 Share: Add analytics to invite user flow (#98617) 2025-01-08 08:24:22 -03:00
renovate[bot]
e19058c2c4 Update dependency @floating-ui/react to v0.27.3 (#98664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 11:16:58 +00:00
renovate[bot]
78826a7e2f Update dependency diff to v7 (#98176)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 10:07:51 +00:00
Ashley Harrison
a8319df145 Icon: Expose wrench icon properly (#98625)
expose wrench icon properly
2025-01-08 09:52:11 +00:00
Kristina
0b89b54085 Dashboard Changed Modal: Fix spelling (#97135)
Fix spelling
2025-01-08 10:34:17 +01:00
Esteban Beltran
4589fabbc8 Chore: Fix auto-triager label files path in github action (#98658) 2025-01-08 10:42:52 +02:00
Sergej-Vlasov
8f6220707b Dashboards: Panels react to timeFrom and timeShift changes using variables (#98510) 2025-01-08 09:35:08 +01:00
Arati R.
e786292673 Folders: Include folder UID when loading dashboards for search v2 (#98592)
* Include folder UID when loading dashboards
* Remove folder UID lookup
2025-01-08 09:32:36 +01:00
antonio
2fd355ebca update for get-started-part-3 (#98601)
* update for get-started-part-3

* update

* pretty

* typo

* clarification

* clarification2

* pretty2
2025-01-08 09:21:18 +01:00
Stephanie Hingtgen
69adb3d25b Tests: Fix dashboard mock (#98647)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
2025-01-08 00:20:35 +02:00
Moustafa Baiou
25538bcfdf Alerting: Fix label escaping in rule export (#97985) 2025-01-07 17:09:27 -05:00
Scott Lepper
f20602ed42 k8s dashboard - fix user parsing/fetching (#98635)
k8s dashboard - fix user parsing/fetching
2025-01-07 16:39:36 -05:00
Stephanie Hingtgen
58ed8a9ec2 Cloud migration: Refactor get by org ID to dashboard svc (#98646)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2025-01-07 23:33:45 +02:00
Ryan McKinley
9b1ecaedda Stars: fix stars api so it returns uids (#98637) 2025-01-07 22:39:25 +02:00
Jev Forsberg
d436723745 Chore: Update dependabot path for docker ecosystem (#98632)
update depbot path
2025-01-07 15:23:25 -05:00
margotphelps
d287c0114e Docs: 2025 release dates added to upgrade guide (#98634)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
2025-01-07 19:42:00 +00:00
Juan Cabanas
d26d748d4a Reporting: Change docs due to newPDFRendering default enablement (#98631) 2025-01-07 15:31:35 -03:00
Haris Rozajac
8b72e2188a Dash-SchemaV2: Don't persist undefined fields (#98493)
Don't persist undefined values
2025-01-07 10:54:56 -07:00
ismail simsek
79c61bcc3c Chore: Update explore metrics project (#98622)
update explore metrics project
2025-01-07 18:36:07 +01:00
Sven Grossmann
02d0e1191f Actions: No need to echo triage labels (#98626) 2025-01-07 19:07:56 +02:00
Kim Nylander
1d551a86dc [DOC] Updates for profile doc restructure (#98301)
* Updates for profile doc restructure

* Updates from prettier
2025-01-07 11:43:24 -05:00
Gilles De Mey
f3cc1f7700 Alerting: Allow notification policy filters to match quoted matchers (#98525) 2025-01-07 17:59:58 +02:00
Josh Hunt
7c596bb4ed Chore: remove betterer:json script (#98618)
* Chore: remove betterer:json script

* codeowners
2025-01-07 15:58:40 +00:00
Syerikjan Kh
b7809b7350 Fix: Double encoding of URLs when using data proxy (#98494)
fix: unescape raw path and set to req path
2025-01-07 10:27:34 -05:00
Matias Chomicki
44e65c5bc9 Logs: Added support to disable and re-enable the popover menu (#98254)
* PopoverMenu: add disable menu item

* PopoverMenu: disable and reenable with shift

* Style confirmation dialog

* Update unit tests and add tracking

* PopoverMenu: i18n

* Translations

* Update tracking property

* Use alt+select to re-enable

* Update betterer
2025-01-07 17:17:06 +02:00
Tom Ratcliffe
df80bdeb14 Chore: Sort eslint betterer results by name (#98208) 2025-01-07 14:56:12 +00:00
Karl Persson
9ed4bf3cd2 Zanzana: Support sub resources (#98201)
* Create and use common ResourceInfo struct

* Add support for formatting group resource with subresource

* Add initial support for handling subresource

* Add test for checking subresource for generic resource

* Bump authlib
2025-01-07 15:16:14 +01:00
Misi
9e3094d68e Auth: Update improvedExternalSessionHandling feature toggle status and info (#98598)
Update feature toggle
2025-01-07 15:14:35 +01:00
Esteban Beltran
92fb6e765f Chore: Use auto-triager github action directly and pass labels and prompts files (#98602)
* Add auto triager files and use them in the auto-triager github action

* add auto-triager file to codeowners
2025-01-07 15:04:20 +01:00
Tobias Skarhed
976cfcbf4f Combobox: Add description support (#98593)
* Support multiple sizes

* Add support for multi

* add a longer description to test clipping

---------

Co-authored-by: joshhunt <josh@trtr.co>
2025-01-07 15:59:58 +02:00
Juan Cabanas
f9c2a5fae9 Reporting: Disable lazy loading for panels (#98065) 2025-01-07 10:55:03 -03:00
Ashley Harrison
87b250d7e2 Time Picker: Fix "Fiscal year start month" selection behaviour (#98576)
don't close overlay when interacting with portal elements (e.g. dropdowns)
2025-01-07 13:43:42 +00:00
Matias Chomicki
ea5b9fdc97 Logs Panel: fix automatic scrolling for ascending order (#98579)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2025-01-07 14:10:54 +01:00
Alexander Zobnin
7e5cb7d8d6 Zanzana: Refactor fixed roles (use global store) (#97884)
* Zanzana: Pass contextual tuples for authorization

* global reconciler for fixed roles

* inject tuples from global store

* fix adding contextual tuples

* cleanup

* don't error on auth context fail

* add todo

* add context for List

* add caching

* remove unused

* use constant for global namespace

* Rename global namespace to cluster namespace
2025-01-07 13:49:55 +01:00
Pepe Cano
9558a25ebe Alerting text: rename Affected alert rule instances (#98369)
* Alerting text: rename `Affected alert rule instances`

* Update docs/sources/alerting/configure-notifications/create-silence.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2025-01-07 13:38:21 +01:00
Joao Silva
878f5957fb MultiCombobox: Add loading, invalid and disabled states (#98423) 2025-01-07 11:47:54 +00:00
Tom Ratcliffe
96e8748266 Alerting: Attempt to improve flakiness of labels field tests (#98587) 2025-01-07 11:36:53 +00:00
Ashley Harrison
c6b73d8aad Chore: ignore automatic updates to react-router (#98512)
ignore automatic updates to react-router (this is a large manual task)
2025-01-07 11:18:53 +00:00
Ryan McKinley
c766201025 K8s/OpenAPI: remove unnecessary x-kubernetes-group-version-kind (#98578) 2025-01-07 04:53:54 -06:00
Tobias Skarhed
e9be53b1d6 MultiCombobox: Use virtualized list (#98318)
* List virtualization

* Remove lgos

* Fix onBlur and highlighted item

* Remove unnecessary blur values

* Mock getBoundingClientRect

* Add story for many options

* Fix PR feedback
2025-01-07 11:38:13 +01:00
renovate[bot]
6952bf473f Update Yarn to v4.6.0 (#98562)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 09:47:36 +00:00
Ryan McKinley
b506fcb11c K8s: Fix the gitVersion response (required for kubectl) (#98571) 2025-01-07 11:43:19 +02:00
John Naizer
79d565f285 OAuth: Support client_secret_jwt for oauth providers when doing token exchange (#95455)
* added backend support for client_secret_jwt

* added backend support for client_secret_jwt

* added all logic to the exchange function (overloaded social exchange in azuread_oauth to handle managed identity client id)

* ran yarn install to update lock file

* added support for client_secret_jwt when managed_identity_client_id is null

* added audience flag and changed exchange to directly access oauth config using .info

* added logic in setting oauth.Config for supported client authentication values

* added client_authentication, managed_identity_client_id, and audience to sample.ini file

* using provided ctx in ManagedIdentityCallback function

* added frontend support for federated identity credential auth

* added client authentication field

* added Azure AD documentation for Grafana

* added bold font to "Add" keyword in documentation

* minor wording change relating to previous commit

* addressed changing audience to federated_credential_audience, moving validation, and changing managedIdentityCallback to private function

* correction to audience name changing

* fixed orgMappingClientAuthentication function name, and added in logic into validateFederatedCredentialAudience function

* Change docs

* Add iam team as owner of azcore pkg

* added backend support for client_secret_jwt

* added all logic to the exchange function (overloaded social exchange in azuread_oauth to handle managed identity client id)

* ran yarn install to update lock file

* added support for client_secret_jwt when managed_identity_client_id is null

* added audience flag and changed exchange to directly access oauth config using .info

* added logic in setting oauth.Config for supported client authentication values

* added client_authentication, managed_identity_client_id, and audience to sample.ini file

* using provided ctx in ManagedIdentityCallback function

* added frontend support for federated identity credential auth

* added client authentication field

* added Azure AD documentation for Grafana

* added bold font to "Add" keyword in documentation

* minor wording change relating to previous commit

* addressed changing audience to federated_credential_audience, moving validation, and changing managedIdentityCallback to private function

* correction to audience name changing

* fixed orgMappingClientAuthentication function name, and added in logic into validateFederatedCredentialAudience function

* Change docs

* Add iam team as owner of azcore pkg

* updated yarn lock file

* updated doc for correction

* removed wrong changes in pkg directory

* removed newline in dashboard-generate.yaml and unified.ts

* updated yarn.lock to match upstream

* Lint

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>

* removing unwanted changes

* added back removed newline

* fixed failing test in azuread_oauth_test.go

* Update azuread_oauth.go

removed unnecessary newline, fixed lint

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2025-01-07 10:42:52 +01:00
Ryan McKinley
d96f378562 K8s/OpenAPI: Update the openapi operation ids (#98515) 2025-01-07 12:13:08 +03:00
Arati R.
6957e1f7b7 Folders: Replace sql query with folder service call when collecting folder tree (#98443)
* Replace sql query with folder service call when collecting folder tree
* Update provider for folder service implementation for wire
* Refactor provisioning of oss service in folder permissions test util
2025-01-07 09:53:09 +01:00
Pepe Cano
de9aec8e56 Alerting: change Settings page subtitle (#98368)
* Alerting: change Settings page subtitle

* update pseudo-locale

* fix pseudo-locale translation using `make i18n-extract`
2025-01-07 09:38:24 +01:00
Ryan McKinley
322c7d9548 K8s/Typescript: Support generic status for ScopedResourceClient (#98509) 2025-01-07 09:26:00 +03:00
dependabot[bot]
addc1c95a5 Bump golang.org/x/crypto from 0.31.0 to 0.32.0 (#98550)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* Bump golang.org/x/crypto from 0.31.0 to 0.32.0

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.31.0 to 0.32.0.
- [Commits](https://github.com/golang/crypto/compare/v0.31.0...v0.32.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update workspace

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-07 08:00:45 +03:00
Stephanie Hingtgen
3797779989 K8s: Dashbaords: Ensure backwards compatibility (#98565) 2025-01-07 01:35:02 +02:00
Stephanie Hingtgen
c566e6af4e K8s: Dashboards: Fix search parsing (#98560) 2025-01-06 15:41:45 -06:00
renovate[bot]
69af0f7ab6 Update dependency webpack-cli to v6.0.1 (#98559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 21:26:39 +00:00
Michael Mandrus
739b7716b1 Usage Insights: Fix usage insight errors being logged as [object Object] (#93502)
* join error strings instead of raw errors

* add unit test
2025-01-06 16:25:05 -05:00
renovate[bot]
cca9b0d2d3 Update dependency uuid to v11.0.4 (#98558)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 20:31:25 +00:00
dependabot[bot]
077c0a2169 Bump github.com/Masterminds/sprig/v3 from 3.2.3 to 3.3.0 (#98552)
* Bump github.com/Masterminds/sprig/v3 from 3.2.3 to 3.3.0

Bumps [github.com/Masterminds/sprig/v3](https://github.com/Masterminds/sprig) from 3.2.3 to 3.3.0.
- [Release notes](https://github.com/Masterminds/sprig/releases)
- [Changelog](https://github.com/Masterminds/sprig/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Masterminds/sprig/compare/v3.2.3...v3.3.0)

---
updated-dependencies:
- dependency-name: github.com/Masterminds/sprig/v3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update workspace

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-06 13:29:59 -07:00
Galen Kistler
3ba0cd23c2 Loki: don't send empty vector selector to /labels API (#98547)
* fix: don't send empty vector selector to /labels API
2025-01-06 14:07:15 -06:00
renovate[bot]
09c4543d11 Update dependency sass to v1.83.1 (#98556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 20:00:57 +00:00
owensmallwood
e6e5d23259 Unified Storage: Adds settings for ca cert path and skipping cert verification (#98412)
Adds settings to US for ca cert path and skipping cert verification
2025-01-06 14:00:38 -06:00
Yuri Tseretyan
f851379f7d Alerting: Add traceID to rule evalutor logger (#98549) 2025-01-06 15:00:25 -05:00
renovate[bot]
54b357125b Update dependency @grafana/plugin-e2e to v1.14.3 (#98545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 19:19:30 +00:00
Dave Henderson
d1c47f983a chore: Add dockerfile config to dependabot (#98533)
Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2025-01-06 14:18:07 -05:00
renovate[bot]
fabbc5ac00 Update dependency rudder-sdk-js to v2.48.43 (#98543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 18:49:52 +00:00
renovate[bot]
d8f8e24381 Update dependency react-hook-form to v7.54.2 (#98541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 18:14:45 +00:00
Stephanie Hingtgen
68479d844b Orgs: Remove dependency on dashboard table for deletion (#98501) 2025-01-06 19:05:22 +02:00
renovate[bot]
14369c53ed Update dependency marked to v15.0.6 (#98534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 16:57:51 +00:00
Ryan McKinley
5b3b9c1113 Search: Add label query test (#98348) 2025-01-06 11:28:08 -05:00
renovate[bot]
1d8ffdd92d Update dependency rc-slider to v11.1.8 (#98529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 16:27:19 +00:00
Ryan McKinley
d1d7c0850f Search: Explain scores (#98316) 2025-01-06 11:25:32 -05:00
Yuri Tseretyan
bfa56bcf08 Alerting: Prom writer to handle err-mimir-max-series-per-user as user error (#98334)
handle err-mimir-max-series-per-user as user error
2025-01-06 10:54:56 -05:00
dependabot[bot]
742157b828 Bump github.com/grafana/grafana-google-sdk-go from 0.1.0 to 0.2.1 (#95898)
* Bump github.com/grafana/grafana-google-sdk-go from 0.1.0 to 0.2.1

Bumps [github.com/grafana/grafana-google-sdk-go](https://github.com/grafana/grafana-google-sdk-go) from 0.1.0 to 0.2.1.
- [Release notes](https://github.com/grafana/grafana-google-sdk-go/releases)
- [Changelog](https://github.com/grafana/grafana-google-sdk-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/grafana/grafana-google-sdk-go/compare/v0.1.0...v0.2.1)

---
updated-dependencies:
- dependency-name: github.com/grafana/grafana-google-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update workspace

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-06 10:46:40 -05:00
Ryan McKinley
6683cdc082 K8s: Update from v0.31.3 to v0.32.0 (#98507) 2025-01-06 18:20:35 +03:00
Ieva
085dac8206 RBAC: Update team reader role name and UID in docs (#98530)
Docs: Update team reader role name and UID
2025-01-06 15:17:09 +00:00
Stephanie Hingtgen
7ab2539449 Dashboard tags: add dashboard_uid and org_id (#98500) 2025-01-06 08:58:16 -06:00
jackyin
17ed25e101 Alerting: Fix alert rule list view summaries (#98433) 2025-01-06 15:39:31 +01:00
renovate[bot]
88fb8bc95c Update dependency micro-memoize to v4.1.3 (#98528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 14:28:58 +00:00
dependabot[bot]
ecc6b9ec44 Bump github.com/blugelabs/bluge from 0.1.9 to 0.2.2 (#97015)
Bumps [github.com/blugelabs/bluge](https://github.com/blugelabs/bluge) from 0.1.9 to 0.2.2.
- [Release notes](https://github.com/blugelabs/bluge/releases)
- [Commits](https://github.com/blugelabs/bluge/compare/v0.1.9...v0.2.2)

---
updated-dependencies:
- dependency-name: github.com/blugelabs/bluge
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-06 09:27:02 -05:00
Ashley Harrison
9d71f42f30 Font: Disable contextual font ligatures (#98521)
disable contextual font ligatures
2025-01-06 14:00:12 +00:00
renovate[bot]
cef0b8249a Update dependency marked to v15.0.5 (#98527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 13:35:50 +00:00
Agnès Toulet
46974d0b60 Docs: newPDFRendering and reportingUseRawTimeRange in GA (#98450) 2025-01-06 14:20:41 +01:00
renovate[bot]
ee53c6c970 Update dependency eslint-plugin-react to v7.37.3 (#98524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 13:15:04 +00:00
Juan Cabanas
4631707276 EmbedPanel: Add url sync and fix refresh (#98390) 2025-01-06 10:13:11 -03:00
Stephanie Hingtgen
88f8f2203b Public Dashboards: Remove join from dashboards table (#98471) 2025-01-06 07:08:29 -06:00
Leon Sorokin
aac8626326 XYChart: Fix series names in legend and tooltip when y field is renamed (#98470)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2025-01-06 06:45:25 -06:00
renovate[bot]
0d8a71c664 Update dependency @types/node to v22.10.5 (#98522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 12:25:31 +00:00
Andre Pereira
c48406753f Tempo: Improve handling of multiple values in the Search tab query generation (#98427)
Fix #67082. Fix selecting more than one value for an attribute
2025-01-06 12:08:16 +00:00
renovate[bot]
5482742891 Update dependency @types/lodash to v4.17.14 (#98520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 11:59:23 +00:00
grafana-pr-automation[bot]
3f959c7359 I18n: Download translations from Crowdin (#98519)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-06 11:57:21 +00:00
renovate[bot]
ea9973ac16 Update dependency @swc/core to v1.10.4 (#98518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 11:16:11 +00:00
renovate[bot]
9a93df861b Update dependency @grafana/plugin-e2e to v1.14.2 (#98514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 10:39:06 +00:00
Dana Axinte
1699dfa307 CloudMigrations: Add support for migration of plugin resources (#95612)
* start plugins migration

* more plugin work

* add warning

* fakepluginsettings test

* tests get plugins

* lint

* load logos

* go lint

* get all plugins once

* locales

* josh suggestion to inject query in rtk

* more plugin filters

* remove datasource warning

* access control for plugins

* remove unused method

* lint

* use gcom list
2025-01-06 10:37:15 +00:00
renovate[bot]
6ca6ad4df7 Update dependency @formatjs/intl-durationformat to v0.7.2 (#98511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 12:15:23 +02:00
renovate[bot]
166e86a0c6 Update dependency esbuild to v0.24.2 (#98308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 09:53:31 +00:00
dependabot[bot]
fed73bfa59 Chore(deps): Bump sigs.k8s.io/structured-merge-diff/v4 from 4.4.1 to 4.5.0 (#98091)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
2025-01-03 17:44:33 -05:00
Todd Treece
49adb86233 Chore: Tweak order of update-workspace script (#98491) 2025-01-03 23:47:41 +02:00
Todd Treece
16f85585ff Chore: Switch to github actions bot in go workspace action (#98490) 2025-01-03 22:29:57 +02:00
Todd Treece
5f5c3f0531 Chore: Add id-token:write permission to go workspace action (#98489) 2025-01-03 21:56:19 +02:00
Todd Treece
f10bf8338e Chore: Prevent forks from running go workspace update action (#98488)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
2025-01-03 21:33:30 +02:00
zenador
e3e51f6e3b Prometheus datasource: Show info annotations in the UI (#97978)
* Show info annotations from Prometheus datasources in the UI

* Add test data for backend
2025-01-03 20:09:19 +01:00
Todd Treece
228ac25ff4 Chore: Use github app for dependabot go workspace workflow (#98464) 2025-01-03 13:52:52 -05:00
ismail simsek
46d2fac82c Chore: Update prometheus ownership (#98456)
* update ownership

* update commands
2025-01-03 19:39:29 +01:00
Stephanie Hingtgen
b4ab55ae38 K8s: Dashboard spec should not have id (#98336) 2025-01-03 09:28:45 -06:00
Isabella Siu
f3a553fb9b CloudWatch: Batch different time ranges separately (#98230) 2025-01-03 10:22:14 -05:00
Stephanie Hingtgen
5429512779 K8s: Restores: Put behind a feature toggle (#98472) 2025-01-03 07:48:47 -07:00
Piotr Jamróz
dc8e010cf3 Crash detection: Track last user interaction to identify crashes happening after user interactions (#97914)
* Track last user interaction to identify crashes happening after user interactions

* Add keypress event and use capture phase
2025-01-03 13:45:05 +01:00
Ivan Ortega Alba
51d9b577d5 DashboardV2: Add support for revision and gnetId in schema and response transformers (#98477) 2025-01-03 13:17:27 +01:00
Andreas Christou
deab83a958 Partner data sources smoke tests (#98446)
* Add smoke tests for remaining partner data sources

* Fix test names and run them

* Use text check for gcm
2025-01-03 11:52:15 +00:00
Leonor Oliveira
937e8dea2d Folder/parent subresource (#98392)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* Expose get folder parents endpoint

* Add tests
2025-01-03 10:43:56 +01:00
Dominik Prokop
0836f71da6 Schema v2 queries transformation: Respect panel defined data source (#98444) 2025-01-03 10:25:06 +01:00
dependabot[bot]
73b014e53e Build(deps): Bump filippo.io/age from 1.1.1 to 1.2.1 (#98221)
Bumps [filippo.io/age](https://github.com/FiloSottile/age) from 1.1.1 to 1.2.1.
- [Release notes](https://github.com/FiloSottile/age/releases)
- [Commits](https://github.com/FiloSottile/age/compare/v1.1.1...v1.2.1)

---
updated-dependencies:
- dependency-name: filippo.io/age
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-03 10:30:37 +02:00
Ieva
5a98432ba6 AuthZ service: Add traces for authZ service and store (#98445)
* add traces for authz service and store

* fix tests
2025-01-03 10:23:03 +02:00
ismail simsek
a798bb74e5 Prometheus: Add double_exponential_smoothing function (#98312)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Update `make docs` procedure / main (push) Has been cancelled
* add double_exponential_smoothing function

* add in operations
2025-01-02 22:19:49 +01:00
ismail simsek
5be4dfd8c8 Chore: Remove prometheusConfigOverhaulAuth feature toggle (#98460)
* remove toggle

* remove toggle from code
2025-01-02 22:19:11 +01:00
Scott Lepper
83bcd86d18 [search] set folder; case insensitive sort (#98335)
* [search] set folder
* sort case insensitive
* fix test
2025-01-02 14:58:42 -05:00
Robert Goltz
5a2344ed0c Chore: Bump dependency golang.org/x/net to v0.33.0 - fix: CVE-2024-45338 (#98340)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* Chore: golang.org/x/net update to fix CVE-2024-45338

* Chore: golang.org/x/net update to fix CVE-2024-45338 - resolve trivy-finding + 2nd run make update-workspace
2025-01-02 11:22:25 -07:00
Stephanie Hingtgen
01b3e56706 K8s Dashboards: Fix Tags (#98417) 2025-01-02 11:38:23 -06:00
Russ
0e55e45f88 grafana-ui: prevent TimeRangePicker from submitting wrapping forms (#97973) 2025-01-02 08:31:12 -09:00
Ivan Ortega Alba
1a6312296e Dashboard: Compute tracking info for schema V2 (#98271) 2025-01-02 18:33:16 +02:00
ismail simsek
0d60a026e9 Chore: Use slices from standard library in promlib (#98350)
use slices from standard library
2025-01-02 17:24:17 +01:00
Stephanie Hingtgen
03f7a7d89d K8s: Dashboards: Add search to dashboard service (#98395) 2025-01-02 09:39:45 -06:00
Nick Richmond
81ca734680 ExploreMetrics: Refactor logs integration to prepare for additional association techniques (#98430)
* refactor: extract implementation details

* chore: remove unused code

* refactor: prefer interfaces

* docs: add clarity
2025-01-02 09:06:28 -05:00
Dominik Prokop
e974cb87d8 Schema v2: Read API integration (#97953)
* Introduce DashboardScenePageStateManagerLike interface

* Implement dash loader for handling v2 api

* Transformation improvements

* Update response transformer test

* v2 schema: Remove defaultOptionEnabled from ds variable schema

* v2 schema: Make annotations filter optional

* WIP render dashboard from v2 schema

* Force dashbaord scene for v2 api

* V2 schema -> scene meta transformation

* v2 api: Handle home dashboard

* Use correct api client in DashboardScenePage

* Correctly use v2 dashboard scene serializer

* Remove unnecesary type assertions

* Handle v2 dashboard not found

* Fix type

* Fix test

* Some more tests fix

* snapshot

* Add dashboard id annotation

* Nits

* Nits

* Rename v2 api

* Update public/app/features/dashboard-scene/serialization/transformSaveModelSchemaV2ToScene.ts

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>

* add getDashboardsApiVersion test for forcing scenes through URL

* add links to ResponseTransformers

* Update public/app/features/dashboard/api/ResponseTransformers.test.ts

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>

* Nit rename test case

* Add tests for DashboardScenePageStateManagerV2

* Update test

* Typecheck

* Add console error for debugging

* Fix typo

---------

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-01-02 12:23:58 +01:00
Moustafa Baiou
8ab12aede4 Alerting: Fix terraform export of notification policy
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
When exporting a notification policy with no `group_by` the hcl exported is not valid as it is missing the required field.
This fixes the issue by initializing the `group_by` field with an empty list if it is nil.
2024-12-31 14:53:39 -05:00
Haris Rozajac
a110917577 Dashboard SchemaV2: V2 -> Scene -> V2 integration test (#98146)
* Tests for layout, transformations; displayMode

* wip

* fix annotations

* fix panel query and transformation topic

* fix dash id, default options, fieldConfig

* Complete integration test

* fix annotation query

* Fix test

* Clarify

* Have default value of builtIn

* update import path
2024-12-31 11:43:04 -07:00
Leon Sorokin
e43e86376e OptionsPicker: Fix matching non-latin template vars in filter (#98416)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
2024-12-31 06:05:28 -06:00
Levente Balogh
7e4b05c268 Grafana UI: Re-add react-router-dom as a dependency (#97540)
* chore(grafana/ui): add react-router-dom v5 as a dependency

* chore(grafana-ui): align version of react-router with core

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-12-31 12:38:55 +01:00
Gilles De Mey
0e4b503352 Alerting: Hide reducer hint for alert creation editor (#98410) 2024-12-31 11:58:01 +01:00
Dominik Prokop
bc96da3a95 Schema v2: Express isNew dashboard through client annotations (#98408)
* Schema v2: Express isNew dashboard through client annotations

* Betterer update

* Revert "Betterer update"

This reverts commit e9d1fe3c4e.
2024-12-31 11:56:42 +01:00
Brendan O'Handley
37e47d5b9a Prometheus: Add error source to data response when prom returns a response (#98144)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
publish-technical-documentation-next / sync (push) Has been cancelled
add error source to dr when prom returns a response not an error
2024-12-30 15:43:10 -06:00
Brendan O'Handley
d935fa1ea0 Prometheus: Remove prometheusMetricEncyclopedia feature toggle (#98414)
* remove toggle from registry

* remove from metric combobox

* remove toggle from metric select

* remove toggle from promQueryBuilderContainer

* prettier
2024-12-30 23:16:04 +02:00
maicon
d2639f6080 Ensure all internal Services are using FolderService and not FolderStore (#98370)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Ensure all internal Services are using FolderService and not FolderStore

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2024-12-30 13:48:35 -03:00
Alexander Akhmetov
5735a0d11d Alerting: Fix no-change scenario in provisioning rule update API (#98389) 2024-12-30 16:03:45 +01:00
Pepe Cano
6178320257 Alerting docs/internal: leaf bundle page becomes a branch bundle (#98391) 2024-12-30 11:49:11 +01:00
github-actions[bot]
892b9b0ba4 Update make docs procedure (#98398)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-12-30 10:12:41 +00:00
grafana-pr-automation[bot]
7fa4786fa3 I18n: Download translations from Crowdin (#98394)
Some checks are pending
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-30 07:59:51 +02:00
Shubhankar Unhale
436f68da3a Expressions: Add notification for Strict Mode behavior in Reduce component (#97224)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
* Add strict mode notification to Reduce component with i18n support

* Added translation keys
2024-12-29 11:58:21 +00:00
Leonor Oliveira
df36e77cd3 [Folders] Put move and counts behid a feature flag (#98317)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
* Put move and counts behid a feature flag

* Gen toggles

* Generate feature flag

* Make feature name more explicit

* Remove unused code

* Update toggle  name
2024-12-27 18:10:44 +01:00
Pepe Cano
e72ba20ff6 Update docsUrl in Prometheus DS Settings page (#98382) 2024-12-27 17:25:56 +01:00
Leonor Oliveira
fec5c0ec19 Make sure annotations are kept when updating a folder (#98321)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Make sure annotations are kept when updating a folder

* Remove pointer

* Mock get on update tests
2024-12-27 13:51:10 +01:00
github-actions[bot]
d05ef49016 Update make docs procedure (#98352)
Co-authored-by: grafanabot <bot@grafana.com>
2024-12-27 12:15:45 +00:00
Pepe Cano
6976908597 Alerting docs: update configuring and using additional Alertmanagers in Grafana Alerting (#98363)
* Alerting docs: Alertmanager data source

* Alertmanager data source: minor intro changes

* Update `Intro > Notifications`

* Complete Configure alertmanager update

* Configure alertmanager

* minor final edits
2024-12-27 10:16:31 +01:00
Laura Fernández
5d923095b9 Unified History: Place the UnifiedHistory icon (#98092)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Update `make docs` procedure / main (push) Has been cancelled
2024-12-26 11:21:36 +00:00
grafana-pr-automation[bot]
8375623b91 I18n: Download translations from Crowdin (#98367) 2024-12-26 08:48:25 +01:00
jackyin
967c13f5b7 ExploreMetrics: unexpected rolling behavior (#98360)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
2024-12-25 00:29:07 -06:00
Pepe Cano
287f3a75eb Alerting: add help tooltip for the Preview silences UI (#98028)
* Alerting UI: add tooltip for the Preview silences UI

* fix typo

* Update translations for silences preview

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-12-24 15:23:29 +01:00
ismail simsek
d9f9614e1c Prometheus: Remove unused version-detect endpoint (#98349)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
* remove go-cache

* remove comments
2024-12-23 21:29:44 +01:00
Ryan McKinley
bc535181cf K8s/Dashboard: Always set an internl id (even in mode 4+) (#98320)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
2024-12-20 22:17:59 +02:00
Scott Lepper
cd7dcdb9ea [search] fix sorting; paging; move/delete checkboxes (#98287)
* [search] fix sorting

* add "uid" field to dataframe ( for move/delete checkbox )

* fix paging

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-12-20 15:16:37 -05:00
Ryan McKinley
1a46039037 K8s/Dashboards: Pass the legacy internal ID into labels (#98311)
---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-12-20 21:33:49 +02:00
Andreas Christou
54333473f7 SQL: Set errors as downstream based on underlying errorsource (#97192)
Set errors as downstream based on underlying errorsource
2024-12-20 17:42:58 +00:00
Tom Ratcliffe
d1846da0d2 Alerting: Skip non-expression queries in DAG creation (#98315) 2024-12-20 16:13:32 +00:00
Ieva
1334caa6c8 AuthZ service: Support anonymous access (#98322)
support anonymous access
2024-12-20 16:32:57 +01:00
Gabriel MABILLE
efb7cc0343 Chore: Authlib upgrade (#98319)
* Chore: Authlib upgrade

* Upgrade authlib

* Uncommit file
2024-12-20 15:48:35 +01:00
Ieva
2503b31f53 AuthZ service: Implement listing (#98220)
* listing implementation pt 1

* validate list request

* register GRPC endpoint, pass the correct user UID and return folder identifiers not scopes

* uncomment code that was only commented out for testing

* fix tests

* remove unneeded changes

* remove unused import

* Update pkg/services/authz/rbac/service.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* refactor to improve efficiency

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* use variable names when logging

* adding tests for listing

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2024-12-20 15:48:20 +02:00
Juan Cabanas
833f5d5d22 SharePanelInternally: Number inputs fix (#98270) 2024-12-20 09:36:54 -03:00
Eric Leijonmarck
e0e4e1cdff LBAC for datasources: Refactor to only use jsondata and not the datasource struct (#98294)
Some checks failed
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
publish-technical-documentation-next / sync (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
refactor to only use jsondata and not the datasource struct
2024-12-20 11:40:26 +00:00
ismail simsek
58d17ecad1 InfluxDB: Refactor frame and field creation (#97635)
* refactor frame and field creation

* use influxql package to get the type of the query

* remove unnecessary tests

* add influxql in go.mod

* fix unit test

* update ownership

* update query expression
2024-12-20 12:23:17 +01:00
renovate[bot]
293a90f76f Update dependency webpack-cli to v6 (#98284)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 11:11:07 +01:00
Pepe Cano
9f0e1a1053 Alerting docs: fix broken link (#98259) 2024-12-20 11:08:32 +01:00
Gabriel MABILLE
55f8be62a1 AuthZ Service: Use singleflight group to fetch and build the folder tree (#98299)
* AuthZ Service: Use singleflight group to fetch and build the folder tree

* Change the sfgroup key

* Future proof
2024-12-20 10:26:30 +01:00
Charandas
24bf337c56 Playlists: convert to use reconcilers instead (#98075)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
2024-12-19 19:09:31 -08:00
Larissa Wandzura
c172bbba50 Docs: Updated Grafana Enterprise page with missing data sources (#98286)
added 5 missing data sources, changed one name
2024-12-19 14:24:52 -06:00
Scott Lepper
a8f347144d wire up the ui to the new search api (#97866)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
Update `make docs` procedure / main (push) Has been cancelled
wire up the ui to the new search api

Co-authored-by: Scott Lepper <scott.lepper@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Dan Cech <dcech@grafana.com>
2024-12-19 13:21:48 -05:00
renovate[bot]
86a13ea4bd Update dependency webpack-merge to v6 (#98262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 17:14:10 +00:00
Leonor Oliveira
58c44f6c66 Trim folder title (#98275) 2024-12-19 17:56:14 +01:00
Misi
123c860293 Docs: Configure SAML SLO properly with NameID and SessionIndex support (#98207)
* Docs: SAML proper NameID and SessionIndex support

* Address feedback

* update link
2024-12-19 16:47:02 +00:00
Ryan McKinley
399cbf7c50 Search: Use new folder when creating a bleve index (#98260) 2024-12-19 18:40:04 +02:00
Mitch Seaman
805ac9cd40 [Docs] add Cloud details and additional guidance to Upgrade Strategies (#97917)
* [Docs] add some Cloud details and additional guidance to Upgrade Strategies

* run prettier

* add testing, issues, and strategies

* remove internal hyperlink

* fix bold formatting

* run prettier

* Apply suggestions from code review

Co-authored-by: Tim Levett <tim.levett@grafana.com>

---------

Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
Co-authored-by: Tim Levett <tim.levett@grafana.com>
2024-12-19 10:31:31 -06:00
Tobias Skarhed
e640b3c179 MultiCombobox: Add floating menu styles (#98258)
Add floating menu styles
2024-12-19 17:29:28 +01:00
Dominik Prokop
746bde0fac DashboardSceneSerializerLike: Update interface to support initial version and snapshot url (#98206)
* Make dashboard prompt ignoreChanges schema version independent

* Serializer: add interface for snapshot url retrieval

* Revert "Make dashboard prompt ignoreChanges schema version independent"

This reverts commit 65466c2ef1.

* Add dashbaord version to scene metadata

* Add tracking info

* Revert "Add tracking info"

This reverts commit 4c58c6687b.

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2024-12-19 16:09:19 +01:00
renovate[bot]
a37b6f455e Update dependency webpackbar to v7 (#98265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 15:02:26 +00:00
Stephanie Hingtgen
124440ccee Unistore: Block on legacy writes in mode3 (#98147) 2024-12-19 08:47:48 -06:00
Torkel Ödegaard
02aded2743 Dashboards: Fixes week relative time ranges when weekStart was changed (#98167)
* Dashborads: Fixes week relative time ranges when weekStart was changed

* Fix

* Update
2024-12-19 15:24:59 +01:00
renovate[bot]
29db5a9d8a Update dependency rc-tooltip to v6.3.2 (#98251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 14:08:40 +00:00
Kim Nylander
848f03928c Update configure-tempo-data-source.md (#98228) 2024-12-19 09:06:50 -05:00
renovate[bot]
78b867804d Update dependency uuid to v11 (#98255)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 13:52:55 +00:00
Gabriel MABILLE
c175722dfd AuthZService: Cache folder tree (#98210)
* AuthZService: Cache folder tree

* Remove fmt

* Suggestion

* Add tests
2024-12-19 13:55:59 +01:00
Ivan Ortega Alba
6c5b408339 Feature toggle: remove dashboardSchemaV2 (#98252) 2024-12-19 14:28:20 +02:00
antonio
9a17954eaf tutorial>alerting:get started with grafana alerting part 3 (#98093)
* tutorial>alerting:get started with grafana alerting part 3

* draft 1

* call-to-action

* typos

* all pretty, no pity

* delete sentence

* Update docs/sources/alerting/fundamentals/notifications/group-alert-notifications.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt2/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt2/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt2/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt3/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt3/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt3/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt3/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/tutorials/alerting-get-started-pt3/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* admon

* pretty again

* links

* format

* group interval note

* Update docs/sources/tutorials/alerting-get-started-pt3/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* rmved note

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-12-19 13:22:03 +01:00
renovate[bot]
9a5a9fe8a2 Update dependency knip to v5.41.1 (#98249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 12:19:28 +00:00
Karl Persson
73dda344f9 Bump authlib (#98234)
* Bump authlib
2024-12-19 13:07:32 +01:00
renovate[bot]
749a2f52bb Update dependency @grafana/plugin-e2e to v1.14.1 (#98247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 12:05:09 +00:00
Ida Štambuk
105251425f CloudWatch: Fix interpolation of log groups when fetching fields (#98054) 2024-12-19 12:53:39 +01:00
renovate[bot]
67a7731ca9 Update dependency marked to v15 (#98199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 11:48:57 +00:00
renovate[bot]
a331c7cc38 Update dependency stylelint-config-sass-guidelines to v12 (#98213)
* Update dependency stylelint-config-sass-guidelines to v12

* fix stylelint issues

* fix indentation

* update snapshots

* linting...

* linting...

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-12-19 11:44:28 +00:00
Leonor Oliveira
c1e078b3a3 Include library elements on counts endpoint (#98246)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
2024-12-19 12:38:08 +01:00
Joao Silva
989ee681f8 MultiCombobox: Add truncation behavior (#97691) 2024-12-19 11:25:44 +00:00
Ivan Ortega Alba
a06779614e Implement detect changes tracking to V2 Schema (#98153)
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2024-12-19 13:00:59 +02:00
Younjin Song
148289258f Azure: Unify credentials in frontend for Prometheus (#96568)
init
2024-12-19 10:54:51 +00:00
grafana-pr-automation[bot]
2303694293 I18n: Download translations from Crowdin (#98224) 2024-12-19 10:38:55 +00:00
Ryan McKinley
cbddc41ad5 Chore: Avoid logging error for UID mismatch (#98151) 2024-12-19 13:04:09 +03:00
Tobias Skarhed
c901b76a8a Transformations: GroupToMatrix add 0 as special value (#97642)
* Add support for 0 empty value

* Remove only

* Add zero option
2024-12-19 10:53:33 +01:00
Joao Silva
e0af98dec8 POC: Unified History (#94318) 2024-12-19 10:26:42 +01:00
Leonor Oliveira
f5d44ff51d Folders move (#98100) 2024-12-19 09:59:14 +01:00
maicon
2e08092a34 UniStore: Get Folder Handler return Root Folder (general) (#98127)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2024-12-18 22:31:55 -03:00
Nick Richmond
721c50a304 Prometheus: Improve handling of special chars in label values (#96067)
* fix: handling of special chars

* docs: add clarity

* fix: escaping

* refactor: put changes behind new feature toggle

* docs: use consistent comment style

* refactor: rename feature toggle for brevity

* use single quotes

* fix unit tests

* remove redundant json entry

* fix: keep all changes behind feature toggle

* fix: support builder mode

* fix: don't escape when using regex operators

* fix: code mode label values completions with special chars

* refactor: remove unneeded changes

* move feature toggle up so new changes from main won't conflict with ours

* fix: escape label values in metric select scene

* refactor: ensure changes are behind feature toggle

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-12-18 16:31:08 -05:00
Isabel Matwawana
c9c77a6a6c Docs: Hide cost info and add note about future cost (#97361)
Co-authored-by: Thanos Karachalios <47744721+thanos-karachalios@users.noreply.github.com>
2024-12-18 15:43:45 -05:00
Konstantin Kornienko
3a8113889a Annotations: Fix min step parameter interpolation in Prometheus annotations query (#97734)
* Fix `min step` parameter interpolation in prometheus annotations query

Looks like the step is interpolated in annotationQuery, but not interpolated in processAnnotationResponse. Fixing that.

* Update packages/grafana-prometheus/src/datasource.ts

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>

* Added test for non-default step

* modified tests

* apply prettier manually

---------

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
2024-12-18 14:27:07 -06:00
Juan Cabanas
2c3c06e00f SharePanelInternally: Add render image inside drawer with customization (#97179) 2024-12-18 16:32:41 -03:00
Isabel Matwawana
62b326a08c Docs: Share panel image preview (#98039) 2024-12-18 14:31:31 -05:00
Matias Chomicki
52673ad390 Log rows: Refactor as functional components and remove render preview (#98025)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* LogRow: migrate to functional component

* LogRowContextModal: remove dependency between test cases

* LogRows: turn into functional component

* LogRows: try GhostRow, preview, and move event listeners to the parent

* LogRows: adjust preview size for few log rows

* Explore: optimize inline and derived props

* Remove log

* Logs: restore set displayed fields

* Refactor props that cause re-renders

* Unmemoize shouldShowMenu

* Refactor to PreviewLogRow and add preview to DisplayedFields

* Refactor moving listeners to parent

* Update unit tests

* LogRows: update preview size to twice screen height

* Revert change

* Update unit test

* Update utils test

* Update logsPanel unit test

* Improve permalinking

* LogRows: decrease preview size

* PreviewRow: render log entry

* Prettier

* LogRow: update unit test

* Update missing props

* Fix logs volume toggling

* Destructure prop
2024-12-18 19:03:47 +01:00
Isabel Matwawana
dc52d1b252 Docs: Gauge visualization refactor (#98143) 2024-12-18 12:40:39 -05:00
owensmallwood
4837585cab Unified Storage Search: Add sprinkles (#97820)
* Wire up sprinkles to oss and enterprise. Fetching sprinkles not implemented yet.

* Adds wireset for initializing document builders. Had to init it when creating the service to avoid cyclical imports.

* updates to int64 for stats

* adds config for sprinklesApiServer and gets sprinkles from there when its present

* add comment for later

* adds feature toggle for sprinkles. returns empty results when flag not enabled.

* adds unified storage config setting for sprinkles apiserver page limit

* fixes bug where dashboard uid was not getting set

* when creating dashboard summary, use metadata.name as the dashboard uid

* cleans up wire. use existing oss and enterprise sets to generate doc builders

* remove old wireset

* fix linter - adds missing arg for doc builders

* update dashboard stats in tests

* updates test-data dashboards

* log a warning instead of returning an error if we can't get sprinkles for a namespace

* dont read uid from dashboard json
2024-12-18 11:00:54 -06:00
renovate[bot]
54e603e552 Update dependency rollup-plugin-node-externals to v8 (#98211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 18:57:09 +02:00
renovate[bot]
34d7caef2d Update dependency react-i18next to v15 (#98209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 18:38:46 +02:00
grafana-pr-automation[bot]
bff389aa41 I18n: Download translations from Crowdin (#98187)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-18 18:19:23 +02:00
Gabriel MABILLE
987357327d Chore: Update authlib (#98191) 2024-12-18 17:16:34 +01:00
renovate[bot]
59f71566df Update dependency @rtk-query/codegen-openapi to v2 (#98135)
* Update dependency @rtk-query/codegen-openapi to v2

* update cloud migration generated endpoints

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-12-18 18:16:21 +02:00
Ashley Harrison
5aabc0781c Chore: remove @types/dompurify since the main package exports types now (#98196)
remove @types/dompurify since the main package exports types now
2024-12-18 15:56:19 +00:00
Ieva
30321a59a9 Fix broken builds (#98198)
* fix broken builds

* fix broken builds
2024-12-18 17:24:56 +02:00
Misi
5ecc3343db Docs: Add org role mapping improvements to SAML docs (#98178)
Docs: Add org role mapping improvements
2024-12-18 16:12:50 +01:00
Liza Detrick
67a85fc358 feat: (Navlinks) - Add Adaptive Traces to Cost mgmt navlinks (#97981) 2024-12-18 09:05:18 -06:00
Misi
26c323b5a6 Chore: Do not return the token on refresh error (#98171)
* Small improvements

* Remove unused error
2024-12-18 15:30:39 +01:00
renovate[bot]
9532f738d5 Update dependency lru-cache to v11 (#98194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 14:23:43 +00:00
Ieva
40a9f7162a AuthZ service: Build folder tree and check inherited permissions (#98074)
* build folder tree and check inherited permissions

* don't fetch dashboards

* remove unused queries
2024-12-18 14:19:16 +00:00
renovate[bot]
a727372573 Update dependency ini to v5 (#98193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 16:16:32 +02:00
Sergej-Vlasov
e7ab142348 Update scenes to v5.35.0 (#98174)
* Update scenes to v5.35.0

* update test to mock console.warn

* use updateLocale

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-12-18 14:15:59 +00:00
Syerikjan Kh
beaa26764c fix: upgrade/install button interaction event condition (#98142) 2024-12-18 09:03:10 -05:00
renovate[bot]
f186c452d5 Update dependency immutable to v5 (#98189)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 15:56:49 +02:00
renovate[bot]
e308675b44 Update dependency i18next-browser-languagedetector to v8 (#98188)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 15:36:04 +02:00
Torkel Ödegaard
697b5a2de7 Table: Fixes broken cell action styles (#98154)
* Table: Fixes broken cell action styles

* restore debug change
2024-12-18 14:35:30 +01:00
renovate[bot]
4377d0f890 Update dependency i18next to v24 (#98182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 13:17:44 +00:00
renovate[bot]
76c2707383 Update dependency eslint-plugin-testing-library to v7 (#98181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 13:13:13 +00:00
Gabriel MABILLE
961211b21a AuthZ Service: Add caching (#98008)
* AuthZ Service: Add caching

* split in functions

* Test getUserTeams

* Add tests to getUserBasicRole

* Test getUserPermissions

* Cache user identifiers

* fix test
2024-12-18 14:07:19 +01:00
Sriram
90bc574599 Public Dashboard: Added postgresql alias grafana-postgresql-datasource as supported public dashboard (#97148)
added grafana-postgresql-datasource
2024-12-18 12:54:26 +00:00
Pepe Cano
001cc853a5 Alerting docs: update Monitor status section (#98179)
* Minor updates to `Declare incidents` docs

* change URL

* View alert state history + restructuring

* Complete alert state

* alert state

* change heading

* View alert rules

* Monitor alerts
2024-12-18 13:23:15 +01:00
Jack Westbrook
b88ce9df38 Chore: Remove Dashboard datasource barrel file (#98040)
* chore(dsahboard-datasource): delete barrel file

* refactor(dashboards): update paths for dashboard ds imports

* chore(betterer): update file

* style(dashboard-datasource): fix linting errors
2024-12-18 13:18:55 +01:00
Tom Ratcliffe
6df7d1fbc0 Alerting: Split out components for notification policies (#97191) 2024-12-18 12:16:46 +00:00
renovate[bot]
89774f3c8d Replace usage of react-test-renderer and @testing-library/react-hooks (#98152)
* Update dependency @types/react-test-renderer to v19

* replace usage of react-test-renderer

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

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

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-12-18 11:55:25 +00:00
renovate[bot]
b710e26a40 Update dependency date-fns to v4 (#98172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 11:52:16 +00:00
grafana-pr-automation[bot]
55bbea3974 I18n: Download translations from Crowdin (#98138)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-18 13:17:34 +02:00
flopp999
7f6c794ecd Update create-notification-policy.md (#98077)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
found an extra /
2024-12-18 12:39:17 +02:00
renovate[bot]
829685ed4f Update dependency css-minimizer-webpack-plugin to v7 (#98163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 10:29:39 +00:00
renovate[bot]
3dac836bf9 Update dependency @types/uuid to v10 (#98161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 10:27:59 +00:00
Misi
a5635d7e89 Auth: Update external session data regardless if the improved session handling is enabled (#98139)
Update ext session tokens regardless if the ft is enabled
2024-12-18 11:27:50 +01:00
renovate[bot]
a572dca2d6 Update dependency @grafana/plugin-e2e to v1.14.0 (#98160)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 12:00:48 +02:00
Igor Suleymanov
ea346cf1f9 Add investigations app to go.mod (#98158)
What

Update dependencies in go.mod and add investigations app module.

Why

The investigations app was introduced as a new sub-module in
https://github.com/grafana/grafana/pull/98084 and since it's imported by
code inside the main `grafana/grafana` module it now is required to be
part of the main `go.mod`.

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2024-12-18 11:48:55 +02:00
Sonia Aguilar
cdd74aa144 Alerting: Fix ash not showing history graph in firefox (#98128)
fix getEventsSceneObject
2024-12-18 10:45:10 +01:00
renovate[bot]
02a3edf30c Update dependency type-fest to v4.30.2 (#98130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 09:40:34 +00:00
renovate[bot]
0dea8101d5 Update dependency knip to v5.41.0 (#98129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 09:40:04 +00:00
Jackson Coelho
f46c07aba7 feat: Add investigations app backend (#98084)
* add initial structure for investigations app backedn

* update version

* Fix codegen & paths

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

* Fix Go workspace and CODEOWNERS

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

* update kinds for investigation

* update dockerfile

* update codeowners

* update dependabot

* update golangci

* add investigation app and watcher

* run make update-workspace

* run make update-workspace

* register investigation app

* add investigation app to wireset

* add investigations app provider to api initializer

* fix imports

* update feature toggle

* fix cue definition and api initializer

* clean up removing unecessary components

* remove watcher feature toggle

* add investigations backend behind feature toggle

* revert change

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Igor Suleymanov <igor.suleymanov@grafana.com>
2024-12-18 10:31:03 +02:00
renovate[bot]
e8b6d43110 Update dependency @types/diff to v6 (#98136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 08:56:18 +01:00
Dominik Prokop
070f0e4457 Dashboard API versions handling (#96666)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* structure apic

* API versioning proposal

* Make api service independent from version

* Update v2

* Fix public dashboards page test

* Uncomment reload dashboard feature code

* Revert

* Betterer

* Fix imports

* useV2DashboardsAPI feature toggle

* POC/v2 schema: Add v1<-> v2 transformers (#97058)

* Make dshboard access interface more precise

* Add first pass for schema v1<->v2 transformers

* Update response transformer test

* Import fixes

* Manage dashboards validation: Handle v2 schema

* Handle new dashboard with v2

* Fix tests

* Move dashboard is folder error handling to legacy API implementation

* Add tests for dashboard api client

* betterer

* Use dashboard DTO when capturing dashbaord impression

* prettier

* Dashboard API: resolve folder metadata

* Add tests for resolving folder metadata

* Fix DashboardPicker

* Renames and nits

* POC Alternative Suggestion for  Dashboard API versions handling (#97789)

* Add transitional_dashboard_api, reset components that are not ready for v2 schema, and start working on migrating
DashboardPicker to use v2 schema

* reset DashboardScenePageStateManager

* Improve logic in transitional api, also remove isDashboardResource checks from components

* REmove transitional_dashboard_api and apply PR feedback

* Apply PR feedback, use 'v2' as a parameter and remove unnecesary if

* Fix tests

* Adding missing comments from original PR and also changing order to improve diffing in github :)

* update betterer

* fix prettier

* Add tests for DashboardPicker

* Do not use unified alerting mocks

* Fix unused type in dashboard test

* Improve comments in DahboardPicker

* Update folder validation fn

* Validation update

* Update legacy api test

* Lint

---------

Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2024-12-17 22:17:09 +01:00
Isabel Matwawana
31e67b5ba3 Docs: Add invite new member section (#97967) 2024-12-17 14:10:09 -05:00
Ezequiel Victorero
7bdf521ba3 Share: Add invite user to the sharing menu (#97067)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
2024-12-17 15:08:35 -03:00
Galen Kistler
8c03caad88 Table panel: expose TableCellInspector and TableCellInspectorMode in @grafana/ui package (#98125)
chore: expose TableCellInspector and TableCellInspectorMode
2024-12-17 11:52:26 -06:00
Adela Almasan
03d176fae4 Tooltips: Generate data links in TooltipPlugin2 (#97818)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-12-17 11:48:39 -06:00
renovate[bot]
8d4e5a4e09 Update dependency @types/dompurify to v3.2.0 (#98122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 16:42:13 +00:00
Stephanie Hingtgen
b3985a4d37 k8s: Dashboards: allow querying of unistore (#97995) 2024-12-17 10:35:46 -06:00
renovate[bot]
d8ddbcda51 Update dependency @grafana/experimental to v2.1.6 (#98121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 16:22:17 +00:00
Matheus Macabu
146860930b Build: update vektah/gqlparser/v2 to v2.5.20 to address Dependabot alert (#98106) 2024-12-17 17:20:23 +01:00
Dominik Prokop
0cd4c751a6 Scopes search: Don't regex-escape filter input value (#98117) 2024-12-17 17:05:38 +01:00
Erik Sundell
d6ebec6921 E2E: Fix selectors related to scenes powered dashboards (#98112)
* fix broken scenes selectors

* fix broken test
2024-12-17 17:02:37 +01:00
Adam Simpson
57d94ed01f ds-querier: return error if failed to get ds client (#97698)
* ds-querier: return error if failed to get ds client

* add log line

* no empty ref

* fix test
2024-12-17 10:38:44 -05:00
Haris Rozajac
27c979b0bf Dashboard SchemaV2: Use id in PanelSpec (#98069)
* PanelSpec: replace uid with id

* Update examples
2024-12-17 08:35:55 -07:00
Piotr Jamróz
01666fc1ae Explore Profiles: Preinstall for onprem Grafana instances (#97775) 2024-12-17 16:35:11 +01:00
Ashley Harrison
9c6b86958c Chore: fix flaky unit test (#98102)
fix flaky unit test
2024-12-17 15:32:54 +00:00
renovate[bot]
77fafd887a Update dependency @rollup/plugin-node-resolve to v16 (#98114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 15:32:14 +00:00
Erik Sundell
7c583ed8fb Fix: Add support for datasource variable queries (#98098)
* add ds variable support

* bump scenes

* remove unused fixture
2024-12-17 16:31:28 +01:00
renovate[bot]
0d7303d536 Update visx to v3.12.0 (#98113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 15:30:35 +00:00
Joey
03fcfd4e0c Fix: Explore Traces metrics queries in Safari (#98080)
Fix explore traces in safari
2024-12-17 14:54:25 +00:00
renovate[bot]
8b8606326a Update typescript-eslint monorepo to v8.18.1 (#98109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 14:46:18 +00:00
renovate[bot]
5ded891faa Update dependency yaml to v2.6.1 (#98105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 14:40:11 +00:00
Gabriel MABILLE
4c8d14270d Docs: Read on the dashboard/datasource is required to view insights (#98111)
* Docs: Read on the dashboard/datasource is required to view insights

* ','
2024-12-17 15:22:21 +01:00
renovate[bot]
918210dda1 Update scenes to v5.34.0 (#98108)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 16:20:52 +02:00
jackyin
4477cad1ba Org: Fix redirection logic to work consistently (#96521)
fix unexpected redirection
2024-12-17 14:20:18 +00:00
Ryan McKinley
eb38a63559 K8s/Folder: Show parent folder information (#97938) 2024-12-17 16:19:40 +02:00
grafana-pr-automation[bot]
00b51c0422 I18n: Download translations from Crowdin (#98107)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-17 16:18:05 +02:00
Yulia Shanyrova
2f40a93bf8 plugin details right panel tab (#97354)
* plugin details right panel tab

* fix betterer

* useMedia hook, use function for currentIdPage instead of state

* Rename PluginDetailsRightPanel to PluginDetailsPanel

* nit changes

* remove maxWidth for pluginDetailsPanel if screen is narrow

* fix width prop

* Add tests

* Rename PluginDetailsRight Panel file, rename info prop, fix the latestVersion

* delete console log

* move latestVersion from info arrya

* fix latestVersion test

---------

Co-authored-by: Esteban Beltran <esteban@academo.me>
2024-12-17 15:10:29 +01:00
renovate[bot]
b8a4784a50 Update dependency webpack-dev-server to v5.2.0 (#98104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 14:10:06 +00:00
Ryan McKinley
a01878332a K8s/Storage: Deprecate StorageTypeLegacy (#98096) 2024-12-17 17:00:35 +03:00
renovate[bot]
8188d623c8 Update dependency webpack to v5.97.1 (#98095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 13:39:47 +00:00
renovate[bot]
9a168ef8b3 Update dependency type-fest to v4.30.2 (#98094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 13:36:09 +00:00
renovate[bot]
39a247329d Update dependency msw to v2.7.0 (#98088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 13:35:08 +00:00
renovate[bot]
2f228b4c25 Update dependency @grafana/aws-sdk to v0.6.0 (#98087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 13:34:37 +00:00
Ashley Harrison
687e207b48 SingleTopNav: Clean up and remove code + toggle (#97937)
* clean up almost all of the toggle

* betterer

* clean up searchBarHidden and extract translations

* fix remaining unit tests

* remove redundant topPosition
2024-12-17 13:32:38 +00:00
Matheus Macabu
c824f5b9bf CloudMigrations: Add config for alert rules state behavior and remove experimental feature toggle on alerts migration (#97254)
* CloudMigrations: add config for controlling alert rules state behavior

* CloudMigrations: remove experimental 'onPremToCloudMigrationsAlerts' feature toggle
2024-12-17 12:56:18 +01:00
Todd Treece
ae7cb6866d Chore: Update git user for depedabot action (#98073) 2024-12-17 06:31:45 -05:00
Georges Chaudy
3fe2227c82 [auth] make id-token optional (#97831)
make idtoken optional

enure there is always an identity in the context

fix: update token

fix: now it should work

fix: now it should work
2024-12-17 13:28:00 +02:00
renovate[bot]
02fec7c4ad Update dependency rudder-sdk-js to v2.48.42 (#98083)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 10:54:26 +00:00
renovate[bot]
fba02f5fae Update dependency react-window to v1.8.11 (#98082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 10:53:59 +00:00
renovate[bot]
21f1b241dd Update dependency react-virtualized-auto-sizer to v1.0.25 (#98081)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 10:16:42 +00:00
Alexander Akhmetov
bb713cf8e4 Alerting: Add simplified_notifications_section setting to grafana_alerting_simplified_editor_rules metric (#98053) 2024-12-17 11:13:31 +01:00
Dana Axinte
deca41a782 Caching: specify uid for cloudwatch datasource (#97041)
add uid for cloudwatch so e2c visit works
2024-12-17 10:01:43 +00:00
renovate[bot]
dbe273d0eb Update dependency tslib to v2.8.1 (#98068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 09:57:45 +00:00
renovate[bot]
69c94c23ac Update dependency knip to v5.41.0 (#98067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 09:56:34 +00:00
renovate[bot]
a0fae37cf7 Update dependency swagger-ui-react to v5.18.2 (#98061)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 09:56:02 +00:00
renovate[bot]
9fbd2cf054 Update dependency stylelint to v16.12.0 (#98060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 09:55:04 +00:00
Jack Baldry
331c602c5e Use v2 of publishing workflow that checks out HEAD of version branch on tag events (#98029)
This uses a script check in the first step of tag events that switches the checkout to the version branch that the tag refers to: https://github.com/grafana/writers-toolkit/blob/main/publish-technical-documentation-release/determine-release-branch.

Implemented in:

- 305f9896c4
- 541fb6e8bd

Because the script uses Bash regular expression pattern matching, inputs must use Extended Regular Expression syntax.

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2024-12-17 08:29:59 +00:00
renovate[bot]
ed842b7ea8 Update dependency rollup to v4.28.1 (#98049)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 16:24:22 +00:00
renovate[bot]
188df1edca Update dependency sass to v1.83.0 (#98050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 18:21:05 +02:00
Misi
6cd3a5458e Auth: Return error when retries have been exhausted for OAuth token refresh (#98034)
Return error when retries for DB lock have been exhausted in oauth_token.go
2024-12-16 17:03:39 +01:00
renovate[bot]
b310b6f8c5 Update dependency react-use to v17.6.0 (#98042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 16:00:27 +00:00
Eric Leijonmarck
f3a47e2f8d LBAC for datasources: Add prometheus as a data source and refactor to change wording from logs to logs or metrics (#98021)
* Add prometheus as a datasource

* update based on review
2024-12-16 15:57:02 +00:00
Bruno Abrantes
17a9974b87 Storage: Removes integration tests for MySQL 5.7 since it is EOL (#98013)
* Removes integration tests for MySQL 5.7 since it is EOL

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

* Remake drone.yml

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>

---------

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2024-12-16 12:28:30 -03:00
Kostas Pelelis
2879166426 Faro: Improve performance of TRACKING_URLS regex (#98022)
There have been reports of faro performing poorly when the URLs
generated are long (there was a 39KB one). The TRACKING_URLS we are
using leading wildcard characters, leading to excessive backtracking.

This commit uses a simpler regular expression, that ensures we are
blocking the appropriate URLs without the performance hit. To prevent
that from happening, a timed test is introduced. The timeout threshold
is long enough to be hardware independent.
2024-12-16 17:27:29 +02:00
renovate[bot]
59014dc924 Update dependency @tanstack/react-virtual to v3.11.2 (#98041)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 15:20:09 +00:00
ismail simsek
eecfcf52c0 Explore Metrics: Fix url sync for view by dropdown (#98026)
fix url sync
2024-12-16 10:00:53 -05:00
Misi
7b24c4404d Fix: Show organization attribute path only for GrafanaAdmins on the UI (#98002)
* Show organization attribute path only for GrafanaAdmins

* prettier
2024-12-16 15:59:59 +01:00
Alexander Akhmetov
1f8f9a45d7 Alerting: Add state_periodic_save_batch_size config option (#98019)
* Alerting: Add state_periodic_save_batch_size config option

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-12-16 15:30:38 +01:00
renovate[bot]
22a9770ec5 Update dependency react-select to v5.9.0 (#98037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 14:30:19 +00:00
renovate[bot]
7ed1058af1 Update dependency react-redux to v9.2.0 (#98036)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 16:21:12 +02:00
renovate[bot]
863f865c7f Update dependency react-hook-form to v7.54.1 (#98031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 14:00:43 +00:00
renovate[bot]
3aca926982 Update dependency @rsdoctor/webpack-plugin to v0.4.12 (#98030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 14:00:10 +00:00
Andres Martinez Gotor
95dea152b6 Plugins Admin: Avoid disabling auto-enabled apps (#97800) 2024-12-16 14:51:04 +01:00
jcolladokuri
7601bcbb5d [Azure Monitor]: Remove Angular panels from Azure OOB dashboards (#97975)
updates azure monitor OOB dashboards to no longer include angular panesl
2024-12-16 13:47:21 +00:00
Todd Treece
8b0cd9dbb9 K8s: Increment generation in generic strategy (#97946)
---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-12-16 08:18:43 -05:00
Leonor Oliveira
62c1735a61 Implement k8s count handler (#97955)
* Implement k8s count handler

* Fix endpoint

* Fix type converstions

* Add tests for foldercounts

* Add more tests

* Only use sql-fallback if no values in unistore

* Update gomod

* Fix test

* Update pkg/api/folder_test.go

Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>

* Go.mod

---------

Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
2024-12-16 14:08:29 +01:00
renovate[bot]
1180ea07b7 Update dependency rc-tree to v5.11.0 (#98024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 12:36:29 +00:00
renovate[bot]
dee47bbef2 Update dependency rc-tooltip to v6.3.1 (#98023)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 12:36:03 +00:00
Gilles De Mey
d7e07d9993 Alerting: Fix missing instances and history when Grafana rule is stored in folder with / (#97956) 2024-12-16 13:26:55 +01:00
Sven Grossmann
ccb2be5962 Menu: Change left/right padding to 12px (#97033)
* Menu: Change left/right padding to `12px`

* add border radius

* fix wrong rebase
2024-12-16 12:58:36 +01:00
renovate[bot]
954bd9f312 Update dependency @floating-ui/react to v0.27.2 (#98011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 11:57:53 +00:00
Matheus Macabu
3af96acc12 UsageInsights: Include panelId and panelName in events when available 2024-12-16 12:57:23 +01:00
renovate[bot]
ed3eacced9 Update dependency rc-cascader to v3.31.0 (#98015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 13:23:24 +02:00
renovate[bot]
b36b7ec18e Update dependency eslint to v9.17.0 (#98014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 11:20:06 +00:00
renovate[bot]
9f416e1428 Update dependency prettier to v3.4.2 (#97972)
* Update dependency prettier to v3.4.2

* run prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2024-12-16 11:18:17 +00:00
Pepe Cano
c983af1755 Alerting docs: reorder rules action in DS rules (#97974)
Alerting docs (minor) - mention `reorder rules` action in DS rules
2024-12-16 12:08:10 +01:00
Jack Baldry
22dbde3126 Don't run PR preview on forks (#97963) 2024-12-16 11:01:54 +00:00
Ezequiel Victorero
06c0fa70c2 Docs: Update reporting attachment config description (#97847)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-12-16 07:53:52 -03:00
renovate[bot]
f62d9db29f Update dependency msw to v2.6.9 (#98012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 10:51:26 +00:00
Esteban Beltran
089111f702 Plugins: Set migration handler to definne its own PanelMigrationModel and add tests (#97743)
* Add custom panel model type for the setMigrationHandler

* Add tests
2024-12-16 11:50:07 +01:00
renovate[bot]
fccb7816b5 Update dependency @rollup/plugin-typescript to v12.1.2 (#98007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 10:03:37 +00:00
renovate[bot]
e85e658343 Update dependency @floating-ui/react to v0.27.1 (#98004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 09:40:12 +00:00
Karl Persson
97959b60bb Team: front end cleanup (#97945)
* Remove permissions levels that don't exists for team memberships

* Remove Permission from team structure

* Use WithAccessControlMetadata

* Remove roles from base Team interface
2024-12-16 10:39:29 +01:00
renovate[bot]
1ac6143f4e Update dependency knip to v5.40.0 (#97965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 09:37:16 +00:00
renovate[bot]
ca758062cd Update dependency eslint-plugin-jest-dom to v5.5.0 (#97957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 09:36:36 +00:00
renovate[bot]
a0558749f0 Update dependency eslint-plugin-jsdoc to v50.6.1 (#97958)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 10:10:01 +01:00
bo0tzz
9aa23dd73f Docs: Remove bad info. from generic-oauth JMESPaths (#94592)
* Remove bad `info.` from generic-oauth JMESPaths

* fix: remove nesting from example payloads

* Lint

---------

Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
2024-12-16 09:21:53 +01:00
Stephanie Hingtgen
8f6e9f8ed0 Restores in app platform (#97582)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
2024-12-13 16:55:43 -06:00
Haris Rozajac
4871cd8825 Dashboard SchemaV2: v2->scene tests for layout, transformations (#97819)
* Tests for layout, transformations; displayMode

* remove fixme; update helper with the correct type

* Rename to transparent

* Fix
2024-12-13 15:29:22 -07:00
Misi
09123a7bd6 FeatureToggle: Enable useSessionStorageForRedirection by default (#97966)
Enable useSessionStorageForRedirection by default
2024-12-13 19:36:35 +01:00
Torkel Ödegaard
d93a5a7c53 DateTimePicker: Fixes issue with date picker showing invalid date (#97888)
* DateTimePicker: Fixes issue with date picker showing invalid date

* Fix lint
2024-12-13 19:23:26 +01:00
renovate[bot]
0a9852c64b Update dependency browserslist to v4.24.3 (#97964)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 17:34:47 +00:00
Moustafa Baiou
f55be6f1bb Alerting: Fix slack image uploading to use new api (#97817)
bump(alerting): update alerting module to 0f317eb

  ## Context:
  fix: update slack image upload to use new API ([#256](https://github.com/grafana/alerting/pull/256))
2024-12-13 18:44:54 +02:00
renovate[bot]
fe1ec098dc Update dependency eslint to v9.16.0 (#97952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 15:38:53 +00:00
renovate[bot]
adc785750f Update dependency @types/redux-mock-store to v1.5.0 (#97951)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 15:38:25 +00:00
Pepe Cano
b8c4126fbc Alerting docs: update Configure notifications (#97862)
* Update `Configure notifications`

* wip notification policies

* Finish Create Notification Policy

* Minor update to Contact point intro

* Fix `How label matching works` links and remove links from contact point intro

* Silences and Mute timings

* Reorder + MuteTimings  + Silences

* Complete Create silence

* fix mispell

* Update docs/sources/alerting/configure-notifications/_index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/alerting/configure-notifications/_index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/alerting/configure-notifications/_index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update docs/sources/alerting/configure-notifications/_index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* fix prettier error

---------

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2024-12-13 16:26:45 +01:00
Isabel Matwawana
ed6f41cd2c Docs: Reword variables limitation (#97215)
Some checks failed
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2024-12-13 09:46:55 -05:00
renovate[bot]
4eca0dffc5 Update dependency @types/d3-scale-chromatic to v3.1.0 (#97943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 16:38:01 +02:00
Sven Grossmann
5ac7443fce Loki: Default to /labels API with query param instead of /series API (#97935)
* feat(loki-labels-api): add feature toggle

* feat(loki-labels-api): default to `/labels` API
2024-12-13 15:31:41 +01:00
Oscar Kilhed
4550cfb5b7 Upgrade scenes to v5.32.0 (#97944) 2024-12-13 16:22:02 +02:00
renovate[bot]
630b7d3c0d Update dependency @testing-library/react to v16.1.0 (#97939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 14:21:40 +00:00
renovate[bot]
f6830e0012 Update dependency terser-webpack-plugin to v5.3.11 (#97942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 14:18:17 +00:00
Tom Ratcliffe
4c42fda2ec Alerting: Retry flaky notification preview test (#97936)
Retry flaky notification preview test
2024-12-13 14:14:24 +00:00
Ryan McKinley
6d21eddf13 Plugins: Update to latest go plugin SDK (v0.260.3) w/ arrow v18 (#97561)
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2024-12-13 17:06:39 +03:00
renovate[bot]
16b63d2f38 Update dependency @tanstack/react-virtual to v3.11.1 (#97934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 15:58:50 +02:00
renovate[bot]
d506c1b9d2 Update dependency @swc/core to v1.10.1 (#97931)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 13:39:15 +00:00
renovate[bot]
8ab2082cd6 Update dependency @stylistic/eslint-plugin-ts to v2.12.1 (#97930)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 13:38:45 +00:00
renovate[bot]
b2df6733f1 Update dependency @reduxjs/toolkit to v2.5.0 (#97926)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 13:38:13 +00:00
Mariell Hoversholm
98e61233d9 Docs: Clarify dependency management (#97928)
* Docs: Clarify dependency management

Fixes #97863.
Fixes #97842.

* refactor: yarn run prettier:write
2024-12-13 14:19:38 +01:00
Karl Persson
5c0cb09d27 Zanzana: Remove capabilities (#97918)
Remove capabilities
2024-12-13 12:23:12 +01:00
renovate[bot]
ec5239211f Update dependency @react-types/shared to v3.26.0 (#97925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 11:22:13 +00:00
renovate[bot]
7cd5bc124b Update dependency @playwright/test to v1.49.1 (#97920)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 11:21:44 +00:00
Dana Axinte
b9d6af34cd CloudMigrations: Obtain gcom plugins to enable plugins migration (#97784)
* just api

* preallocate
2024-12-13 10:59:43 +00:00
grafana-pr-automation[bot]
b2987021b4 I18n: Download translations from Crowdin (#97886)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 10:55:10 +00:00
renovate[bot]
72abc48d3c Update dependency @opentelemetry/semantic-conventions to v1.28.0 (#97919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 10:42:14 +00:00
renovate[bot]
fb47e1bde0 Update dependency @formatjs/intl-durationformat to ^0.7.0 (#97913)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 10:41:41 +00:00
Laura Fernández
aac62c89da UnifiedHistory: Create feature toggle (#97922) 2024-12-13 12:41:18 +02:00
Pepe Cano
0cce224adb Alerting docs: State and health of alerts minor updates (#97880)
* Alerting docs: Update `State and health of alerts`

* correct internal ref name
2024-12-13 11:29:38 +01:00
Tom Ratcliffe
a9cd0f19f4 Chore: Update no-untranslated-strings rule to check some text props as well (#97190)
* Update no-untranslated-strings rule to check some props as well

* Update betterer with new no-untranslated-strings results
2024-12-13 12:04:00 +02:00
renovate[bot]
af2475415e Update dependency @floating-ui/react to v0.27.0 (#97912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 09:48:54 +00:00
Jo
40d3b02648 Auth: Separate anonymous settings to its own struct (#97791)
separate anonymous settings to its own struct
2024-12-13 10:46:27 +01:00
renovate[bot]
fc7805957e Update dependency @faker-js/faker to v9.3.0 (#97883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 09:25:55 +00:00
renovate[bot]
69ca52fcb3 Update dependency @types/react-transition-group to v4.4.12 (#97879)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 09:24:29 +00:00
renovate[bot]
78af0fb533 Update dependency @types/react-color to v3.0.13 (#97878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 09:22:27 +00:00
renovate[bot]
1e0d807572 Update dependency @grafana/plugin-e2e to v1.13.1 (#97851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 09:21:06 +00:00
Dominik Prokop
f8686be56a Schema v2: Make DashboardScene accept v1 and v2 schema (#96931)
* WIP

* Refactor useSaveDashboard to make it dashboard type independent when used

* DashboardPrompt: makeit Dashboard type independent

* DashboardScene: accept both v1 and v2 schema

* Update save dashboard command interface

* Fix test

* Lint

* Refactor

* Add onSaveComplete to DashboardSceneSerializer

* Cleanup tests

* Remove unused code

* Refactor dashboard tracking information

* added a todo

* Fix betterer

* Update betterer results
2024-12-13 10:20:22 +01:00
Tom Ratcliffe
0f52065377 Chore: Rename betterer stats file and attempt to fix (#97887)
Rename betterer stats and attempt to fix
2024-12-13 09:19:11 +00:00
Agnès Toulet
1c4d30f73c Rendering: Add logs (#97885)
* Rendering: add logs

* fix tests and lint issues
2024-12-13 09:42:35 +01:00
Isabel Matwawana
6011cffed7 Docs: Fix broken link (#97891) 2024-12-13 08:42:30 +01:00
Ariana
c6a45061be Docs: Update docs to make panel embedding more clear (#97587)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-12-12 19:19:37 -05:00
Andreas Christou
cc4afff889 Graphite: Set maxDataPoints based on user value in alerting (#97178) 2024-12-12 23:26:44 +00:00
Kat Yang
886cbad275 ExploreMetrics: Improve semantic HTML and remove unused styles (#97367)
Chore: Code cleanup
2024-12-12 17:55:16 -05:00
Isabella Siu
b3a12f486e Elasticsearch: Use _field_caps instead of _mapping to get fields (#97607) 2024-12-12 17:20:04 -05:00
Isabella Siu
a362769491 Cloudwatch: Update grafana-aws-sdk for AWS/AmplifyHosting metrics (#97799)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
Update `make docs` procedure / main (push) Has been cancelled
Cloudwatch: update grafana-aws-sdk for AWS/AmplifyHosting metrics
2024-12-12 16:59:51 -05:00
Jean-Philippe Quéméner
1509fadd5b refactor(unified-storage): make datasyncer configurable (#97832) 2024-12-12 21:41:01 +01:00
Gilles De Mey
6dc41f0b18 Alerting: Fix flakey FilterView test (#97882)
* increase timeout

* update assertion

* Add retry as well to prevent flakiness 🤞

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-12-12 22:23:37 +02:00
owensmallwood
0e8702369a Folders: Create default folder permissions within transaction (#97812)
create default folder permissions within transaction
2024-12-12 14:08:46 -06:00
ismail simsek
3345f860dc Explore Metrics: Refactor auto query generators (#97815)
* move graph builders in one file

* rename the folder as auto-query

* have a components folder

* more refactoring

* rename

* remove getQueryGeneratorFor

* why not renaming again

* add tests for baseQuery

* remove the need of default query generator

* refactor getAutoQueriesForMetric

* split the logic

* better structure

* better structure 2

* clean up

* summary tests

* unite tests for default.ts

* update unit tests

* update unit tests

* cleaning

* one variable for filters
2024-12-12 18:40:11 +01:00
Brendan O'Handley
3266d62d6d Explore metrics: OTel breakdown get request header too large with job and instance bug (#97136)
* don't duplicate job or instance in match terms for OTel

* truncate job and instance list if exceeding 2000 chars for GET request

* test for warning when truncating

* fix check for duplicated job and instance, make easier to read

* add trans and remove console.log

* report when a metric has too many labels for job and info

* remove console.warn

* fix tests for not logging warning

* fix tests

* remove unused import

* make i18n-extract

* Update public/app/features/trails/interactions.ts

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>

* allow to dismiss warning

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
2024-12-12 11:31:55 -06:00
Tom Ratcliffe
482af91782 Alerting: Remove manual feature discovery mocking (#96243)
* Update mock methods to remove discovery API

* Update tests to remove mock discovery API

* Remove ref in TESTING.md

* Fix other references to 'mimir'
2024-12-12 19:11:04 +02:00
Matias Chomicki
ebfa06e040 Loki: Added support to show label types in Log Details (#97284)
* Log Details: add support to resolve label types if supported

* Update public/app/features/logs/utils.ts

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>

* LogDetailsRow: create component to display label type

* Remove log

* Add missing index resolution for label type values

* Make type icon less prominent

* Update new icon styles

* Formatting

* Update public/app/features/logs/utils.ts

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

* Update public/app/features/logs/utils.ts

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

* LogDetails: update test

* Formatting

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-12-12 18:49:59 +02:00
grafana-pr-automation[bot]
7b934f0d2b I18n: Download translations from Crowdin (#97868)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-12 16:48:47 +00:00
renovate[bot]
c05547ba7e Update dependency @emotion/react to v11.14.0 (#97752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 16:44:48 +00:00
renovate[bot]
4521cfb28c Update dependency @babel/preset-react to v7.26.3 (#97677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 16:44:13 +00:00
renovate[bot]
ee661ac54b Update React Aria (#96960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 16:43:28 +00:00
Ashley Harrison
08bb66ba72 Chore: Update to node 22 (#97779)
* update to node 22

* downgrade to 22.11.0

* switch to using node-version-file

* update @types/node

* revert back to using node-version
2024-12-12 16:39:52 +00:00
Andreas Christou
dbe2d7ac47 Azure: Add documentation for Basic Logs (#97193)
* Add documentation for Basic Logs

* Lint

* Update docs/sources/datasources/azure-monitor/query-editor/index.md

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>

---------

Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
2024-12-12 16:38:26 +00:00
Matias Chomicki
3fdf0ea1f4 Logs: Added option to show the log line body when displayed fields are used (#97209)
* LogDetailsBody: create and integrate component

* Chore: sort prop names

* Add tests

* Address lint issues

* Update betterer

* Update public/app/features/logs/components/LogDetailsBody.tsx

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>

* Update public/app/features/logs/components/LogDetailsBody.tsx

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>

* Update tests

---------

Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
2024-12-12 17:44:06 +02:00
grafana-pr-automation[bot]
18c1c4cf95 I18n: Download translations from Crowdin (#97849)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-12 17:30:48 +02:00
Todd Treece
6c8c0ab350 Chore: Ignore duplicate process_* metrics in MultiRegistry (#97857) 2024-12-12 16:55:09 +02:00
Vardan Torosyan
63d3cf93fe Docs: Clarify when force_use_graph_api is required for Azure (#97844) 2024-12-12 15:17:46 +01:00
Vardan Torosyan
2182f4829e Docs: Refer to the org header usage in JWT docs (#96549) 2024-12-12 15:17:23 +01:00
Mariell Hoversholm
e6a6fc6f74 Tests: Require GrafanaOpts when creating Grafana dir (#97825)
I don't see a reason to accept a variable amount here, as we never use it. The only use I can see is optionally
including the opts, which isn't necessary and only complicates matters when an empty struct would do just as well: the
options are all created to be assumed zero-values already, in case a test doesn't need that option set.
2024-12-12 15:13:06 +01:00
renovate[bot]
47e58d5903 Update dependency @grafana/experimental to v2.1.5 (#97846)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 14:07:38 +00:00
Andres Martinez Gotor
6a4db1742b Docs: Clarify environment variable usage in provisioning (#97848) 2024-12-12 15:05:47 +01:00
Ashley Harrison
b34fd6b6a1 Chore: update react-inlinesvg and use new icon caching mechanism (#97725)
* Update dependency react-inlinesvg to v4

* attempt to use new icon caching

* remove unicons chunk

* fix layout shift

* update snapshot

* parameterise cache by commit hash and clear old caches

* remove icon caching in storybook

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 13:35:28 +00:00
Robert Goltz
0a390cc069 Chore: Bump dependency golang.org/x/crypto to v0.31.0 - fix: CVE-2024-45337 (#97823)
* Update dependency golang.org/x/crypto to v0.31.0

* Update dependency golang.org/x/crypto to v0.31.0 - based on Trivy Scan

* Chore: go mod tidy

* Chore: make update-workspace

* Chore: manually update more sum files

---------

Co-authored-by: Mariell Hoversholm <mariell.hoversholm@grafana.com>
2024-12-12 14:21:46 +01:00
Konrad Lalik
8055d69ad2 Alerting: Alert list - pagination and filtering part 1 (#96423)
* Add basic token-based paginated fetching

* Add 1:many relation between UI and API pages

* Fix pagination arrows

* Add pagination  to hierarchical view

* Add multidatasource filtering

* Improve flushing filtered rules, add better identifiers

* Fix pagination for data sources not supporting server side pagination

* Use alert rule loader on the filter view

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>

* use useTransition and update loader

* types

* Update ruleGruopIdentifier. Add actions and location to recording rules

* Update to the new API parameters

* Refactor iterator code

* Use ix to merge iterators

* Improve perf

* use AbortController to cancel loading pages

* remove iterops for now

* add comments

* add application and rulesource information to list view

* update test

* update list view functionality

* add emptystate

* automatically load more items when we get to the bottom of the page

* reduce number of loaders

* separate hook for useFilteredRulesIteratorProvider

* use useDeepCompareEffect to track filter state changes

* fix weird no results loading glitch

* fix rare case where changing filters wouldn't update the list

* add number of results to component

* Simplify FilterView rerendering

* add filter for dashboard

* Add tests for filtered view, use data source UID instead of names in the interator code

* Improve HTML semantics, extract a separate GroupedView component

* Split RuleList.v2 into multiple files

* Split tests into Filtered and Grouped view files

* PR feedback

* Improve error handling, add tests for GroupedView

* Improve types, small refactoring

* Improve rules setup

* Small improvements, v1 and v2 versions of the view type selector

* Remove yarn cache changes

* Import from test-utils

* Move groupIdentifiers, improve state param parsing

* reorder imports

* reorder imports

* update yarn resolution

* i18n

* Improve API mock, increase timeout limit

* Add tests for RuleList.v2

* Update tests

* Fix mocks in test

* Fix lint

* Fix data sources mock

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-12-12 14:18:52 +01:00
Gabriel MABILLE
65dfbd7731 go.mod: Update authlib (#97833)
* go.mod: Update authlib

* No clue why it was removed by my computer but not by CI
2024-12-12 13:56:01 +01:00
linoman
c47aed0db5 SCIM: Clean removes old swagger documentation (#97786)
* remove open swagger references
2024-12-12 12:42:09 +01:00
grafana-pr-automation[bot]
27a54e8c73 I18n: Download translations from Crowdin (#97787) 2024-12-12 11:29:52 +00:00
Sergej-Vlasov
8009af54be DefaultGridLayoutManager: Add itemHeight to DashboardGridItem when duplicating panel (#97648)
* add itemHeight to DashboardGridItem when duplicating panel

* adjust test to include itemHeight check
2024-12-12 12:57:42 +02:00
Ieva
32554c78a8 Direct DB perm checks: check that the namespaces match (#97828)
check that the namespace of the caller matches the namespace in the request
2024-12-12 12:57:16 +02:00
Leonor Oliveira
f710573b37 Use searcher GetStats to count for folders and dashboards under a folder to be deleted (#97708)
* get stats from index

* fix logging

* fix logging

* actually counting

* Use searcher to check for resources referencing a folder

* Add tests when deleting a folder

* Lint

* merge/fix test

* will delegate to SQL

* get stats from index

* fix logging

* actually counting

* merge/fix test

* will delegate to SQL

* Uncomment test

* Add tests for checking stats before deleting a folder

* Change base branch to main

* Lint

* [REVIEW] remove logs

* Check for type assertion success

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-12-12 11:53:01 +01:00
Sonia Aguilar
afd0699c85 Alerting: Fix not being able to remove a reducer when using range query (#97757)
* Fix not being able to remove a reducer when using range query

* use useEffectOnce
2024-12-12 11:38:12 +01:00
Mariell Hoversholm
8f628a0695 Cloudwatch: Change deprecated errorsource references (#97827)
This has been failing to compile, bringing down a _lot_ of tests along with it (notably the entire pkg/tests dir).
The `experimental/errorsource` package was deprecated, so the recommended replacement was used.
2024-12-12 11:37:11 +01:00
Tom Ratcliffe
5be8a9b3c3 Alerting/chore: Deprecate MockDataSourceSrv and remove from Alerting tests (#97267)
* Mark MockDataSourceSrv as deprecated

* Add `module` into necessary existing mock datasources

* Remove config mock

* Update helper method for test datasources to more accurately reflect real behaviour

* Update alerting/unified tests to remove mock datasource srv

* Lint fix

* Remove some unused re-exports

* Make mock mimir use correct module

Ⓜ️

* Add necessary handlers for mimir query editor responses

* Lint fix

* Add implementation to mock mimir data source
2024-12-12 09:50:36 +00:00
Will Browne
d85353926d Metrics: Export multi registry (#97662)
* export multi registry

* fixup
2024-12-12 09:48:27 +00:00
Santiago
7ad004236e Alerting: Change the description for the 'Message' field in webhooks (#96153) 2024-12-12 10:30:23 +01:00
Oscar Kilhed
e3e7086a91 GrafanaData: Add now parameter to dateMath.parse to subsitute now string (#97151)
* Add now parameter to dateMath.parse to subsitute now string

* Create new function, deprecate the old

* Add docstring

* Typo
2024-12-12 11:22:49 +02:00
Ivana Huckova
7de65b39b5 Elasticsearch and Cloudwatch: Replace deprecated experimental/errorsource (#97363)
* Update elasticsearch

* Update azure monitor

* Update test

* Revert "Update azure monitor"

This reverts commit 21b53845b8.

* Update cloudwatch
2024-12-12 10:12:03 +01:00
Ieva
ded90fa28d App platform: Implement perm check with direct db access (#97579)
* implement perm check with direct db access

* add tests

* more tests

* Update pkg/services/authz/rbac/service.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Update pkg/services/authz/rbac/service.go

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* allow fetching permissions for a user who is not a member of the org

* linting

* fix typo

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2024-12-12 08:52:14 +00:00
XZCendence
3c78fb1aa4 Dashboards: Add option to specify explicit percent change text size for stat panels (#96952)
Add option to change percent change text size
2024-12-12 08:15:29 +02:00
Tom Ratcliffe
19cc2efaf2 Chore: Fix unnecessary nullish-coalescing (#97555)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Fix unnecessary nullish-coalescing

* Fix nullish use as per code review

* Fix other incorrect use of nullish coalescing
2024-12-11 17:34:06 +00:00
Tom Ratcliffe
084aad0b84 Chore: Add no-duplicate-case eslint rule and fix violations (#97537)
* Add `no-duplicate-case` rule

* Fix basic duplicated cases

* Fix duplicated translations case

* Fix alerting case
2024-12-11 17:33:31 +00:00
Todd Treece
c5e8e71ee3 K8s: Add APIGroupPostStartHookProvider (#97801) 2024-12-11 19:13:42 +02:00
Larissa Wandzura
5d326b90ac Docs: Added clarification to Azure monitor config doc (#97807)
clarified that managed identity not for cloud
2024-12-11 16:57:06 +00:00
Bradley
585cb43b0b Alerting: Add option to show inactive alerts in alert list panel (#96888)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2024-12-11 11:38:32 -05:00
Tom Ratcliffe
4e10507c84 Chore: Remove global mock of plugin_loader (#97351)
* Remove global mock of `plugin_loader`

Removing this means we can get more accurate datasources behaviour in tests

* Fix circular dependency/undefined method when plugin_loader is unmocked

* Use optional chaining for trusted policies to stop tests failing when `bootData` is partially set

* Add plugin_loader mock back into single test that is still broken

* Revert trusted type policies changes

* Fix tests that break with trusted type policies
2024-12-11 14:50:49 +00:00
Laura Fernández
1a22575613 MetricCombobox: Fix overflowing parents (#97049) 2024-12-11 15:45:20 +01:00
Bruno Abrantes
def3632a3a Clarifies documentation around what the annotations.tags_length setting does (#97790)
Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
2024-12-11 15:17:36 +01:00
Gilles De Mey
9c396b74f9 Alerting: AlertingQueryRunner should skip descendant nodes of invalid queries (#97528) 2024-12-11 16:00:11 +02:00
Sonia Aguilar
3c2c5610bd Alerting: Fix updating condition when refId changes (#97753)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
fix updating condition when refid changes
2024-12-11 14:31:58 +01:00
Ashley Harrison
32155b22d6 Theme: increase debug theme gridSize and fix some obvious mistakes (#97661)
* increase debug theme gridSize and fix some obvious mistakes

* better switch styling

* fix checkbox

* fix tabs

* also fix editable title height
2024-12-11 13:27:54 +00:00
Sriram
d48e9afd5d Datasources: Improved network health check error messages (sql datasources) (#97783)
remove unique identifiers from common network error messages
2024-12-11 13:05:06 +00:00
Adam Yeats
d176076078 Azure Monitor: Add safety around usage of frame.Meta.Custom struct (#97766) 2024-12-11 15:02:51 +02:00
Piotr Jamróz
bb673fc8ed Explore: Show links to queryless apps (#96625)
* Extract basic extensions to a separate files

* Add simple queryless apps links

* Move links for queryless apps next to the datasource picker

* Update tests

* Add translations

* Add tracking

* Update translations

* Fix tests and betterer

* Fix the mock for the test (the hook may be called twice now)

* Add a todo
2024-12-11 13:53:28 +01:00
Ryan McKinley
8bb24bc7b3 Unified: Add client-side stats federation to support folders (#97778) 2024-12-11 13:46:31 +02:00
Laura Fernández
f51b58488c EmptyState: Add event tracking to CommandPalette and BrowseDashboards (#97780) 2024-12-11 12:24:19 +01:00
Alexander Zobnin
61d71ec5b1 Zanzana: Handle anonymous users (#97171)
* add anonymous users to schema

* sync anonymous user role

* remove unused

* fix linter

* only add anonymous reconciler if feature is enabled
2024-12-11 12:22:42 +01:00
Joey
e8e0649ebd Tempo: Update AggregateBy notice (#97630)
* Update notice

* Update link

* Remove extra import

* Update notice
2024-12-11 11:17:47 +00:00
grafana-pr-automation[bot]
09b51947f3 I18n: Download translations from Crowdin (#97311) 2024-12-11 13:17:31 +02:00
Ivana Huckova
2149c75e22 Zipkin: Run queries through backend (#97754)
* Zipkin: Run queries through backend

* ;2DUpdate e2e

* Update e2e
2024-12-11 12:31:24 +02:00
Josh Hunt
cdc7c1cae2 AutoSizeInput: fix inconsistent input value state (#97575)
* Revert "GrafanaUI: Revert: Fix inconsistent controlled/uncontrolled state in AutoSizeInput (#97551)"

This reverts commit 9f3073fd17.

* Fix defaultValue being used if the user cleared the inputy
2024-12-11 11:04:03 +01:00
Erik Sundell
8d69abc3b4 E2E Selectors: Add backwards compatibility for apply button selector (#97762)
add more backwards compatibility
2024-12-11 07:43:52 +01:00
Adam Yeats
60f093e3d3 MSSQL: Bump go-mssqldb to v1.8.0 (#97773)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Has been cancelled
2024-12-10 21:51:38 +00:00
Stephanie Hingtgen
f05d016ae7 Chore: Remove mysqlParseTime feature toggle (#97761)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
2024-12-10 15:13:13 -06:00
Stephanie Hingtgen
db8ece3167 Chore: fix CODEOWNERS (#97763) 2024-12-10 20:40:08 +02:00
Ryan McKinley
ea17b79c09 Search: Return counts for values within an folder/repository (#97534) 2024-12-10 20:37:37 +02:00
Stephanie Hingtgen
b05d60e5b5 k8s: dashboards: remove FT (#97758) 2024-12-10 12:35:36 -06:00
Tom Ratcliffe
4f7ffafe98 Alerting: Consistently order member imports in alerting code (#97688)
* Lint import member orders within alerting

* Consistently order member imports in alerting code
2024-12-10 17:42:33 +00:00
Adela Almasan
e2365ce1c5 Chore: Update codeowners for gdev dashboards (#97709) 2024-12-10 10:32:35 -06:00
Juan Cabanas
c2333e3bc0 ShareDrawer: Enable by default (#97259) 2024-12-10 12:52:18 -03:00
Matias Chomicki
e6a6b3e31a Logs Panel: Allow text selection without changing Log Details state (#96995)
* LogRows: allow text selection even without popover menu

* Add unit test
2024-12-10 09:18:50 -06:00
renovate[bot]
2f6183f34e Update dependency @bsull/augurs to ^0.7.0 (#97689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 15:10:05 +00:00
Ben Sully
577aeca929 chore: assign bsull (@sd2k) to review @bsull/augurs updates (#97727) 2024-12-10 15:09:22 +00:00
Ezequiel Victorero
a1cfc5ceb0 Docs: Add Dynatrace to unsupported data sources (#97744) 2024-12-10 12:07:39 -03:00
Torkel Ödegaard
4cbb56256c Dependencies: Scenes bump 5.30 (#97745)
Dependencies: Scenes bump 5.40
2024-12-10 15:42:58 +01:00
Irene Rodríguez
f31ae3a77b Docs: Add units after "CPU" (#97747) 2024-12-10 15:41:30 +01:00
Gabriel MABILLE
9745555b6a gitignore: signer devenv (#97742)
Forgot to add the gitignore
2024-12-10 15:36:12 +01:00
Karl Persson
87ba9c60b2 Zanzana: change type name from namespace to group_resource (#97741)
* Change type name from namespace to group_resource

* update function names and test descriptions
2024-12-10 15:21:54 +01:00
Sriram
b4927ff1cd MS SQL: Datasource health check error message improvements (#97643)
improve mssql healthcheck error messages
2024-12-10 13:13:32 +00:00
kay delaney
aeed123312 PanelChrome: Adds "onDragStart" prop (#97495)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
2024-12-10 12:15:25 +00:00
Sonia Aguilar
dd9638cade Alerting: Improve performance ash page (#97619)
* first commit adding usememo and refactoring scenes objects to keep an state for variables values

* Fix scenes with the panel reacting to variables changes

* move body to the model

* address some pr feedback

* Refactoring central alert history scene  (#97658)

Refactoring

* fix test and some wrong imports

* update comments

* add eslint-disable-next-line

* remove unnecessary SceneFlexLayout and SceneFlexItem wrapper

* address pr feedback

* update tests for labels filtering

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2024-12-10 14:09:42 +02:00
Andreas Christou
448d87157c Azure: Fixing a confusing variable name (#97598)
Fixing a confusing variable name
2024-12-10 11:39:31 +00:00
Younjin Song
85392de2e7 Azure: Unify credentials in frontend for MSSQL (#96357)
* init

* test fix
2024-12-10 11:32:27 +00:00
Sergej-Vlasov
663167a16c FeatureToggles: Make newFiltersUI feature toggle generally available (#97460)
make newFiltersUIfeature toggle generally available
2024-12-10 10:06:55 +00:00
Matheus Macabu
dd969f8a54 Chore: Attempt to reduce flakiness in integration tests (#97247)
* sqlstore/sqlutil: set sync=OFF for sqlite in tests if wal=true

* testinfra: set max open/idle conn to 2 to match e2e tests
2024-12-10 10:55:18 +01:00
Matheus Macabu
aa5ba238a4 CI: ignore failure in github_app_generate_token step (#97141) 2024-12-10 10:46:28 +02:00
Karl Persson
718612aabf Zanzana: Update relation names (#97638)
* Update relation names to match k8s verbs

* Only check namespace if relation is valid

* Only list for valid relations
2024-12-10 09:38:03 +01:00
Maxim Muzafarov
4712883601 MSSQL: Redact sensitive info from logs in the mssql plugin (#97281)
mssql(logs): Remove logging of credentials
2024-12-10 08:30:21 +00:00
Torkel Ödegaard
71b8f487e0 Dashboards: Rows layout & editing (#96895)
* Dashboard: Panel edit and support for more layout items

* It's working

* Fix discard issue

* remove unused file

* Update

* Editing for responsive grid items now work

* Update

* Update

* Update

* WIP rows

* progres

* Progress

* Progress

* Focus selection works

* Update

* Update

* Progress

* Update

* Editing rows work

* Row editing works

* fix delete

* Update

* Row options fix

* Fix selecting rows

* Update

* update

* Update

* Update

* Remove cog icon button

* add import to toolbar

* Update

* Update
2024-12-10 07:21:30 +01:00
owensmallwood
d762a96436 Unified Storage: Init at startup, fix traces, and speed up indexing (#97529)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* dont lazy init unified storage

* Inits index when creating new resource server. Fixes trace propagation by passing span ctx. Update some logging.

* Use finer grained cache locking when building indexes to speed things up. Locking the whole function was slowing things down.

* formatting

* linter fix

* go mod

* make update-workspace

* fix workspaces check error

* update dependency owner in mod file

* wait 1 second before querying metrics

* try with big timeout, see if fixes CI. Wont fail locally.

* skips postgres integration test. Only fails in drone. Will fix later.

* put delay back to 500 ms
2024-12-09 22:32:19 -06:00
Will Browne
871af07203 Chore: Go Workspace fix (#97694) 2024-12-09 20:45:03 -06:00
Isabel Matwawana
f35b9a937f Docs: pie chart visualization refactor (#97701)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2024-12-09 15:37:55 -05:00
Sofia Papagiannaki
d1027bf7b1 Swagger: Fix sync issue with enterprise (#97696)
* Swagger: Fix sync issue with enterprise

* Update swagger guidelines for enterprise endpoints
2024-12-09 21:21:22 +02:00
ismail simsek
b00774f45f Explore Metrics: URL sync previews of metric graphs (#97584)
* keep showPreviews in url

* remove console.log and simplify the spread
2024-12-09 19:16:12 +01:00
Matias Chomicki
c324376999 Loki shard splitting: enable for supported metric queries (#97675)
* Loki: remove app restriction for sharding

* Loki: allow some metric queries to be sharded

* Enable metric queries wrapped by sum

* Prettier
2024-12-09 18:54:25 +02:00
Isabel Matwawana
1e9348185f Docs: Add missing option and fix UI element names (#97687) 2024-12-09 11:53:34 -05:00
renovate[bot]
0437fd0703 Update dependency sass-loader to v16.0.4 (#97676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 16:26:45 +00:00
Galen Kistler
645776afc9 Table: RowsList passing incorrect index to onRowHover (#97599)
* chore: fix table returning the wrong index to onRowHover
2024-12-09 10:23:44 -06:00
renovate[bot]
b1f1144807 Update dependency @rsdoctor/webpack-plugin to v0.4.11 (#97631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 16:02:25 +00:00
renovate[bot]
6758d4d4ce Update dependency rudder-sdk-js to v2.48.41 (#97673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 16:00:38 +00:00
renovate[bot]
273fd8b67f Update dependency re-resizable to v6.10.3 (#97660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 15:41:47 +00:00
Isabel Matwawana
67abbc2ac3 Docs: alert list visualization refactor (#97603) 2024-12-09 10:35:49 -05:00
Isabel Matwawana
2bdeca58c6 Docs: state timeline visualization refactor (#97602) 2024-12-09 10:35:37 -05:00
Isabel Matwawana
92bc1e855b Docs: heatmap visualization refactor (#97571) 2024-12-09 10:34:57 -05:00
Yuri Tseretyan
2d386e6704 Alerting: Migrate notification models to generated by grafnaa-app-sdk (#95430)
* create notifications module and generate models

* switch template group to app models

* switch time intervals to use app models

* switch receiver to use app models

* switch routing tree to use app models

* move schema registration to resource packages

* fix package names to match app

* fix codeowners

* fix UI to use metadata.name instead of uid

* update dockerfile

* move generated models to pkg

* remove provenance from field selector

* move client factories to test files

* rename GenericClient to TypedClient
2024-12-09 10:29:05 -05:00
Haris Rozajac
c4e19f3570 Dashboard Schema v2: Panel links (#97441)
* panel links

* Update transformer scene -> v2; update snapshot

* clean up

* data links test

* Remove type assertion
2024-12-09 08:23:23 -07:00
Tobias Skarhed
fde79020ef Transformations: Add Delimiter format option to Extract fields (#97340)
* Extract to fields: Add CSV extractor

* Support escaping

* Split at delimiter

* Fix unused import

* PR feedback

* Rename extractor

* Use number instead

* update

* Add comment about regex match

* Add deimiter selector in editor

* Default delimiter to comma

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-12-09 16:04:58 +01:00
renovate[bot]
930aa69192 Update dependency nanoid to v5.0.9 (#97657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 15:04:25 +00:00
renovate[bot]
acdb6086db Update dependency msw to v2.6.8 (#97653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 14:39:20 +00:00
Bogdan Matei
7cc0604360 Scopes: Add ScopesContext to @grafana/runtime (#97566) 2024-12-09 16:37:50 +02:00
renovate[bot]
a7d345282f Update dependency dompurify to v3.2.3 (#97646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 14:16:14 +00:00
Ed Welch
ca6281bc31 Loki Expiremental Streaming: fixes nil check conditional which was accidentally inverted in a previous PR (#97612) 2024-12-09 17:01:22 +03:00
Tom Ratcliffe
6435e36b64 Chore: Fix yarn generate-apis command (#97639)
Fix `yarn generate-apis` command

https://github.com/reduxjs/redux-toolkit/issues/4470
2024-12-09 15:32:01 +02:00
renovate[bot]
1b717e97d3 Update dependency @grafana/plugin-e2e to v1.13.0 (#97625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 13:05:03 +00:00
renovate[bot]
63dbe1b47d Update dependency @types/hoist-non-react-statics to v3.3.6 (#97629)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 11:10:49 +00:00
Jack Westbrook
9688d5b56b Frontend: Add build:stats for analysing bundles (#94729)
* build(webpack): add a stats config and build:stats script for analysing bundles locally

* chore(yarn): dedupe lock file

* feat(webpack): use bundle analyser by default, env vars for additional plugins
2024-12-09 12:09:32 +01:00
renovate[bot]
3190c29ec4 Update dependency @react-types/overlays to v3.8.11 (#97332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 10:48:42 +00:00
Alexander Zobnin
cd7772204e Zanzana: Handle renderer service authorization requests (#97201)
* Zanzana: Handle renderer service authorization requests

* only add context if render service is authorizing

* use group and resource from API definitions

* check prefix instead of full identity

* fix AddRenderContext

* remove unused type
2024-12-09 11:17:44 +01:00
renovate[bot]
4f1307edb1 Update dependency @prometheus-io/lezer-promql to v0.300.1 (#97227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 10:02:05 +00:00
Pepe Cano
7f99388576 Alerting docs: update Configure alert rules (#97430)
* Simplify a bit more Intro to Alert rules

* Update `Configure alert rules` docs

* Configure Grafana-managed alert rules

* Update `Configure data source-managed alert rules`

* fix mispelled word

* fix grammar error

* remove unnecessary space

* remove whitespace

* address brand name convention
2024-12-09 09:43:19 +01:00
ismail simsek
3dc2bdfb20 Explore Metrics: Remove filter resetting when changing the datasource (#97589)
remove filter resetting
2024-12-09 08:35:41 +01:00
Ivana Huckova
faa4b683a3 Zipkin: Run queries with node graph enabled through backend (#97472)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
* Add processing to node graph frames from backend response

* Add tests
2024-12-07 11:06:45 +01:00
Ryan McKinley
5f39d2eeb0 K8s: Make GetAPIRoutes an optional interface (#97531)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
golangci-lint / lint-go (push) Has been cancelled
2024-12-07 03:08:18 +03:00
Kim Nylander
f276f9b35d [DOC] Update docs for anchored regex TraceQL queries (#97532)
Some checks failed
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
* Update docs for anchored regex TraceQL queries

* Add updates for Span Limit

* Apply suggestions from code review

* Updates from prettier
2024-12-06 14:06:06 -05:00
Ed Welch
e002982cd7 fixes a series of problems with the Dockerfile (#97585) 2024-12-06 12:23:27 -06:00
Andreas Christou
9f75a448d4 Azure/GCM: Improve error display (#96921)
Improve handling of errors
2024-12-06 18:16:23 +00:00
Santiago
f60caf6932 Alerting: Fix alert rules unpausing after moving rule to different folder (#97580)
Alerting: Fix alert rules unpaused after moving rule to different folder
2024-12-06 14:33:13 -03:00
Eric Leijonmarck
ebcd26f7ff SAT: Add icon to token creation (#97479)
* Add + icon on token creatino

* fmt
2024-12-06 16:38:44 +00:00
Gabriel MABILLE
d9cd5a3a2c Setting: Fix redact of entity db pass (#97568) 2024-12-06 17:31:36 +01:00
Matias Chomicki
8243e030b4 Log Labels: add support to disable labels for unique labels (#97567)
* LogLabels: add support to disable labels for unique labels

* LogRow: disable tooltip for unique labels
2024-12-06 18:15:25 +02:00
Jack Westbrook
1ff0978efe Chore: Remove sharemodal and search service barrel files (#97563)
* refactor(search-service): delete barrel file and update imports across frontend

* refactor(sharemodal): delete barrel file and update imports

* refactor(search-service): update features/search/service imports

* chore(betterer): update results file
2024-12-06 16:44:30 +01:00
Ivana Huckova
9a3f8c93dc AzureMonitor and GCM: Replace deprecated experimental/errorsource (#97360)
* Update cloud monitoring

* Update azure monitor

* Update test
2024-12-06 16:38:09 +01:00
Jack Westbrook
1fc9b4bfc1 Chore: Remove dashboard state barrel file (#97562)
* refactor(dashboard-state): delete dashboard/state barrel file and update imports

* chore(betterer): update results
2024-12-06 16:01:51 +01:00
Ida Štambuk
2e342e5b1b CloudWatch: Add OpenSearch PPL and SQL support in Logs Insights (#97508)
Cloudwatch: OpenSearch PPL and SQL support in Logs Insights

Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
Co-authored-by: Nathan Vērzemnieks <njvrzm@users.noreply.github.com>
2024-12-06 15:27:19 +01:00
Nathan Vērzemnieks
3d856dcb33 fix: mark bucketAgg parse errors as downstream (#97478) 2024-12-06 15:02:06 +01:00
Matias Chomicki
eb01cb6705 Logs: update panel state when clearing displayed fields (#97543)
Logs: set panel state when clearing displayed fields
2024-12-06 14:17:59 +01:00
ismail simsek
9f3073fd17 GrafanaUI: Revert: Fix inconsistent controlled/uncontrolled state in AutoSizeInput (#97551)
Revert "GrafanaUI: Fix inconsistent controlled/uncontrolled state in AutoSize…"

This reverts commit cd86546313.
2024-12-06 14:37:24 +02:00
Martin Disibio
356c1d3cb2 Tempo: Honor datasource TLS settings for gRPC requests (#97484)
Tempo gRPC honor same TLS settings as http
2024-12-06 11:48:53 +00:00
Eric Leijonmarck
c98dfd3b54 LBAC for datasources: Update the docs to point to UID instead of ID (#97512)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
update the docs
2024-12-06 09:48:19 +00:00
ismail simsek
492c1ebc0e Chore: Fix small type check issues (#97341)
small type check fixes
2024-12-06 10:24:32 +01:00
Jev Forsberg
ae9460b863 Chore: Archive v8,9, and 10 CHANGELOG content (#97448)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* archive v9 and v8 content

* run prettier

* archive changelog v10 content
2024-12-05 16:09:38 -07:00
J Stickler
bf5fef8b64 docs: update Logs in Explore topic (#97517)
* docs: update Logs in Explore topic

* Fixes from prettier

---------

Co-authored-by: Kim Nylander <kim.nylander@grafana.com>
2024-12-05 17:39:05 -05:00
Dave Henderson
ced7a84f8b chore(metrics): Add metrics & traces to DB migration (#97181)
Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2024-12-05 17:22:19 -05:00
Jacob Valdez
0025876659 Docs: Updating ldd example command for image renderer troubleshooting (#97443) 2024-12-05 14:49:37 -06:00
Steve Simpson
c440bd2bda Alerting: Change default for max_attempts to 3. (#97461)
Currently the default is 1, this means that by default users will see transient
query errors reflected as alert evaluation failures, when often an immediate
retry is sufficient to evaluate the rule successfully.

Enabling retries by default leads to a better experience out of the box.
2024-12-05 21:48:24 +01:00
Isabel Matwawana
6a1685ab5e Docs: Comment video link back in (#97511) 2024-12-05 15:31:51 -05:00
Santiago
21f81cfba3 Remote Alertmanager: Make failing integration tests block merges (#97493) 2024-12-05 17:30:41 -03:00
Isabel Matwawana
5a64015d12 Docs: What’s new & Upgrade guide v11.4 (#97509) 2024-12-05 15:20:11 -05:00
Jev Forsberg
4ea109593b Chore: Update dep version (#97507)
* update dep versions

* run gen-cue
2024-12-05 13:01:59 -07:00
grafana-delivery-bot[bot]
c9cba4a4ab Release: update changelog for 11.4.0 (#97499)
* Update changelog

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jev Forsberg <46619047+baldm0mma@users.noreply.github.com>
2024-12-05 12:14:24 -07:00
owensmallwood
9b9cb81199 Unified Storage Search: Check error first after building index (#97504)
check error first after building index
2024-12-05 21:14:04 +02:00
Haris Rozajac
9e885cab7c Dashboard Schema v2: Add tests for variables, annotations, and dataTransformer (#97314)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Update `make docs` procedure / main (push) Has been cancelled
* Add tests for variables, annotations, dataTransformer

* Simplify variable validation; test additional variable fields

* Move helpers to a separate file

* remove unused param, rename helpers file

* fix

* Move remaining vizPanel test to helper

* use ts
2024-12-05 10:49:11 -07:00
Sonia Aguilar
6bdd8f7fca Alerting: Fix recording rules rendering simplified condition (#97497)
fix recording rules rendering simplified condition
2024-12-05 19:43:00 +02:00
Sonia Aguilar
2cc03e60d2 Alerting: Fix using stacks- prefix instead of stack- for checking the namespace in boot data (#97492)
* Fix using stacks- prefix instead of stack- for checking the namespace in config boot data

* use config directly for namespace
2024-12-05 18:30:29 +01:00
owensmallwood
39aede9802 Unified Storage: When prom registry is nil, use the default registry (#97491)
when prom registry is nil, use the default registry
2024-12-05 18:44:58 +02:00
Andreas Christou
addbdb0545 GCM: Correctly mark errors as downstream (#97196)
* Correctly mark query type error as downstream

* Correctly mark Prom parsing failures as downstream errors

* Rename function for clarity
2024-12-05 15:41:52 +00:00
Sonia Aguilar
3838fa5e55 Alerting: Fix data-testid in RuleEditorSection (#97473)
Fix advanced switch in notifications step
2024-12-05 14:21:01 +01:00
Tom Ratcliffe
b105b32c8a Chore: Remove @eslint/compat and don't run all eslint rules in betterer (#97463)
* Remove eslint compat

* Remove fixup for testing library rules

* Make sure we don't ignore betterer eslint config from itself

* Update betterer to not run rules that are run in linting anyway
2024-12-05 12:14:09 +00:00
Gilles De Mey
9a262c867c Alerting: Use the stepNo to make sure the ID of the switch is unique (#97405) 2024-12-05 13:08:41 +01:00
Jack Westbrook
20e619e445 Tempo: Reduce initial bundle size (#97084)
* feat(grafana-plugin-configs): externalise rxjs/operators

* feat(plugin-configs): add bundle analyser behind stats env var

* chore(tempo): add a build:stats script for bundle analysis

* feat(tempo): make query and config editors default export

* feat(tempo): lazy load query and config editors

* feat(tempo): lazy cheat sheet

* chore(tempo): remove webpackchunkname hints
2024-12-05 11:59:43 +00:00
Torkel Ödegaard
53cdbd8a2d Dashboard: Fixes issue with compatability of old DashboardModel.annotations (#97328)
* Dashboard: Fixes issue with compatability of old DashboardModel.annotations

* let's lint this thing

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2024-12-05 12:50:21 +01:00
Ivana Huckova
3e96431bd6 Move createGraphFrames to grafana/o11y-ds-frontend package (#97394)
* Move createGraphFrames to o11y-ds-frontend package

* Remove duplicated mock response

* Rename files and function
2024-12-05 12:25:46 +01:00
Misi
f82eea7840 Chore: Extend OrgRoleMapper (#97336)
* Extend OrgRoleMapper

* Cover mappingCfg eq nil

* Use struct instead of a pointer in MapOrgRoles
2024-12-05 12:14:37 +01:00
Ryan McKinley
8165258a2d Storage: Query stats within a namespace (#97403) 2024-12-05 13:58:13 +03:00
Jacob Valdez
3724ffd858 removing outdated versioning info from GCM data source docs (#96854)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* removing outdated versioning info from GCM data source docs

* deleting missed admonition closure
2024-12-04 16:17:04 -06:00
owensmallwood
70c9c3889f Unified Storage Indexer: Add back metrics (#97310)
* Adds back indexer metrics. Uses config values instead of hardcoded ones.

* cast to int64

* remove unused func

* Index metrics impl doesn't depend on Bleve. Adds a TotalDocs func to SearchBackend interface.

* adds config setting for index_min_count

* rename arg

* rename metric label to namespace instead of slug

* adds default "do nothing" case to satisfy linter

* moves bleve index metrics to search package

* make bleve backend private, dont need to pass in prom reg

* imports

* adds bleve metrics to resource package to avoid circular deps
2024-12-04 15:02:40 -06:00
grafana-delivery-bot[bot]
39b6e712bb Release: update changelog for 11.3.2 (#97436)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-04 12:50:07 -08:00
grafana-delivery-bot[bot]
ff921288ca Release: update changelog for 11.2.5 (#97431)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-04 11:37:11 -08:00
grafana-delivery-bot[bot]
cf90aa1a96 Release: update changelog for 11.1.10 (#97428)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-04 10:55:53 -08:00
grafana-delivery-bot[bot]
1683c3bade Release: update changelog for 11.0.9 (#97426)
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-04 10:20:19 -08:00
grafana-delivery-bot[bot]
fb0a8b3fef Release: update changelog for 10.4.14 (#97418)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Has been cancelled
Update changelog

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-04 17:51:12 +01:00
Tito Lins
51c20d75da Alerting: update grafana/alerting due to SNS receiver update (#97370) 2024-12-04 17:22:00 +01:00
Gabriel MABILLE
ef79450065 Settings: Redact token keyword (#97395)
* Settings: Redact token keyword

* Be more specific

* Given section is part of key, be more specific

* Fix test
2024-12-04 16:58:29 +01:00
Matias Chomicki
f78cd0761b Loki query option: fix step validation (#96977) 2024-12-04 09:35:51 -06:00
Kevin Minehart
6fe184a565 CI: add missing github app volume to release pipeline (#97406)
add github app volume to release pipeline
2024-12-04 17:02:01 +02:00
Robby Milo
2a82b433a4 fix deploy preview shared content (#97355)
* fix deploy preview shared content

* trigger build

* update workflow

* fix param

* revert content change

* trigger build

* trigger build

* trigger build

* revert ref change
2024-12-04 15:43:31 +01:00
Andres Martinez Gotor
85e006935e Docs: Document the plugins preinstall feature (#96464) 2024-12-04 15:12:08 +01:00
Ethan
ae44451155 Update SBOM GitHub Action (#97374)
* Update SBOM report workflow for improved artifact naming and trigger options

* Change to use shared-workflow action
2024-12-04 14:40:59 +01:00
Dominik Prokop
5f8ada85fb Browse dashboards: Use dashboard DashboardAPI (#97387)
* Browse dashboards: Use dashboard DashboardAPI

* Browse dashboards: Use DashboardAPI for deleting

* Browse dashboards: Use DashboardAPI for uid validation
2024-12-04 11:29:00 +01:00
Javier Ruiz
016351c7ed [getTagKeys] Ensure we're not using suggestions when no scopes are present (#97353)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Ensure we're not using suggestions when no scopes are present

* Simplify scopes check

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>

---------

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
2024-12-04 10:30:32 +01:00
Ryan McKinley
b7066aa7dc Chore: K8s registration cleanup (#97373)
cleanup
2024-12-04 09:10:31 +03:00
linoman
3d05f21abd SCIM: GET /scim/Users/:id endpoint swagger documentation (#97242)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Add GET /scim/Users/:id endpoint swagger documentation
2024-12-03 23:18:11 +01:00
owensmallwood
9642eedce6 Unified Storage: Use tls preferred when grafana db using ssl (#97378)
When unified storage is using the grafana db (default case for on-prem), if the db is using ssl then set tls=preferred. This fixes an on-prem bug in 11.3.1.
2024-12-03 23:56:13 +02:00
Isabella Siu
f4e108c34f Cloudwatch: Accept empty string for logstimeout and mark errors downstream (#96947) 2024-12-03 15:02:52 -05:00
maicon
7fd8877439 Unistore: Update Folders Endpoint (#97317)
* Add route for update folders via apiserver

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2024-12-03 15:33:01 -03:00
Ryan McKinley
9d89d8757f Search: Build index from resource stats (#97320)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2024-12-03 20:20:27 +03:00
linoman
64e7dbcadb SCIM: DELETE /scim/Users/:id endpoint swagger documentation (#97274)
Update swagger documentation for DELETE /scim/Users/:id
2024-12-03 18:01:13 +01:00
Todd Treece
ec454e04c9 Chore: Remove standalone apiserver options (#97349) 2024-12-03 11:42:52 -05:00
Ryan McKinley
0ea0c35198 Chore: Remove unused GetDesiredDualWriterMode (#97359)
remove desired function
2024-12-03 17:42:10 +02:00
Isabella Siu
91bdf733fb Elasticsearch: Health endpoint should handle http errors (#96803)
Elasticsearch: health endpoint should handle http errors
2024-12-03 10:37:31 -05:00
linoman
5c2cda7abb SCIM: GET /scim/Users swagger definitions (#97160)
* Add GET /scim/Users endpoint definition

* update status code

* Update swagger reference
2024-12-03 16:34:20 +01:00
Jean-Philippe Quéméner
5bf0872d14 fix(short-url): redirect to main page if not found (#97347) 2024-12-03 16:32:53 +01:00
Ivana Huckova
802b96c6f7 Bump github.com/grafana/grafana-plugin-sdk-go to v0.260.1 (#97329)
* Bump github.com/grafana/grafana-plugin-sdk-go to v0.260.1

* run make update-workspace

* make update-workspace

---------

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2024-12-03 16:19:43 +01:00
Pepe Cano
8fe36e1c83 Alerting docs: clarify $labels and query labels (#97350)
* Alerting docs: clarify `$labels` and query labels

* fix mispell
2024-12-03 15:57:17 +01:00
Karl Persson
3a17d0c927 IAM: align AuthInfo interface (#97228)
* Update to use updated interface
2024-12-03 15:11:17 +01:00
Hugo Kiyodi Oshiro
4a95594e4b Plugins: Disable version install when angular version is not supported (#97189) 2024-12-03 14:21:33 +01:00
Sven Grossmann
34134d0e90 Loki: Hide internal labels (#97323) 2024-12-03 12:46:42 +01:00
Ali
cdf7ac6fd8 Enterprise-traces docs: Fixed broken links (#96598)
* Fixed broken links

* Update _index.md

* Update URL

---------

Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2024-12-03 11:22:23 +00:00
Gabriel MABILLE
3f8c20907c Docs: Make a clear distinction between Organization Roles and RBAC roles (#97082)
* Docs: Make a clear distinction between Organization Roles and RBAC roles

* Add section to assign fixed and custom roles using the HTTP api

* Remove </br>

* run prettier

* Suggestions

Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>

---------

Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2024-12-03 11:40:51 +01:00
renovate[bot]
869dfe0cdd Update dependency @react-types/menu to v3.9.13 (#97244)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 10:09:36 +00:00
Armand Grillet
98178fba68 Remove issue-labeled.yml GitHub workflow (#95611)
This was previously used for the Alerting squad
but isn't anymore.
2024-12-03 10:52:04 +01:00
Timur Olzhabayev
9349a59c48 Fix: Plugin details version UI - adding some line breaks (#97277)
* Ensure text does not run out of the screen

* prettier fixes

* fixing import group order via lint:fix
2024-12-03 11:29:54 +02:00
Ivana Huckova
ca92bc1c04 Add Gio to hall of fame (#97326)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* Add Gio to hall of fame

* Add github handles
2024-12-03 10:25:35 +01:00
Jack Westbrook
a33f16d568 Frontend: Set moduleResolution to bundler in TSconfig (#96450)
* build(typescript): switch module resolution to bundler for exports imports goodness

* chore: bump react-calendar and temp patch prometheus-io package

* Wip

* feat(decoupled-plugin): fix types errors in tests by including testing-library/jest-dom

* chore(betterer): pass custom tsconfig so betterer continues to run
2024-12-03 07:22:49 +01:00
Haris Rozajac
3f04989223 Dashboard Scene: Shows usages in variables list (#96000)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
* "Show usages" functionality

* Don't rely on the inital model but current state; add tests

* Fix typo

* variable check indicators

* Abaility to see renamed or missing variables

* clean up missing variables section async logic

* remove variable type casting

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2024-12-02 13:42:57 -07:00
Ryan McKinley
20a27da636 FeatureFlags: Add helper to check against a set of flags (#97240) 2024-12-02 21:41:41 +02:00
Kevin Minehart
3448384e0d Packaging: Remove sysvinit references / support from rhel packaging (#97068)
Remove sysvinit references / support from rhel packaging
2024-12-02 13:32:21 -06:00
Kristina
53052def52 Heatmap: Fix ability to define bucket size as an interval string, like 30s (#95923)
* validate with durations

* update docs

* Add default values to calculation, show error if too many bins

* move default generation to separate function

* Update docs/sources/panels-visualizations/visualizations/heatmap/index.md

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

* dont try to parse ‘’ as a duration, move max to variable

* Add new function to support duration and ms, only calculate if valid

* Add radix

* Remove validation and precalc to determine bucket quantity

* simplify

* simplify more

* less

* cleanup transformationsVariableSupport. reset value to auto on mode changes

* maybe...

* by hook or by crook

* Change function name back

---------

Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-12-02 13:08:45 -06:00
Leon Sorokin
88621d6fa0 Transformations: Relax regexp format in refIdMatcher (#97216) 2024-12-02 13:05:47 -06:00
Carl Bergquist
acf67d5911 Scopes: Merge scopes filters with OR condition in case they overlap. (#97276)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-12-02 19:16:49 +01:00
Serge Zaitsev
feeb2c6ce0 Chore: Remove verification steps for deb/rpm in drone (#96991)
remove verification steps for deb/rpm in drone
2024-12-02 11:07:58 -07:00
Levente Balogh
cc3f600d7f Extensions: Fix recursions when determining plugin deps (#97295)
* fix(extensions): stop recursion when determining plugin deps

* chore: update the names of test case
2024-12-02 19:49:45 +02:00
Michael Mandrus
8a1b89a5eb Report Button: Add feature toggle for commit button [Hackathon] (#97282)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
add feature toggle for commit button
2024-12-02 19:08:15 +02:00
Isabel Matwawana
0bc8848c85 Docs: Canvas visualization refactor (#97211) 2024-12-02 11:53:11 -05:00
grafana-pr-automation[bot]
4a29708f02 I18n: Download translations from Crowdin (#97275) 2024-12-02 18:19:16 +02:00
Timur Olzhabayev
01a02d8f9e Chore: Add some selector for version below 8.5 (#97210)
* works also before the min version

* adding datasource picker

* adding toggle viz picker and panel editor content

* Panel editor content

* small readme fix for docker compose

* removing constant
2024-12-02 18:15:11 +02:00
Kat Yang
1dffd3e554 Fix: Bookmarks - make expanding not move everything up; remember expanded / collapsed state (#96945)
* fix: expanding bookmarks not move everything up

* chore: delete unused code

* Update public/app/features/trails/DataTrailBookmarks.tsx

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>

* fix: remove type assertion to fix betterer

---------

Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
2024-12-02 10:58:07 -05:00
Isabel Matwawana
6be6c87c7c Docs: Add more information on wrap text override (#97214) 2024-12-02 10:51:39 -05:00
Karl Persson
e4fbae03a1 RBAC: remove dead code (#97234)
This code is unused and always have been
2024-12-02 16:23:51 +01:00
Kat Yang
66c0322e7e Style: Update homepage styles (#96860)
* style: increase size of the ‘let’s start’ section; decrease number of filter lines in the trail cards; remove DS line; change select metric to all metrics

* chore: delete unused get datasource test mock

* fix: adjust test to account for select metric to all metrics change

* chore: update i18n

* text: update truncate long labels test to truncate after 2 lines

* style: shrink card height
2024-12-02 10:08:54 -05:00
Hugo Kiyodi Oshiro
5e91984f31 Plugins: Use grafana-com sso_api_token (#97096) 2024-12-02 16:04:05 +01:00
Piotr Jamróz
60f9ff0a07 Frontend o11y: Load SharedWorkers for crash detection (#96673)
* Load SharedWorkers from blob

* Fix typo

* Update docs

* Add more docs

* Simplify extending CorsSharedWorker

* Revert "Simplify extending CorsSharedWorker"

This reverts commit 1603e5f02f.

* Simplify extending CorsSharedWorker

* Remove ts-ignore

* Update betterer and add docs

* Update public/app/core/crash/index.ts

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

* Update public/app/core/utils/CorsSharedWorker.ts

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

* Update public/app/core/crash/index.ts

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

* Update public/app/core/utils/CorsSharedWorker.ts

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

* Simplify getting scriptsBasePathUrl

* Disable linting for SharedWorker type assertion

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2024-12-02 15:12:36 +01:00
Matias Chomicki
5f1fae8efd Logs Panel: Add infinite scrolling support for Dashboards and Apps (#97095)
* LogsPanel: expose infinite scrolling to apps

* Logs panel: implement infinite scrolling callback and type guards

* Logs panel: expose infinite scrolling toggle in panel options

* Logs permalink: extract range function to a module

* Update unit test

* Logs panel: migrate test to dataplane format

* Formatting and docs

* Shortlinks: remove unnecessary mock

* Remove unnecessary params

* Formatting
2024-12-02 14:57:25 +01:00
Josh Hunt
aa37029270 Fix out of sync openapi specs (#97250)
Update swagger spec after drift
2024-12-02 15:14:29 +02:00
Dominik Broj
cfbeea4ce7 Chore: Setup live reloading (#97248)
* setup live reloading

* put live-reloading behind cli flag, remove webpack.hot.js

* use env.liveReload

* fix lint

---------

Co-authored-by: joshhunt <josh@trtr.co>
2024-12-02 12:58:50 +00:00
Ryan McKinley
219411f894 K8s: Upgrade v0.31.1 -> v0.31.3 (#96964) 2024-12-02 12:49:24 +02:00
renovate[bot]
8752322b95 Update dependency @react-types/button to v3.10.1 (#97235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 10:43:56 +00:00
horacimacias
54d183949e doc: Fix spacing in sample values for enabling persistence (#97220)
Co-authored-by: Irene Rodriguez <irene.rodriguez@grafana.com>
2024-12-02 12:42:04 +02:00
renovate[bot]
3ff4f23f2f Update dependency @react-awesome-query-builder/ui to v6.6.4 (#97233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 10:21:24 +00:00
Gaurav Soni
6a9e72de51 Update index.md to add a note about provisioned data source (#97221)
Co-authored-by: Irene Rodríguez <irene.rodriguez@grafana.com>
2024-12-02 09:54:34 +00:00
Jack Westbrook
36d8688e1b Chore: Rewrite git ignores for yarn related files (#97182)
chore(git): rewrite yarn ignores so dependabot can commit to .yarn/releases
2024-12-02 10:43:06 +01:00
renovate[bot]
21117c85dd Update dependency @leeoniya/ufuzzy to v1.0.17 (#97226)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 09:35:09 +00:00
Karl Persson
7b25804b55 K8s: Register group and kinds to internal version to fix apply (#97184)
* K8s: Register group and kinds to internal version to fix apply
2024-12-02 10:32:34 +01:00
renovate[bot]
14b49a0f61 Update dependency @grafana/plugin-e2e to v1.12.3 (#97183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 09:14:45 +00:00
renovate[bot]
fd510598bb Update dependency @grafana/faro-web-tracing to v1.12.2 (#97172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 09:13:15 +00:00
Jack Westbrook
8915e03f56 Yarn: Dedupe lock file and fix swc errors (#97202)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* chore(yarn): dedupe lock file and fix swc errors

* chore(renovate): remove swc/core from ignore list
2024-12-02 09:38:45 +01:00
Tom Ratcliffe
6d2828f267 Alerting: Add retry and bump timeout on flakey policies test (#97208)
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Sync to mirror / trigger_downstream_patch_mirror (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
Add retry and bump timeout on flakey policies test
2024-11-29 19:00:03 +02:00
Sergej-Vlasov
174e9ae193 Update to scenes 5.28.1 (#97204)
update to scenes 5.28.1
2024-11-29 17:56:42 +02:00
Tobias Skarhed
99395b62d4 MultiCombobox: Add basic controlled functionality (#97117)
* Add basic controlled functionality

* Fix controlled component

* Make component completely controlled

* Fix PR feedback

* Add support for number values and values not in options

* Fix TS errors

* Fix test feedback

* Extract function
2024-11-29 16:09:38 +01:00
Andres Martinez Gotor
e0935246a3 Preinstall: Allow to set a download URL (#96535) 2024-11-29 16:02:33 +01:00
Sven Grossmann
b544b8afff Loki: Fix a bug when reading frames without values but warnings (#97197)
* Loki: Fix a bug when reading frames without values but warnings

* Loki: Better bail if fields are less than 2
2024-11-29 15:34:59 +01:00
grafana-pr-automation[bot]
0def6f2bce I18n: Download translations from Crowdin (#97195) 2024-11-29 13:53:17 +00:00
Levente Balogh
cce943b3af Plugin Extensions: Only load app plugins when necessary (#86624)
* feat(plugins): automatically preload plugins

This PR enables auto-preloading for plugins when they are used
by an extension or extension-point. Once this change is merged plugins
that were only using "preload: true" in their plugin.json for using extensions
can remove it.

* fix: remove unused types

* fix: call `setComponentsFromLegacyExports()` after meta is initialised
2024-11-29 14:05:55 +01:00
Tom Ratcliffe
a2c407854f Alerting: Make alert rule policies preview use k8s API (#97070)
* Add translations for notification preview

* Make notifications endpoints use alertmanager config mock entity

* Fix translations and error handling in preview component

* Update preview hook to use new k8s APIs

* Move receivers k8s mock logic so it always comes from the mock config

* Fix test that wasn't using the correct receiver

* Fix object_matchers

* Remove mockApi method and update tests

* Update translation for error case

* Remove useMemo
2024-11-29 13:05:41 +00:00
Robby Milo
1c60d51905 add deploy preview workflow (#97140)
* add deploy preview workflow

* remove unnecessary file to trigger build

* fix repo

* change ref

* change ref

* update docs

* update codeowners

* Update docs/README.md

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>

---------

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2024-11-29 10:19:06 +01:00
renovate[bot]
3d47dc8e5f Update Yarn to v4.5.3 (#96972)
* Update Yarn to v4.5.3

* updated yarn version.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2024-11-29 10:52:25 +02:00
Victor Marin
61077f387e Fix default case for allowCustomValue flag in MultiValue variables (#96996)
* Fix default case for allowCustomValue flag in MultiValue variables

* fix test
2024-11-29 10:38:19 +02:00
grafana-pr-automation[bot]
5f385632da I18n: Download translations from Crowdin (#97180)
Some checks failed
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-29 07:29:41 +02:00
Stephanie Hingtgen
63a09c27f7 Chore: remove frontend code that retrieves by folder id (#97066) 2024-11-28 22:12:52 -06:00
Alexa V
c7a5f96ce7 Dashboard: Schema V2 - remove code in sharing export (#97164)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
golangci-lint / lint-go (push) Has been cancelled
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
Dashboard: Schema V2 - remove code in sharing export related to schema v2 POC
2024-11-28 19:28:40 +01:00
Ieva
2c77b7ae3d GAS: swagger update (#97155)
swagger update
2024-11-28 17:52:59 +00:00
Misi
fa634e1476 Fix: Do not fetch Orgs if the user is authenticated by apikey/sa or render key (#97162)
* Do not fetch Orgs if the user is authenticated by apikey/sa or render svc

* Lint
2024-11-28 17:44:11 +01:00
Ieva
cc0ec349a4 RBAC: Allow passing in user UID when searching for user's permissions (#97125)
* allow passing in user UID instead of ID when searching for user's permissions

* fix tests
2024-11-28 16:36:26 +00:00
renovate[bot]
2fdac80488 Update dependency @prometheus-io/lezer-promql to v0.300.0 (#96532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 16:38:25 +01:00
Karl Persson
d64c938749 K8s: Make it possible to register several kinds for a GroupVersion (#97161)
* Make it possible to register several kinds for a GroupVersion
2024-11-28 16:31:05 +01:00
Karl Persson
c5d3f8644e K8s: Set custom config (#97169)
Set custom config
2024-11-28 16:30:43 +01:00
Andres Martinez Gotor
a41902330f @grafana/runtime: User storage (#95834)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
publish-kinds-next / config (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
Update `make docs` procedure / main (push) Has been cancelled
2024-11-28 15:49:34 +01:00
dependabot[bot]
fb0fff6de1 Bump smol-toml from 1.3.0 to 1.3.1 (#96942)
Bumps [smol-toml](https://github.com/squirrelchat/smol-toml) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/squirrelchat/smol-toml/releases)
- [Commits](https://github.com/squirrelchat/smol-toml/commits)

---
updated-dependencies:
- dependency-name: smol-toml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-28 15:22:36 +01:00
Torkel Ödegaard
335241d93d ElementSelection: New element selection context to support selecting elements (#97029)
* ElementSelection: New element selction context to support selecting elements like panels

* Update

* Update
2024-11-28 15:06:00 +01:00
dependabot[bot]
6974f77d18 Chore(deps): Bump @eslint/plugin-kit from 0.2.0 to 0.2.3 (#96589)
Bumps [@eslint/plugin-kit](https://github.com/eslint/rewrite) from 0.2.0 to 0.2.3.
- [Release notes](https://github.com/eslint/rewrite/releases)
- [Changelog](https://github.com/eslint/rewrite/blob/main/release-please-config.json)
- [Commits](https://github.com/eslint/rewrite/compare/core-v0.2.0...plugin-kit-v0.2.3)

---
updated-dependencies:
- dependency-name: "@eslint/plugin-kit"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-28 14:02:34 +00:00
dependabot[bot]
33bdfb4d72 Chore(deps): Bump cross-spawn from 7.0.3 to 7.0.6 (#96654)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-28 15:01:32 +01:00
Jack Westbrook
25da5f0806 Chore: Bump Storybook to 8.4.x (#96128)
* feat(storybook): upgrade to version 8.4

* chore(grafana-ui): replace all usage of preview with canvas

* chore(grafana-ui): add fs-extra as dev dependency

* feat(storybook): copy required assets to temp static directory due to 8.4 not supporting file paths

* chore(yarn): fix up lock file so swc-loader doesnt break for decoupled plugins

* Add ExampleFrame component to render grafana-ui examples

* Prevent Storybook from styling in ExampleFrame

* Use global styles in Storybook docs

* Update mdx docs to use ExampleFrame or correct Canvas usage

* update AutoSizeInput

* Update Index mdx

* remove the gfm mdx package

* silence sass warnings

* fix(storybook): add missing imports to fix failed rendering of stories/docs

* remove empty docs

---------

Co-authored-by: joshhunt <josh@trtr.co>
2024-11-28 14:58:36 +01:00
Jack Westbrook
10eec83478 Grafana UI: Compress grot-cta image (#97052)
* chore(grafana-ui): reduce size of grot-cta

* chore(grafana-ui): apply less aggressive compression on grot-cta
2024-11-28 14:51:20 +01:00
Karl Persson
b2626a2d65 LoginAttempt: Add setting to control max number of attempts before user login gets locked (#97091)
* Add setting to adjust number of login attempts before user login gets locked

* Ensure at least one attempt can be made

* Update documentation with new setting

* Update docs/sources/setup-grafana/configure-grafana/_index.md

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2024-11-28 14:33:18 +01:00
Matheus Macabu
f2b96593ea SQL: close rows to release connection (#97147)
* SQL: close rows to release connection

* dont return err from rows.Close()
2024-11-28 14:28:55 +01:00
Victor Marin
0bf9d68070 DashboardScene: Fix layout issues with repeated panels when repeatDirection is missing (#97149)
fix
2024-11-28 14:26:36 +02:00
Georges Chaudy
f6124344ba authnz: Fix panic in the authenticator and rename metric (#97150)
* Fix: panic

* suggestion
2024-11-28 14:03:54 +02:00
Konrad Lalik
5e5fa86b8b Alerting: Fix go template parsing (#97145)
Co-authored-by: Sonia Aguilar <sonia.aguilar@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-11-28 13:29:45 +02:00
Pepe Cano
59d4b91e4c Alerting: Explore button in Insights view (#96496)
* Alerting: Explore button in Insights view

* Fix wrong insights queries

* replace `$rule_group` in the query expression with the actual rule group value

* Add info tooltip in `Insights` title

* Remove unused `RatingModal` component

* fix betterer results

* remove unnecessary `React.Fragment`

* Remove unnecessary text space
2024-11-28 13:18:45 +02:00
Haris Rozajac
4721d5164b Dashboard Schema v2: Transformation to v2 supports annotations (#96787)
* Annotations

* Default to configured default DS when datasource is undefined

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
2024-11-28 12:36:09 +02:00
Ethan
a4fff11438 Update project URL For Security Labels (#96405)
* Update project URL in .github/commands.json

* update type/build-packaging project

---------

Co-authored-by: tonypowa <tonypowa@gmail.com>
2024-11-28 11:58:52 +02:00
Kévin Gomez
c8d3ea58f8 Support importing local cue modules when generating TS types with cog (#96876)
* Support importing local cue modules when generating TS types with cog

* Generate enums as unions of values instead of an actual `enum` statement

* Update transformers to use the new TS enums

* Update go workspaces

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2024-11-28 10:45:31 +01:00
Alexander Zobnin
c8caf787d4 Zanzana: handle service accounts (#97123)
* add service account to the schema

* sync managed permissions for service accounts

* sync SA basic roles

* sync SA roles

* Fix endless loop in reconciler while read openfga
2024-11-28 10:41:30 +01:00
Mihai Doarna
feecd30687 API key: Fix API key migration to service account (#97100)
fix api key migration to service account
2024-11-28 09:42:58 +02:00
Dimitris Sotirakis
3fc6c003e8 chore: Pin send-slack-message action (#97088)
Pin send-slack-message action
2024-11-28 08:10:02 +01:00
Sarah Zinger
4b234c4795 Add logging to legacy datasource look up path (#97065)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
2024-11-27 14:32:06 -05:00
dependabot[bot]
54785fb5a8 Bump github.com/matryer/is from 1.4.0 to 1.4.1 (#97016)
Bumps [github.com/matryer/is](https://github.com/matryer/is) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/matryer/is/releases)
- [Commits](https://github.com/matryer/is/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: github.com/matryer/is
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 17:11:17 +00:00
Isabel Matwawana
8b374b227a Docs: Fix broken link (#97119) 2024-11-27 11:54:08 -05:00
Isabel Matwawana
f4e1f52a7a Docs: Add note to refresh page after saving dashboards (#97112) 2024-11-27 11:14:11 -05:00
Isabel Matwawana
17246eb7fc Docs: Add column lists to panel config pages (#96940) 2024-11-27 10:21:33 -05:00
Isabel Matwawana
1083722346 Add column lists to Shared dashboards page (#96941) 2024-11-27 10:21:08 -05:00
Sonia Aguilar
2e14c20c71 Alerting: Fix removing reducer when inital value is instant (#97054)
* Fix removing reducer when inital value is instant

* use ID to allow clicking label to toggle the switch

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-11-27 15:59:25 +01:00
Mihai Doarna
33e7005483 API keys: Update text when no API keys were found in DB (#97102)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-kinds-next / config (push) Waiting to run
publish-kinds-next / main (push) Blocked by required conditions
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* update text when no API keys were found in DB

* text update
2024-11-27 16:24:52 +02:00
Sonia Aguilar
a0de712bca Alerting: Fix simplified query step (#97046)
* Fix simplified query step

* remove is advancedMode and use editorSettings.simplifiedQueryEditor

* remove unnecessary Boolean conversion

* fix when feature toggle is disabled

* fix test

* simplify code

* fix when not ff is not enabled
2024-11-27 16:13:27 +02:00
Matias Chomicki
3f83322fa9 Logs: fix canKeepDisplayedFields with possibly undefined queries (#97103) 2024-11-27 16:04:40 +02:00
Adam Yeats
b898a4540d Azure Monitor: Add a feature flag to toggle user auth for Azure Monitor only (#96858)
* Azure Monitor: Add a feature flag to toggle user auth for Azure Monitor only

* Fix condition for userIdentityEnabled

* Re-add removed test

* Remove unused prop

* Refactor onAuthTypeChange in AzureCredentialsForm

* Add frontend unit tests

* Lint
2024-11-27 14:01:54 +00:00
Ivan Ortega Alba
d18cdae3e2 Schema V2 to DashboardScene: Settings + Panels (#96074)
* Transform Save mode to Scene: Settings

* Transform Save mode to Scene: Panels

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2024-11-27 14:35:37 +01:00
Sriram
16c78f6a98 Postgres: Datasource health check error message improvements #96906 (#96990)
* updated postgres health check error messages

* addressed review comments / added tests
2024-11-27 13:14:44 +00:00
brendamuir
6e36dfb74e Alerting docs: adds docs on new form flow (#97099) 2024-11-27 13:58:31 +01:00
jackyin
5b0b9c9ecc ToolbarButton: Auto width on smaller screen sizes (#96023)
* fix bug

* optimise

* delete annotation

* optimise
2024-11-27 13:50:44 +01:00
Alexander Zobnin
5a91ab46af Zanzana: Use StreamedListObjects to fetch full list of resources (#97025)
* Initial streamed version of list

* instantiate openfga client to use StreamedListObjects

* Add config option for using streamed version

* Use caching

* fix cache init

* Fix hashing

* refactor
2024-11-27 14:05:41 +02:00
linoman
3957b0b26a SCIM: Update swagger for /scim/Users (#97030)
update swagger for /scim/Users
2024-11-27 12:14:06 +01:00
grafana-pr-automation[bot]
b97cfb3dc2 I18n: Download translations from Crowdin (#96975)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 12:21:02 +02:00
Misi
84b8296ffb OAuth: Use the attached external session data in OAuthToken and OAuthTokenSync (#96655)
* wip

* wip + tests

* wip

* wip opt2

* Use authn.Identity struct's SessionToken

* Merge fixes

* Handle disabling the feature flag correctly

* Fix test

* Cleanup

* Remove HasOAuthEntry from the OAuthTokenService interface

* Remove unused function
2024-11-27 11:06:39 +01:00
Gabriel MABILLE
6e2d3cae5e AuthN: Register flags for grpc_server_authentication configuration (#97063)
* AuthZServer: Add authenticator

* Add flags
2024-11-27 10:35:35 +01:00
Carl Bergquist
722af820a5 Scopes: Use new flag + app_mode=prod in integration tests (#97081)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-11-27 09:38:54 +01:00
Karl Persson
be54c69fd4 Zanzana: Remove create relation from generic resources (#97042)
Remove create relation from generic resources.

We cant have a create relation to a resource because they don't exist yet. So
in oder to check create we either have to have that permissions on a folder or the namespace
2024-11-27 09:02:29 +01:00
Carl Bergquist
21bd47e512 scopes: behind its own feature flag (#97077)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2024-11-27 08:58:25 +01:00
Ryan McKinley
f6ccf976e5 UnifiedSearch: Use ResourceIndex from dashboards apiserver (v0alpha1 only) (#96939)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
2024-11-27 07:57:53 +02:00
Stephanie Hingtgen
104f795156 Dashboards: Remove deprecated endpoints from docs (#97073) 2024-11-27 08:27:58 +03:00
Stephanie Hingtgen
72ffe9838a Folders: remove get by id from docs (#97069) 2024-11-26 19:12:07 -06:00
Galen Kistler
5fadc35664 Dashboards: add showMenuAlways prop to PanelChrome (#96868)
* feat: add showMenuOnHover prop to always render menu in viz
2024-11-27 01:28:56 +02:00
Nihal
e73bb34cc0 Alerting: Fix Conflicting Alert Rule Response Has Wrong 'rule_uid' (#95013)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
* change to return the right conflicting alert rule uid. see https://github.com/grafana/grafana/issues/89755

Signed-off-by: wasim-nihal <sswasim64@gmail.com>

* correcting the code comment

Signed-off-by: wasim-nihal <sswasim64@gmail.com>

* changes to return the conflicting uid for both insert and update operations

Signed-off-by: wasim-nihal <sswasim64@gmail.com>

* changes to return verbose conflicting alert rule response payload

Signed-off-by: wasim-nihal <sswasim64@gmail.com>

* changes to return verbose conflicting alert rule response payload

Signed-off-by: wasim-nihal <sswasim64@gmail.com>

* Update pkg/services/ngalert/store/alert_rule.go

Co-authored-by: Matthew Jacobson <JacobsonMT@gmail.com>

---------

Signed-off-by: wasim-nihal <sswasim64@gmail.com>
Co-authored-by: Matthew Jacobson <JacobsonMT@gmail.com>
2024-11-26 15:13:31 -05:00
brendamuir
52f6f69d4b Alerting docs: adds new export alert rule definition (#97028)
* Alerting docs: adds new export alert rule definition

* update

* Update button text for exporting new rule definition

* Update docs/sources/alerting/set-up/provision-alerting-resources/export-alerting-resources/index.md

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>

* Update docs/sources/alerting/set-up/provision-alerting-resources/export-alerting-resources/index.md

Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>

* definition

* type

* definition 2

* pepes feedback

* removes will

---------

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
2024-11-26 19:20:55 +01:00
Kristina
6e62afa950 StateTimeline: Fix use of hidden fields in data links (#95095)
* Use hideFrom in GraphNG to hide fields if value is defined. Remove other filtering from timeline chart

* make hidefrom logic more robust

* remove unneeded decoupling, filter fields when there are no links

* add omitHideFromViz prop to GraphNG

* Add more to comment on property

---------

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2024-11-26 10:40:25 -06:00
Eric Leijonmarck
83d050ee1c LBAC for datasources: Adds UID to LBAC rules (#96522)
* swagger

* update with deprecation notice

* adding caching for teams
2024-11-26 16:35:04 +00:00
Matias Chomicki
d2b6960593 Feature toggles: remove lokiMetricDataplane (#97024)
* Feature toggles: remove lokiMetricDataplane

* Framing: remove test cases expecting metricDataplane to be false

* Remove test code

* Chore: rename test cases
2024-11-26 18:32:17 +02:00
Gareth Dawson
217a2bce0a MSSQL: Make error consistent with psql and mysql (#97056)
make error consistent with psql and mysql
2024-11-26 17:47:14 +02:00
Matias Chomicki
d69888df2d Logs Panel: Limit displayed characters to MAX_CHARACTERS (#96997)
* LogRowMessage: limit displayed characters to MAX_CHARACTERS

* LogRowMessage: update ellipsis text

* Formatting

* Revert test change

* LogRowMessage: fix conditional

* Extract translations

* LogRowMessage: use button for ellipsis

* Revert test change

* Change fill to outline

* Revert test change
2024-11-26 17:45:44 +02:00
Dimitris Sotirakis
d418299780 docs: Fix Pending period description in alerting page (#96974)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-11-26 17:09:08 +02:00
Isabel Matwawana
2370fbffc2 Docs: Remove unnecessary underscore (#97048) 2024-11-26 10:06:27 -05:00
Bogdan Matei
13a4bec96b Scopes: Move URL values from selector to facade (#96842) 2024-11-26 16:43:36 +02:00
Karl Persson
76f052e8de Requester: Remove duplicated function (#97038)
* Remove duplicated function

* Remove GetDisplayName from interface

* Use GetName
2024-11-26 15:29:31 +01:00
Arati R.
6d04023aa6 K8s/Folders: Improve k8s client implementation of get (#96434)
* Enable getting folders with kubernetes client
* Add TestIntegrationFolderGetPermissions
* Set full path as part of legacy get
* Replace implementation for setting fullpath
* Add folder get test
* Escape forward slash in parent titles
* Replace test for access control metadata
* Add test case to TestIntegrationFolderGetPermissions
* Improve fetching of access control
2024-11-26 16:20:00 +02:00
Gilles De Mey
c6d3cf89ad Alerting: Fix navigating to URLs with "%" (#96992)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2024-11-26 15:07:18 +01:00
Eric Leijonmarck
2bab11e20a Anonymous Devices: Add Before you begin section in docs (#97043)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
* add before you begin

* Update docs/sources/setup-grafana/configure-security/configure-authentication/anonymous-auth/index.md
2024-11-26 13:56:38 +00:00
Tom Ratcliffe
e4a1243948 Alerting: Consume k8s API for notification policies tree (#96147)
* Add basic usage of K8s API for notification policies

* Add permissions checks for navtree for routes

* Add and update permissions for routing tree logic

* Add capability to skip calling contact points hook

* Conditionally show list of mute timings depending on permissions

* Conditionally link to mute timings if user can see at least one

* Add work in progress k8s handlers for routing tree

* Update notification policy hooks

* Wire up policies to permissions better (conditionally calling APIs)

* Add additional checks for whether to show grafana AM

* Add permission checks to access control

* Remove accidental permissions after rebase

* Update types and const for k8s routes

* Improve statefulness and reset routing tree in tests

* Update notif policy tests to check k8s and config API

* Fix type assertion

* Move non-grafana test out of .each

* Make failure case safer

* Override tag invalidation for notification policies API

* Pass in error and add new error alert component

* Add basic mock server conflict check

* Add test to check user can save after a conflict

* Add logic to allow reloading policies if changed by another user

* Fix test

* Update translations in Modals

* Add ViewAlertGroups ability

* Tweak provisioning logic and memoize AM config response

* Update snapshots for useAbilities

* Update result destructure

* Use enums for provenance in routingtrees

* Use consistent memoisation

* Fix _metadata for vanilla AM

* useAsync for error / update state

* move k8s api error handling to separate file

* use cause for error codes

* Use `supported` bools from Alertmanager abilities and clarify default policy

---------

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-11-26 13:46:39 +00:00
Torkel Ödegaard
06d0d41183 Dashboard: Edit pane in edit mode (#96971)
* Dashboard: Edit pane foundations

* Update

* fix panel edit padding

* Restore scroll pos works when feature toggle is disabled

* Update

* Update

* remember collapsed state

* Update

* fixed padding issue
2024-11-26 14:39:09 +01:00
Mihai Doarna
d2fab92d8b APIKeys: Update text on API keys deprecation (#97022)
* update text on API keys deprecation

* run prettier

* add betterer results
2024-11-26 14:22:23 +02:00
Ezequiel Victorero
5039725da6 Snapshots: Add RBAC roles for creating and deleting (#96126) 2024-11-26 09:13:17 -03:00
Stephanie Hingtgen
91d7517146 Dashboards: Set uid to empty if not found (#97013) 2024-11-26 05:07:07 -07:00
Gareth Dawson
768000febd Postgres: Add error source to postgresql (#97027)
* add error source to postgres

* i forgot to save the file with changes
2024-11-26 11:23:49 +00:00
Hugo Kiyodi Oshiro
a8174f9285 Plugins: Add token to gcom requests (#96261) 2024-11-26 11:42:55 +01:00
Gareth Dawson
3b8499eaee MySQL: add error source to QueryData (#96769)
* add error source to mysql

* Update pkg/tsdb/mysql/sqleng/sql_engine.go

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

---------

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2024-11-26 10:25:48 +00:00
Jack Westbrook
754fce648c Chore: Make Eslint work with enterprise (#96539)
chore(eslint): make it work with enterprise
2024-11-26 11:09:27 +01:00
Artur Wierzbicki
ba0f376da7 Dashboards: update docs of the overwrite param in Save Dashboard API Call (#97011)
update dashboard overwrite docs
2024-11-26 09:36:44 +00:00
Jára Benc
a9099a56db Alerting: Fix runbook URL overflow (#93516)
* Fix runbook URL overflow

* Re add truncate()

* fix imports

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-11-26 10:12:25 +01:00
Karl Persson
3990637af9 IAM: remove duplicated functions (#96989)
* Remove duplicated function and use the one provided by claims package
2024-11-26 09:22:45 +01:00
Serge Zaitsev
3dbd3a7a81 Chore: Revert golangci PR + bump golangic version (#96326)
* Chore: Clean up some excludes and fix makefile (#96052)

clean up some excludes and fix makefile

* Chore: Enable cache on golangci linter (#95471)

* try to enable cache on golangci linter

* bump version

* exclude G115

* reduce timeout

* remove deprecated linter

* bump linter version in bingo

* try a different syntax for workspace modules

* try another command

* add apps to linter path

* try disabling cue codegen

* skip some linting in devenv

* exclude dirs and try again

* try workaround for pkg

* try path instead of dir

* make it one line

* replace package prefix

* exclude xorm

* exclude wire

* file-based aproach to nolint in workspaces

* missing quote

* simplify command line

* change ownership

* upgrade linter

* revert bingo readme

* revert devenv changes

* upgrade golint

* use dashes to stay consistent with other workflows

* also change name in its own workflow file

* rename in codeowners
2024-11-26 09:19:53 +01:00
Todd Treece
74879a465f Chore: Update github.com/grafana/go-json version (#97012)
Some checks failed
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
golangci-lint / lint-go (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
2024-11-26 00:49:44 +02:00
Brendan O'Handley
f5958fe0c0 Explore metrics: Fix default datasource bug, add test coverage (#97008)
* select actual default prom data source

* add tests for the function
2024-11-26 00:36:58 +02:00
Brendan O'Handley
ae27382be5 Prometheus: Add metrics explorer feature tracking for combobox (#97006)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
add metrics explorer feature tracking for combobox
2024-11-25 14:53:40 -06:00
Isabel Matwawana
a88c681008 Docs: Add example image to RegExp extract fields option (#97007) 2024-11-25 15:34:07 -05:00
Leon Sorokin
3e96672b88 TraceQL: Further optimize autosuggest / tag completions (#96943)
* extract completionItemsToSuggestions

* refactor

* cleanup

* Fix bug

* Fix another bug

---------

Co-authored-by: André Pereira <adrapereira@gmail.com>
2024-11-25 19:10:48 +00:00
Juan Cabanas
150352930d ExportJson: Add missing tracking in copy to clipboard button (#97000) 2024-11-25 15:34:38 -03:00
Kim Nylander
18c8ed3088 [DOC] Remove simple configuration in Tempo data source docs (#96932)
* Remove simple configuration from Tempo data source docs

* Change deprecation to 11.5 for aggregate by

* Update docs/sources/shared/datasources/tempo-search-traceql.md
2024-11-25 13:17:53 -05:00
Leon Sorokin
ac04abb7a4 Revert "PanelQueryRunner: Use rxjs merge, not lodash merge (#96881)" (#96999)
This reverts commit a8b6c81d12.
2024-11-25 18:12:37 +00:00
Brendan O'Handley
287ce2ef40 Prometheus: Add error source, don't swallow errors (#96511)
add error source, don't swallow errors
2024-11-25 10:30:13 -06:00
Laura Fernández
df628951f5 Combobox: Fix input overflowing parent with autosize (#96642) 2024-11-25 16:36:05 +01:00
Leon Sorokin
a8b6c81d12 PanelQueryRunner: Use rxjs merge, not lodash merge (#96881) 2024-11-25 09:24:58 -06:00
Tobias Skarhed
1a453828d9 MultiCombobox: Initial downshift setup (#96664)
* Initial multi state handling

* Add basic styling

* Extract OptionListItem

* Fix linting issues

* Export types

* Remove React imports

* Make story internal

* Add proper story title

* Remove empty styles
2024-11-25 16:24:24 +01:00
jackyin
88768d012d UserTable: fix issue when search query contains "." (#94389) 2024-11-25 16:00:48 +01:00
Josh Hunt
cd86546313 GrafanaUI: Fix inconsistent controlled/uncontrolled state in AutoSizeInput (#96696)
* GrafanaUI: Fix delayed state in AutoSizeInput due to mixed controlled/uncontrolled state

* clean up state management into seperate hook

* update test

* Sync new prop value to state when uncontrolled, tests
2024-11-25 14:44:56 +00:00
Miklós Tolnai
517c6fdc9b Navigation: add dbo11y app under Infrastructure (#96763)
* add dbo11y app under Infrastructure

* add i18n for Databases nav item

* add Translation extraction results
2024-11-25 15:34:47 +01:00
Isabel Matwawana
74add52c2e Add sparkline to codespell (#96936) 2024-11-25 17:20:41 +03:00
Alexander Zobnin
170e0e1813 Zanzana: List then search implementation (#96705)
* Zanzana: Search with list

* Allow to pass werb into list request

* split list search into 2 functions

* fix listing resources

* remove unused

* refactor

* remove unused function

* Add more logging to reconciler

* Fix search for users with access to all resources

* fix findFoldersZanzanaList

* search for folders as well by default

* refactor

* use compile for list and search

* remove list from client

* remove only from client

* remove list from interface

* run compile once

* refactor

* refactor

* add search tests

* fix tests

* Fix linter
2024-11-25 14:58:34 +01:00
Gabriel MABILLE
6d77c0e187 AuthZ client: Add tracing (#96983)
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
golangci-lint / lint-go (push) Waiting to run
Crowdin Upload Action / upload-sources-to-crowdin (push) Waiting to run
publish-technical-documentation-next / sync (push) Waiting to run
Sync to mirror / trigger_downstream_patch_mirror (push) Waiting to run
Trivy Scan / trivy-scan (push) Waiting to run
* AuthZ client: Add tracing

* InProc as well
2024-11-25 14:17:52 +01:00
Dominik Prokop
7f7cc2153f Schema v2: Add basic editor for testing (#96852)
* Schema v2: Add basic editor for testing

* Disable eslint in dev files

* Remove settings tab
2024-11-25 13:11:27 +01:00
lean.dev
edae283817 Chore: avoid redirect in test (#96917) 2024-11-25 08:54:42 -03:00
Ivana Huckova
15632561de Update commands.json file to route area/backend/db/sql to search & storage team (#96920)
Update commands to route `area/backend/db/sql` to Search & Storage team
2024-11-25 12:45:01 +01:00
Sonia Aguilar
624f44fdb5 Alerting: Add new button for exporting new alert rule in HCL format (#96785)
* add new button for exporting new alert rule

* Fix test

* allow only HCL format for exporting new alert rule

* fix initial tab

* Update public/app/features/alerting/unified/components/rule-editor/alert-rule-form/ModifyExportRuleForm.tsx

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>

* Update public/app/features/alerting/unified/components/rule-editor/alert-rule-form/ModifyExportRuleForm.tsx

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>

* address review comments

* update translations

---------

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>
2024-11-25 11:52:28 +01:00
Victor Marin
2736fe0568 Dashboards: Add the option to toggle custom value options in the groupBy variable (#96892)
* allow options list locking in groupBy var

* refactor

* fix

* fix lint
2024-11-25 12:21:25 +02:00
Kazunari Sasa
39e902860a Docs: Update min cpu approx value for k8s minimum requirements (#96962)
Update min cpu approx value for k8s minimum requirements
2024-11-25 10:01:45 +00:00
renovate[bot]
b23805a78a Update scenes to v5.26.0 (#96968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 11:15:29 +02:00
Matthew Thorning
6e13d1c3b3 Docs: Update frontend.md (#96816)
* Update frontend.md

removed incorrect lines which describe the type of case (camelCase, PascalCase, etc.) should be used.

* Update contribute/style-guides/frontend.md

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update contribute/style-guides/frontend.md

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Update contribute/style-guides/frontend.md

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

---------

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2024-11-25 09:32:27 +01:00
Matheus Macabu
1bf35c97e5 CloudMigrations: fix flaky test on snapshot status (#96827)
* cloudmigration: uncomment flaky test

* cloudmigration: refactor test snapshot status
2024-11-25 09:28:00 +01:00
dependabot[bot]
97fc5abb85 Bump gocloud.dev from 0.39.0 to 0.40.0 (#95900)
* Bump gocloud.dev from 0.39.0 to 0.40.0

Bumps [gocloud.dev](https://github.com/google/go-cloud) from 0.39.0 to 0.40.0.
- [Release notes](https://github.com/google/go-cloud/releases)
- [Commits](https://github.com/google/go-cloud/compare/v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: gocloud.dev
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update workspace

* skip flakey test

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Grot <grot@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-11-25 11:04:34 +03:00
grafana-pr-automation[bot]
7ac3e7f6c4 I18n: Download translations from Crowdin (#96911)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-25 07:44:16 +02:00
2697 changed files with 111948 additions and 73871 deletions

View File

@@ -1,8 +1,77 @@
// @ts-check
const emotionPlugin = require('@emotion/eslint-plugin');
const importPlugin = require('eslint-plugin-import');
const jestPlugin = require('eslint-plugin-jest');
const jsxA11yPlugin = require('eslint-plugin-jsx-a11y');
const lodashPlugin = require('eslint-plugin-lodash');
const barrelPlugin = require('eslint-plugin-no-barrel-files');
const reactPlugin = require('eslint-plugin-react');
const testingLibraryPlugin = require('eslint-plugin-testing-library');
const grafanaConfig = require('@grafana/eslint-config/flat');
const grafanaPlugin = require('@grafana/eslint-plugin');
// Include the Grafana config and remove the rules,
// as we just want to pull in all of the necessary configuration but not run the rules
// (this should only be concerned with checking rules that we want to improve,
// so there's no need to try and run the rules that will be linted properly anyway)
const { rules, ...baseConfig } = grafanaConfig;
/**
* @type {Array<import('eslint').Linter.Config>}
*/
module.exports = [
{
name: 'grafana/betterer-ignores',
ignores: [
'.github',
'.yarn',
'**/.*',
'**/*.gen.ts',
'**/build/',
'**/compiled/',
'**/dist/',
'data/',
'deployment_tools_config.json',
'devenv',
'e2e/test-plugins',
'e2e/tmp',
'packages/grafana-ui/src/components/Icon/iconBundle.ts',
'pkg',
'playwright-report',
'public/lib/monaco/',
'public/locales/_build',
'public/locales/**/*.js',
'public/vendor/',
'scripts/grafana-server/tmp',
'!.betterer.eslint.config.js',
],
},
{
name: 'react/jsx-runtime',
// @ts-ignore - not sure why but flat config is typed as a maybe?
...reactPlugin.configs.flat['jsx-runtime'],
},
{
files: ['**/*.{ts,tsx,js}'],
...baseConfig,
plugins: {
...baseConfig.plugins,
'@emotion': emotionPlugin,
lodash: lodashPlugin,
jest: jestPlugin,
import: importPlugin,
'jsx-a11y': jsxA11yPlugin,
'no-barrel-files': barrelPlugin,
'@grafana': grafanaPlugin,
'testing-library': testingLibraryPlugin,
},
linterOptions: {
// This reports unused disable directives that we can clean up but
// it also conflicts with the betterer eslint rules so disabled
reportUnusedDisableDirectives: false,
},
},
{
files: ['**/*.{js,jsx,ts,tsx}'],
rules: {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,8 +2,6 @@ import { BettererFileTest } from '@betterer/betterer';
import { ESLint } from 'eslint';
import { promises as fs } from 'fs';
import config from './.betterer.eslint.config';
// Why are we ignoring these?
// They're all deprecated/being removed so doesn't make sense to fix types
const eslintPathsToIgnore = [
@@ -11,7 +9,6 @@ const eslintPathsToIgnore = [
'public/app/angular', // will be removed in Grafana 12
'public/app/plugins/panel/graph', // will be removed alongside angular in Grafana 12
'public/app/plugins/panel/table-old', // will be removed alongside angular in Grafana 12
'e2e/test-plugins',
];
// Avoid using functions that report the position of the issues, as this causes a lot of merge conflicts
@@ -75,17 +72,14 @@ function regexp(pattern: RegExp, issueMessage: string) {
}
function countEslintErrors() {
return new BettererFileTest(async (filePaths, fileTestResult, resolver) => {
return new BettererFileTest(async (filePaths, fileTestResult) => {
// Just bail early if there's no files to test. Prevents trying to get the base config from failing
if (filePaths.length === 0) {
return;
}
const { baseDirectory } = resolver;
const runner = new ESLint({
overrideConfig: config,
cwd: baseDirectory,
overrideConfigFile: './.betterer.eslint.config.js',
warnIgnored: false,
});
@@ -93,9 +87,11 @@ function countEslintErrors() {
lintResults.forEach(({ messages, filePath }) => {
const file = fileTestResult.addFile(filePath, '');
messages.forEach((message, index) => {
file.addIssue(0, 0, message.message, `${index}`);
});
messages
.sort((a, b) => (a.message > b.message ? 1 : -1))
.forEach((message, index) => {
file.addIssue(0, 0, message.message, `${index}`);
});
});
});
}

View File

@@ -35,11 +35,11 @@ $(DRONE): $(BINGO_DIR)/drone.mod
@echo "(re)installing $(GOBIN)/drone-v1.5.0"
@cd $(BINGO_DIR) && GOWORK=off CGO_ENABLED=0 $(GO) build -mod=mod -modfile=drone.mod -o=$(GOBIN)/drone-v1.5.0 "github.com/drone/drone-cli/drone"
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.60.1
GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.62.0
$(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/golangci-lint-v1.60.1"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.60.1 "github.com/golangci/golangci-lint/cmd/golangci-lint"
@echo "(re)installing $(GOBIN)/golangci-lint-v1.62.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.62.0 "github.com/golangci/golangci-lint/cmd/golangci-lint"
JB := $(GOBIN)/jb-v0.5.1
$(JB): $(BINGO_DIR)/jb.mod

View File

@@ -1,7 +1,5 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.22.1
go 1.23
toolchain go1.23.0
require github.com/golangci/golangci-lint v1.60.1 // cmd/golangci-lint
require github.com/golangci/golangci-lint v1.62.0 // cmd/golangci-lint

View File

@@ -41,14 +41,22 @@ github.com/4meepo/tagalign v1.3.4 h1:P51VcvBnf04YkHzjfclN6BbsopfJR5rxs1n+5zHt+w8
github.com/4meepo/tagalign v1.3.4/go.mod h1:M+pnkHH2vG8+qhE5bVc/zeP7HS/j910Fwa9TUSyZVI0=
github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8=
github.com/Abirdcfly/dupword v0.0.14/go.mod h1:VKDAbxdY8YbKUByLGg8EETzYSuC4crm9WwI6Y3S0cLI=
github.com/Abirdcfly/dupword v0.1.1 h1:Bsxe0fIw6OwBtXMIncaTxCLHYO5BB+3mcsR5E8VXloY=
github.com/Abirdcfly/dupword v0.1.1/go.mod h1:B49AcJdTYYkpd4HjgAcutNGG9HZ2JWwKunH9Y2BA6sM=
github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE=
github.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw=
github.com/Antonboom/errname v0.1.12 h1:oh9ak2zUtsLp5oaEd/erjB4GPu9w19NyoIskZClDcQY=
github.com/Antonboom/errname v0.1.12/go.mod h1:bK7todrzvlaZoQagP1orKzWXv59X/x0W0Io2XT1Ssro=
github.com/Antonboom/errname v0.1.13 h1:JHICqsewj/fNckzrfVSe+T33svwQxmjC+1ntDsHOVvM=
github.com/Antonboom/errname v0.1.13/go.mod h1:uWyefRYRN54lBg6HseYCFhs6Qjcy41Y3Jl/dVhA87Ns=
github.com/Antonboom/errname v1.0.0 h1:oJOOWR07vS1kRusl6YRSlat7HFnb3mSfMl6sDMRoTBA=
github.com/Antonboom/errname v1.0.0/go.mod h1:gMOBFzK/vrTiXN9Oh+HFs+e6Ndl0eTFbtsRTSRdXyGI=
github.com/Antonboom/nilnil v0.1.7 h1:ofgL+BA7vlA1K2wNQOsHzLJ2Pw5B5DpWRLdDAVvvTow=
github.com/Antonboom/nilnil v0.1.7/go.mod h1:TP+ScQWVEq0eSIxqU8CbdT5DFWoHp0MbP+KMUO1BKYQ=
github.com/Antonboom/nilnil v0.1.9 h1:eKFMejSxPSA9eLSensFmjW2XTgTwJMjZ8hUHtV4s/SQ=
github.com/Antonboom/nilnil v0.1.9/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ=
github.com/Antonboom/nilnil v1.0.0 h1:n+v+B12dsE5tbAqRODXmEKfZv9j2KcTBrp+LkoM4HZk=
github.com/Antonboom/nilnil v1.0.0/go.mod h1:fDJ1FSFoLN6yoG65ANb1WihItf6qt9PJVTn/s2IrcII=
github.com/Antonboom/testifylint v1.2.0 h1:015bxD8zc5iY8QwTp4+RG9I4kIbqwvGX9TrBbb7jGdM=
github.com/Antonboom/testifylint v1.2.0/go.mod h1:rkmEqjqVnHDRNsinyN6fPSLnoajzFwsCcguJgwADBkw=
github.com/Antonboom/testifylint v1.3.0 h1:UiqrddKs1W3YK8R0TUuWwrVKlVAnS07DTUVWWs9c+y4=
@@ -57,6 +65,8 @@ github.com/Antonboom/testifylint v1.3.1 h1:Uam4q1Q+2b6H7gvk9RQFw6jyVDdpzIirFOOrb
github.com/Antonboom/testifylint v1.3.1/go.mod h1:NV0hTlteCkViPW9mSR4wEMfwp+Hs1T3dY60bkvSfhpM=
github.com/Antonboom/testifylint v1.4.3 h1:ohMt6AHuHgttaQ1xb6SSnxCeK4/rnK7KKzbvs7DmEck=
github.com/Antonboom/testifylint v1.4.3/go.mod h1:+8Q9+AOLsz5ZiQiiYujJKs9mNz398+M6UgslP4qgJLA=
github.com/Antonboom/testifylint v1.5.0 h1:dlUIsDMtCrZWUnvkaCz3quJCoIjaGi41GzjPBGkkJ8A=
github.com/Antonboom/testifylint v1.5.0/go.mod h1:wqaJbu0Blb5Wag2wv7Z5xt+CIV+eVLxtGZrlK13z3AE=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
@@ -69,6 +79,8 @@ github.com/Crocmagnon/fatcontext v0.2.2 h1:OrFlsDdOj9hW/oBEJBNSuH7QWf+E9WPVHw+x5
github.com/Crocmagnon/fatcontext v0.2.2/go.mod h1:WSn/c/+MMNiD8Pri0ahRj0o9jVpeowzavOQplBJw6u0=
github.com/Crocmagnon/fatcontext v0.4.0 h1:4ykozu23YHA0JB6+thiuEv7iT6xq995qS1vcuWZq0tg=
github.com/Crocmagnon/fatcontext v0.4.0/go.mod h1:ZtWrXkgyfsYPzS6K3O88va6t2GEglG93vnII/F94WC0=
github.com/Crocmagnon/fatcontext v0.5.2 h1:vhSEg8Gqng8awhPju2w7MKHqMlg4/NI+gSDHtR3xgwA=
github.com/Crocmagnon/fatcontext v0.5.2/go.mod h1:87XhRMaInHP44Q7Tlc7jkgKKB7kZAOPiDkFMdKCC+74=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c=
@@ -79,10 +91,14 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ=
github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c=
github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ=
github.com/alecthomas/go-check-sumtype v0.2.0 h1:Bo+e4DFf3rs7ME9w/0SU/g6nmzJaphduP8Cjiz0gbwY=
github.com/alecthomas/go-check-sumtype v0.2.0/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -90,6 +106,8 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg=
github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
github.com/alexkohler/nakedret/v2 v2.0.5 h1:fP5qLgtwbx9EJE8dGEERT02YwS8En4r9nnZ71RK+EVU=
github.com/alexkohler/nakedret/v2 v2.0.5/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=
github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE=
github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw=
@@ -104,6 +122,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY=
github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM=
github.com/bkielbasa/cyclop v1.2.3 h1:faIVMIGDIANuGPWH031CZJTi2ymOQBULs9H21HSMa5w=
github.com/bkielbasa/cyclop v1.2.3/go.mod h1:kHTwA9Q0uZqOADdupvcFJQtp/ksSnytRMe8ztxG8Fuo=
github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M=
github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=
github.com/bombsimon/wsl/v4 v4.2.1 h1:Cxg6u+XDWff75SIFFmNsqnIOgob+Q9hG6y/ioKbRFiM=
@@ -112,8 +132,12 @@ github.com/bombsimon/wsl/v4 v4.4.1 h1:jfUaCkN+aUpobrMO24zwyAMwMAV5eSziCkOKEauOLd
github.com/bombsimon/wsl/v4 v4.4.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo=
github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY=
github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ=
github.com/breml/bidichk v0.3.2 h1:xV4flJ9V5xWTqxL+/PMFF6dtJPvZLPsyixAoPe8BGJs=
github.com/breml/bidichk v0.3.2/go.mod h1:VzFLBxuYtT23z5+iVkamXO386OB+/sVwZOpIj6zXGos=
github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA=
github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U=
github.com/breml/errchkjson v0.4.0 h1:gftf6uWZMtIa/Is3XJgibewBm2ksAQSY/kABDNFTAdk=
github.com/breml/errchkjson v0.4.0/go.mod h1:AuBOSTHyLSaaAFlWsRSuRBIroCh3eh7ZHh5YeelDIk8=
github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0=
github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA=
github.com/butuzov/mirror v1.1.0 h1:ZqX54gBVMXu78QLoiqdwpl2mgmoOJTk7s4p4o+0avZI=
@@ -139,6 +163,10 @@ github.com/ckaznocha/intrange v0.1.0 h1:ZiGBhvrdsKpoEfzh9CjBfDSZof6QB0ORY5tXasUt
github.com/ckaznocha/intrange v0.1.0/go.mod h1:Vwa9Ekex2BrEQMg6zlrWwbs/FtYw7eS5838Q7UjK7TQ=
github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI=
github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE=
github.com/ckaznocha/intrange v0.2.0 h1:FykcZuJ8BD7oX93YbO1UY9oZtkRbp+1/kJcDjkefYLs=
github.com/ckaznocha/intrange v0.2.0/go.mod h1:r5I7nUlAAG56xmkOpw4XVr16BXhwYTUdcuRFeevn1oE=
github.com/ckaznocha/intrange v0.2.1 h1:M07spnNEQoALOJhwrImSrJLaxwuiQK+hA2DeajBlwYk=
github.com/ckaznocha/intrange v0.2.1/go.mod h1:7NEhVyf8fzZO5Ds7CRaqPEm52Ut83hsTiL5zbER/HYk=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
@@ -149,6 +177,8 @@ github.com/daixiang0/gci v0.12.3 h1:yOZI7VAxAGPQmkb1eqt5g/11SUlwoat1fSblGLmdiQc=
github.com/daixiang0/gci v0.12.3/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI=
github.com/daixiang0/gci v0.13.4 h1:61UGkmpoAcxHM2hhNkZEf5SzwQtWJXTSws7jaPyqwlw=
github.com/daixiang0/gci v0.13.4/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
github.com/daixiang0/gci v0.13.5 h1:kThgmH1yBmZSBCh1EJVxQ7JsHpm5Oms0AMed/0LaH4c=
github.com/daixiang0/gci v0.13.5/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -164,6 +194,8 @@ github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y=
@@ -178,10 +210,14 @@ github.com/ghostiam/protogetter v0.3.5 h1:+f7UiF8XNd4w3a//4DnusQ2SZjPkUjxkMEfjbx
github.com/ghostiam/protogetter v0.3.5/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw=
github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk=
github.com/ghostiam/protogetter v0.3.6/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw=
github.com/ghostiam/protogetter v0.3.8 h1:LYcXbYvybUyTIxN2Mj9h6rHrDZBDwZloPoKctWrFyJY=
github.com/ghostiam/protogetter v0.3.8/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA=
github.com/go-critic/go-critic v0.11.2 h1:81xH/2muBphEgPtcwH1p6QD+KzXl2tMSi3hXjBSxDnM=
github.com/go-critic/go-critic v0.11.2/go.mod h1:OePaicfjsf+KPy33yq4gzv6CO7TEQ9Rom6ns1KsJnl8=
github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My6OyEU=
github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc=
github.com/go-critic/go-critic v0.11.5 h1:TkDTOn5v7EEngMxu8KbuFqFR43USaaH8XRJLz1jhVYA=
github.com/go-critic/go-critic v0.11.5/go.mod h1:wu6U7ny9PiaHaZHcvMDmdysMqvDem162Rh3zWTrqk8M=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -213,6 +249,10 @@ github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsM
github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc=
github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.1.0 h1:gHnMa2Y/pIxElCH2GlZZ1lZSsn6XMtufpGyP1XxdC/w=
github.com/go-viper/mapstructure/v2 v2.1.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U=
github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
@@ -253,8 +293,12 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM=
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
github.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU=
github.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s=
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g=
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM=
github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9 h1:/1322Qns6BtQxUZDTAT4SdcoxknUki7IAoK4SAXr8ME=
github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9/go.mod h1:Oesb/0uFAyWoaw1U1qS5zyjCg5NP9C9iwjnI4tIsXEE=
github.com/golangci/golangci-lint v1.57.1 h1:cqhpzkzjDwdN12rfMf1SUyyKyp88a1SltNqEYGS0nJw=
github.com/golangci/golangci-lint v1.57.1/go.mod h1:zLcHhz3NHc88T5zV2j75lyc0zH3LdOPOybblYa4p0oI=
github.com/golangci/golangci-lint v1.59.0 h1:st69YDnAH/v2QXDcgUaZ0seQajHScPALBVkyitYLXEk=
@@ -263,6 +307,10 @@ github.com/golangci/golangci-lint v1.59.1 h1:CRRLu1JbhK5avLABFJ/OHVSQ0Ie5c4ulsOI
github.com/golangci/golangci-lint v1.59.1/go.mod h1:jX5Oif4C7P0j9++YB2MMJmoNrb01NJ8ITqKWNLewThg=
github.com/golangci/golangci-lint v1.60.1 h1:DRKNqNTQRLBJZ1il5u4fvgLQCjQc7QFs0DbhksJtVJE=
github.com/golangci/golangci-lint v1.60.1/go.mod h1:jDIPN1rYaIA+ijp9OZcUmUCoQOtZ76pOlFbi15FlLJY=
github.com/golangci/golangci-lint v1.61.0 h1:VvbOLaRVWmyxCnUIMTbf1kDsaJbTzH20FAMXTAlQGu8=
github.com/golangci/golangci-lint v1.61.0/go.mod h1:e4lztIrJJgLPhWvFPDkhiMwEFRrWlmFbrZea3FsJyN8=
github.com/golangci/golangci-lint v1.62.0 h1:/G0g+bi1BhmGJqLdNQkKBWjcim8HjOPc4tsKuHDOhcI=
github.com/golangci/golangci-lint v1.62.0/go.mod h1:jtoOhQcKTz8B6dGNFyfQV3WZkQk+YvBDewDtNpiAJts=
github.com/golangci/misspell v0.4.1 h1:+y73iSicVy2PqyX7kmUefHusENlrP9YwuHZHPLGQj/g=
github.com/golangci/misspell v0.4.1/go.mod h1:9mAN1quEo3DlpbaIKKyEvRxK1pwqR9s/Sea1bJCtlNI=
github.com/golangci/misspell v0.5.1 h1:/SjR1clj5uDjNLwYzCahHwIOPmQgoH04AyQIiWGbhCM=
@@ -365,6 +413,8 @@ github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym
github.com/karamaru-alpha/copyloopvar v1.1.0/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k=
github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0=
github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
github.com/kisielk/errcheck v1.8.0 h1:ZX/URYa7ilESY19ik/vBmCn6zdGQLxACwjAcWbHlYlg=
github.com/kisielk/errcheck v1.8.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kkHAIKE/contextcheck v1.1.4 h1:B6zAaLhOEEcjvUgIYEqystmnFk1Oemn8bvJhbt0GMb8=
github.com/kkHAIKE/contextcheck v1.1.4/go.mod h1:1+i/gWqokIa+dm31mqGLZhZJ7Uh44DJGZVmr6QRBNJg=
@@ -384,6 +434,8 @@ github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/
github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA=
github.com/lasiar/canonicalheader v1.1.1 h1:wC+dY9ZfiqiPwAexUApFush/csSPXeIi4QqyxXmng8I=
github.com/lasiar/canonicalheader v1.1.1/go.mod h1:cXkb3Dlk6XXy+8MVQnF23CYKWlyA7kfQhSw2CcZtZb0=
github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4=
github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI=
github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA=
github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0=
github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJZ3alg=
@@ -414,12 +466,16 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE=
github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA=
github.com/mgechev/revive v1.3.9 h1:18Y3R4a2USSBF+QZKFQwVkBROUda7uoBlkEuBD+YD1A=
github.com/mgechev/revive v1.3.9/go.mod h1:+uxEIr5UH0TjXWHTno3xh4u7eg6jDpXKzQccA9UGhHU=
github.com/mgechev/revive v1.5.0 h1:oaSmjA7rP8+HyoRuCgC531VHwnLH1AlJdjj+1AnQceQ=
github.com/mgechev/revive v1.5.0/go.mod h1:L6T3H8EoerRO86c7WuGpvohIUmiploGiyoYbtIWFmV8=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
@@ -445,6 +501,8 @@ github.com/nunnatsa/ginkgolinter v0.16.1 h1:uDIPSxgVHZ7PgbJElRDGzymkXH+JaF7mjew+
github.com/nunnatsa/ginkgolinter v0.16.1/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ=
github.com/nunnatsa/ginkgolinter v0.16.2 h1:8iLqHIZvN4fTLDC0Ke9tbSZVcyVHoBs0HIbnVSxfHJk=
github.com/nunnatsa/ginkgolinter v0.16.2/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ=
github.com/nunnatsa/ginkgolinter v0.18.0 h1:ZXO1wKhPg3A6LpbN5dMuqwhfOjN5c3ous8YdKOuqk9k=
github.com/nunnatsa/ginkgolinter v0.18.0/go.mod h1:vPrWafSULmjMGCMsfGA908if95VnHQNAahvSBOjTuWs=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
@@ -458,6 +516,8 @@ github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeB
github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -495,6 +555,8 @@ github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs=
github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI=
github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 h1:+Wl/0aFp0hpuHM3H//KMft64WQ1yX9LdJY64Qm/gFCo=
github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI=
github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo=
@@ -503,7 +565,14 @@ github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0=
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs=
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ=
github.com/raeperd/recvcheck v0.1.2 h1:SjdquRsRXJc26eSonWIo8b7IMtKD3OAT2Lb5G3ZX1+4=
github.com/raeperd/recvcheck v0.1.2/go.mod h1:n04eYkwIR0JbgD73wT8wL4JjPC3wm0nFtzBnWNocnYU=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryancurrah/gomodguard v1.3.1 h1:fH+fUg+ngsQO0ruZXXHnA/2aNllWA1whly4a6UvyzGE=
github.com/ryancurrah/gomodguard v1.3.1/go.mod h1:DGFHzEhi6iJ0oIDfMuo3TgrS+L9gZvrEfmjjuelnRU0=
@@ -511,6 +580,8 @@ github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3
github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o=
github.com/ryancurrah/gomodguard v1.3.3 h1:eiSQdJVNr9KTNxY2Niij8UReSwR8Xrte3exBrAZfqpg=
github.com/ryancurrah/gomodguard v1.3.3/go.mod h1:rsKQjj4l3LXe8N344Ow7agAy5p9yjsWOtRzUMYmA0QY=
github.com/ryancurrah/gomodguard v1.3.5 h1:cShyguSwUEeC0jS7ylOiG/idnd1TpJ1LfHGpV3oJmPU=
github.com/ryancurrah/gomodguard v1.3.5/go.mod h1:MXlEPQRxgfPQa62O8wzK3Ozbkv9Rkqr+wKjSxTdsNJE=
github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU=
github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ=
github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc=
@@ -529,6 +600,10 @@ github.com/securego/gosec/v2 v2.19.0 h1:gl5xMkOI0/E6Hxx0XCY2XujA3V7SNSefA8sC+3f1
github.com/securego/gosec/v2 v2.19.0/go.mod h1:hOkDcHz9J/XIgIlPDXalxjeVYsHxoWUc5zJSHxcB8YM=
github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 h1:rnO6Zp1YMQwv8AyxzuwsVohljJgp4L0ZqiCgtACsPsc=
github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9/go.mod h1:dg7lPlu/xK/Ut9SedURCoZbVCR4yC7fM65DtH9/CDHs=
github.com/securego/gosec/v2 v2.21.2 h1:deZp5zmYf3TWwU7A7cR2+SolbTpZ3HQiwFqnzQyEl3M=
github.com/securego/gosec/v2 v2.21.2/go.mod h1:au33kg78rNseF5PwPnTWhuYBFf534bvJRvOrgZ/bFzU=
github.com/securego/gosec/v2 v2.21.4 h1:Le8MSj0PDmOnHJgUATjD96PaXRvCpKC+DGJvwyy0Mlk=
github.com/securego/gosec/v2 v2.21.4/go.mod h1:Jtb/MwRQfRxCXyCm1rfM1BEiiiTfUOdyzzAhlr6lUTA=
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU=
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs=
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
@@ -544,8 +619,12 @@ github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak=
github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg=
github.com/sivchari/tenv v1.10.0 h1:g/hzMA+dBCKqGXgW8AV/1xIWhAvDrx0zFKNR48NFMg0=
github.com/sivchari/tenv v1.10.0/go.mod h1:tdY24masnVoZFxYrHv/nD6Tc8FbkEtAQEEziXpyMgqY=
github.com/sivchari/tenv v1.12.1 h1:+E0QzjktdnExv/wwsnnyk4oqZBUfuh89YMQT1cyuvSY=
github.com/sivchari/tenv v1.12.1/go.mod h1:1LjSOUCc25snIr5n3DtGGrENhX3LuWefcplwVGC24mw=
github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00=
github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo=
github.com/sonatard/noctx v0.1.0 h1:JjqOc2WN16ISWAjAk8M5ej0RfExEXtkEyExl2hLW+OM=
github.com/sonatard/noctx v0.1.0/go.mod h1:0RvBxqY8D4j9cTTTWE8ylt2vqj2EPI8fHmrxHdsaZ2c=
github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0=
github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
@@ -592,12 +671,20 @@ github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
github.com/tetafro/godot v1.4.16 h1:4ChfhveiNLk4NveAZ9Pu2AN8QZ2nkUGFuadM9lrr5D0=
github.com/tetafro/godot v1.4.16/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=
github.com/tetafro/godot v1.4.17 h1:pGzu+Ye7ZUEFx7LHU0dAKmCOXWsPjl7qA6iMGndsjPs=
github.com/tetafro/godot v1.4.17/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=
github.com/tetafro/godot v1.4.18 h1:ouX3XGiziKDypbpXqShBfnNLTSjR8r3/HVzrtJ+bHlI=
github.com/tetafro/godot v1.4.18/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 h1:quvGphlmUVU+nhpFa4gg4yJyTRJ13reZMDHrKwYw53M=
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ=
github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4=
github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg=
github.com/timonwong/loggercheck v0.10.1 h1:uVZYClxQFpw55eh+PIoqM7uAOHMrhVcDoWDery9R8Lg=
github.com/timonwong/loggercheck v0.10.1/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8=
github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs=
github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=
github.com/tomarrell/wrapcheck/v2 v2.9.0 h1:801U2YCAjLhdN8zhZ/7tdjB3EnAoRlJHt/s+9hijLQ4=
github.com/tomarrell/wrapcheck/v2 v2.9.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=
github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw=
github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=
github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI=
@@ -610,6 +697,8 @@ github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvni
github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k=
github.com/uudashr/gocognit v1.1.3 h1:l+a111VcDbKfynh+airAy/DJQKaXh2m9vkoysMPSZyM=
github.com/uudashr/gocognit v1.1.3/go.mod h1:aKH8/e8xbTRBwjbCkwZ8qt4l2EpKXl31KMHgSS+lZ2U=
github.com/uudashr/iface v1.2.0 h1:ECJjh5q/1Zmnv/2yFpWV6H3oMg5+Mo+vL0aqw9Gjazo=
github.com/uudashr/iface v1.2.0/go.mod h1:Ux/7d/rAF3owK4m53cTVXL4YoVHKNqnoOeQHn2xrlp0=
github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU=
github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg=
github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM=
@@ -635,6 +724,8 @@ go-simpler.org/musttag v0.9.0 h1:Dzt6/tyP9ONr5g9h9P3cnYWCxeBFRkd0uJL/w+1Mxos=
go-simpler.org/musttag v0.9.0/go.mod h1:gA9nThnalvNSKpEoyp3Ko4/vCX2xTpqKoUtNqXOnVR4=
go-simpler.org/musttag v0.12.2 h1:J7lRc2ysXOq7eM8rwaTYnNrHd5JwjppzB6mScysB2Cs=
go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S7TYM=
go-simpler.org/musttag v0.13.0 h1:Q/YAW0AHvaoaIbsPj3bvEI5/QFP7w696IMUpnKXQfCE=
go-simpler.org/musttag v0.13.0/go.mod h1:FTzIGeK6OkKlUDVpj0iQUXZLUO1Js9+mvykDQy9C5yM=
go-simpler.org/sloglint v0.5.0 h1:2YCcd+YMuYpuqthCgubcF5lBSjb6berc5VMOYUHKrpY=
go-simpler.org/sloglint v0.5.0/go.mod h1:EUknX5s8iXqf18KQxKnaBHUPVriiPnOrPjjJcsaTcSQ=
go-simpler.org/sloglint v0.7.0 h1:rMZRxD9MbaGoRFobIOicMxZzum7AXNFDlez6xxJs5V4=
@@ -652,6 +743,8 @@ go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
@@ -676,10 +769,16 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc h1:ao2WRsKSzW6KuUY9IWPwWahcHCgR0s52IfwutMfEbdM=
golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e h1:I88y4caeGeuDQxgdoFPUq097j7kNfw6uvuiNxUBfcBk=
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=
golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8=
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20240909161429-701f63a606c0 h1:bVwtbF629Xlyxk6xLQq2TDYmqP0uiWaet5LwRebuY0k=
golang.org/x/exp/typeparams v0.0.0-20240909161429-701f63a606c0/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -716,6 +815,10 @@ golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -779,6 +882,8 @@ golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -841,6 +946,10 @@ golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -861,6 +970,8 @@ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -933,6 +1044,8 @@ golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o=
golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1014,6 +1127,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -1042,8 +1157,12 @@ honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs=
honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0=
honnef.co/go/tools v0.5.0 h1:29uoiIormS3Z6R+t56STz/oI4v+mB51TSmEOdJPgRnE=
honnef.co/go/tools v0.5.0/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs=
honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=
honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs=
mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo=
mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA=
mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=
mvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo=
mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 h1:zCr3iRRgdk5eIikZNDphGcM6KGVTx3Yu+/Uu9Es254w=
mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14/go.mod h1:ZzZjEpJDOmx8TdVU6umamY3Xy0UAQUI2DHbf05USVbI=
mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 h1:Nykk7fggxChwLK4rUPYESzeIwqsuxXXlFEAh5YhaMRo=

View File

@@ -14,7 +14,7 @@ CUE="${GOBIN}/cue-v0.5.0"
DRONE="${GOBIN}/drone-v1.5.0"
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.60.1"
GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.62.0"
JB="${GOBIN}/jb-v0.5.1"

View File

@@ -7,6 +7,7 @@ init_cmds = [
watch_all = true
follow_symlinks = true
watch_dirs = [
"$WORKDIR/apps",
"$WORKDIR/pkg",
"$WORKDIR/public/views",
"$WORKDIR/conf",

View File

@@ -1,3 +1,13 @@
<!-- 8.5.27 START -->
# 8.5.27 (2023-06-22)
### Bug fixes
- **Auth:** Fixed CVE-2023-3128. [#70576](https://github.com/grafana/grafana/issues/70576), [@zerok](https://github.com/zerok)
<!-- 8.5.27 END -->
<!-- 8.5.22 START -->
# 8.5.22 (2023-03-22)

View File

@@ -1,3 +1,557 @@
<!-- 9.5.20 START -->
# 9.5.20 (2024-06-21)
<!-- 9.5.20 END -->
<!-- 9.5.19 START -->
# 9.5.19 (2024-05-13)
### Features and enhancements
- **Chore:** Upgrade go to 1.21.10. [#87478](https://github.com/grafana/grafana/issues/87478), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Chore:** Upgrade go to 1.21.10. (Enterprise)
### Bug fixes
- **Provisioning:** Look up provisioned folders by UID when possible. [#87504](https://github.com/grafana/grafana/issues/87504), [@DanCech](https://github.com/DanCech)
<!-- 9.5.19 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)
### Bug fixes
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80682](https://github.com/grafana/grafana/issues/80682), [@alexweav](https://github.com/alexweav)
<!-- 9.5.16 END -->
<!-- 9.5.15 START -->
# 9.5.15 (2023-12-18)
### Features and enhancements
- **Alerting:** Attempt to retry retryable errors. [#79209](https://github.com/grafana/grafana/issues/79209), [@gotjosh](https://github.com/gotjosh)
- **Unified Alerting:** Set to 1 by default. [#79109](https://github.com/grafana/grafana/issues/79109), [@gotjosh](https://github.com/gotjosh)
### Bug fixes
- **Recorded Queries:** Add org isolation (remote write target per org), and fix cross org Delete/List. (Enterprise)
<!-- 9.5.15 END -->
<!-- 9.5.14 START -->
# 9.5.14 (2023-11-13)
### Bug fixes
- **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)
- **LDAP:** FIX Enable users on successful login . [#75192](https://github.com/grafana/grafana/issues/75192), [@gamab](https://github.com/gamab)
- **Auditing and UsageInsights:** FIX Loki configuration to use proxy env variables. (Enterprise)
<!-- 9.5.14 END -->
<!-- 9.5.13 START -->
# 9.5.13 (2023-10-11)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.10. [#76367](https://github.com/grafana/grafana/issues/76367), [@zerok](https://github.com/zerok)
- **Licensing:** Updated grpc plugin factory newPlugin signature. (Enterprise)
### Bug fixes
- **BrowseDashboards:** Only remember the most recent expanded folder. [#74817](https://github.com/grafana/grafana/issues/74817), [@joshhunt](https://github.com/joshhunt)
- **Licensing:** Pass func to update env variables when starting plugin. [#74681](https://github.com/grafana/grafana/issues/74681), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **RBAC:** Chore fix hasPermissionInOrg. (Enterprise)
<!-- 9.5.13 END -->
<!-- 9.5.12 START -->
# 9.5.12 (2023-09-29)
### Features and enhancements
- **Azure:** Add support for Workload Identity authentication. [#75730](https://github.com/grafana/grafana/issues/75730), [@aangelisc](https://github.com/aangelisc)
<!-- 9.5.12 END -->
<!-- 9.5.10 START -->
# 9.5.10 (2023-09-18)
### Features and enhancements
- **Chore:** Upgrade Alpine base image to 3.18.3. [#74995](https://github.com/grafana/grafana/issues/74995), [@zerok](https://github.com/zerok)
- **Chore:** Upgrade Go to 1.20.8. [#74982](https://github.com/grafana/grafana/issues/74982), [@zerok](https://github.com/zerok)
<!-- 9.5.10 END -->
<!-- 9.5.9 START -->
# 9.5.9 (2023-09-05)
### Features and enhancements
- **SSE:** DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData). [#73642](https://github.com/grafana/grafana/issues/73642), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Prometheus:** Add present_over_time syntax highlighting. [#72367](https://github.com/grafana/grafana/issues/72367), [@arnaudlemaignen](https://github.com/arnaudlemaignen)
- **Alerting:** Improve performance of matching captures. [#71998](https://github.com/grafana/grafana/issues/71998), [@grobinson-grafana](https://github.com/grobinson-grafana)
### Bug fixes
- **LDAP:** Fix user disabling. [#74096](https://github.com/grafana/grafana/issues/74096), [@gamab](https://github.com/gamab)
<!-- 9.5.9 END -->
<!-- 9.5.8 START -->
# 9.5.8 (2023-08-16)
### Features and enhancements
- **GenericOAuth:** Set sub as auth id. [#73223](https://github.com/grafana/grafana/issues/73223), [@kalleep](https://github.com/kalleep)
### Bug fixes
- **DataSourceProxy:** Fix url validation error handling. [#73320](https://github.com/grafana/grafana/issues/73320), [@ricci2511](https://github.com/ricci2511)
<!-- 9.5.8 END -->
<!-- 9.5.7 START -->
# 9.5.7 (2023-07-20)
### Features and enhancements
- **Alerting:** Sort NumberCaptureValues in EvaluationString. [#71930](https://github.com/grafana/grafana/issues/71930), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** No longer silence paused alerts during legacy migration. [#71765](https://github.com/grafana/grafana/issues/71765), [@JacobsonMT](https://github.com/JacobsonMT)
- **Chore:** Upgrade Go to 1.20.6. [#71446](https://github.com/grafana/grafana/issues/71446), [@sakjur](https://github.com/sakjur)
- **Alerting:** Remove and revert flag alertingBigTransactions. [#70910](https://github.com/grafana/grafana/issues/70910), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Migrate unknown NoData\Error settings to the default. [#70905](https://github.com/grafana/grafana/issues/70905), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Tempo:** Escape regex-sensitive characters in span name before building promql query. [#68318](https://github.com/grafana/grafana/issues/68318), [@joey-grafana](https://github.com/joey-grafana)
- **Alerting:** Update grafana/alerting to ce9fba9. [#67685](https://github.com/grafana/grafana/issues/67685), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Chore:** Upgrade Go to 1.20.6. (Enterprise)
### Bug fixes
- **Plugins:** Only configure plugin proxy transport once. [#71741](https://github.com/grafana/grafana/issues/71741), [@wbrowne](https://github.com/wbrowne)
- **Alerting:** Fix unique violation when updating rule group with title chains/cycles. [#71330](https://github.com/grafana/grafana/issues/71330), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Fix:** Change getExistingDashboardByTitleAndFolder to get dashboard by title, not slug. [#70961](https://github.com/grafana/grafana/issues/70961), [@yangkb09](https://github.com/yangkb09)
- **Alerting:** Convert 'Both' type Prometheus queries to 'Range' in migration. [#70907](https://github.com/grafana/grafana/issues/70907), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Support newer http_config struct. [#69718](https://github.com/grafana/grafana/issues/69718), [@gillesdemey](https://github.com/gillesdemey)
- **InfluxDB:** Interpolate retention policies. [#69299](https://github.com/grafana/grafana/issues/69299), [@itsmylife](https://github.com/itsmylife)
- **StatusHistory:** Fix rendering of value-mapped null. [#69107](https://github.com/grafana/grafana/issues/69107), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Fix provenance guard checks for Alertmanager configuration to not cause panic when compared nested objects. [#69092](https://github.com/grafana/grafana/issues/69092), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **AnonymousAuth:** Fix concurrent read-write crash. [#68802](https://github.com/grafana/grafana/issues/68802), [@Jguer](https://github.com/Jguer)
- **AzureMonitor:** Ensure legacy properties containing template variables are correctly migrated. [#68790](https://github.com/grafana/grafana/issues/68790), [@aangelisc](https://github.com/aangelisc)
- **Explore:** Remove data source onboarding page. [#68643](https://github.com/grafana/grafana/issues/68643), [@harisrozajac](https://github.com/harisrozajac)
- **Dashboard:** Re-align Save form. [#68625](https://github.com/grafana/grafana/issues/68625), [@polibb](https://github.com/polibb)
- **Azure Monitor:** Fix bug that did not show alert rule preview. [#68582](https://github.com/grafana/grafana/issues/68582), [@alyssabull](https://github.com/alyssabull)
- **Histogram:** Respect min/max panel settings for x-axis. [#68244](https://github.com/grafana/grafana/issues/68244), [@leeoniya](https://github.com/leeoniya)
- **Heatmap:** Fix color rendering for value ranges < 1. [#68163](https://github.com/grafana/grafana/issues/68163), [@leeoniya](https://github.com/leeoniya)
- **Heatmap:** Handle unsorted timestamps in calculate mode. [#68150](https://github.com/grafana/grafana/issues/68150), [@leeoniya](https://github.com/leeoniya)
- **Google Cloud Monitor:** Fix mem usage for dropdown. [#67949](https://github.com/grafana/grafana/issues/67949), [@asimpson](https://github.com/asimpson)
- **AzureMonitor:** Fix logs query multi-resource and timespan values. [#67932](https://github.com/grafana/grafana/issues/67932), [@aangelisc](https://github.com/aangelisc)
- **Utils:** Reimplement util.GetRandomString to avoid modulo bias. [#66970](https://github.com/grafana/grafana/issues/66970), [@DanCech](https://github.com/DanCech)
- **License:** Enable FeatureUserLimit for all products. (Enterprise)
- **Auth:** Remove ldap init sync. (Enterprise)
<!-- 9.5.7 END -->
<!-- 9.5.6 START -->
# 9.5.6 (2023-07-11)
### Bug fixes
- **Dashboard:** Fix library panels in collapsed rows not getting updated. [#66640](https://github.com/grafana/grafana/issues/66640), [@VictorColomb](https://github.com/VictorColomb)
- **Auth:** Add and document option for enabling email lookup. [@vtorosyan](https://github.com/vtorosyan)
<!-- 9.5.6 END -->
<!-- 9.5.5 START -->
# 9.5.5 (2023-06-22)
### Bug fixes
- **Auth:** Fixed CVE-2023-3128. [#70580](https://github.com/grafana/grafana/issues/70580), [@zerok](https://github.com/zerok)
- **Auth:** Show invite button if disable login form is set to false. [#70154](https://github.com/grafana/grafana/issues/70154), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Azure:** Fix Kusto auto-completion for Azure datasources (#69685). [#69694](https://github.com/grafana/grafana/issues/69694), [@aangelisc](https://github.com/aangelisc)
- **RBAC:** Remove legacy AC editor and admin role on new dashboard route. [#68776](https://github.com/grafana/grafana/issues/68776), [@eleijonmarck](https://github.com/eleijonmarck)
- **Revert:** Allow editors to access GET /datasources. [#68654](https://github.com/grafana/grafana/issues/68654), [@eleijonmarck](https://github.com/eleijonmarck)
- **Settings:** Add ability to override `skip_org_role_sync` with Env variables. [#68375](https://github.com/grafana/grafana/issues/68375), [@eleijonmarck](https://github.com/eleijonmarck)
<!-- 9.5.5 END -->
<!-- 9.5.3 START -->
# 9.5.3 (2023-06-06)
### Bug fixes
- **Query:** Prevent crash while executing concurrent mixed queries
- **Alerting:** Require alert.notifications:write permissions to test receivers and templates
<!-- 9.5.3 END -->
<!-- 9.5.2 START -->
# 9.5.2 (2023-05-03)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.4. [#67757](https://github.com/grafana/grafana/issues/67757), [@papagian](https://github.com/papagian)
- **Alerting:** Scheduler use rule fingerprint instead of version. [#67516](https://github.com/grafana/grafana/issues/67516), [@grafanabot](https://github.com/grafanabot)
### Bug fixes
- **TimeSeries:** Fix leading null-fill for missing intervals. [#67571](https://github.com/grafana/grafana/issues/67571), [@leeoniya](https://github.com/leeoniya)
- **Dashboard:** Revert fixed header shown on mobile devices in the new panel header. [#67514](https://github.com/grafana/grafana/issues/67514), [@grafanabot](https://github.com/grafanabot)
- **PostgreSQL:** Fix tls certificate issue by downgrading lib/pq. [#67393](https://github.com/grafana/grafana/issues/67393), [@grafanabot](https://github.com/grafanabot)
- **Provisioning:** Fix provisioning issues with legacy alerting and data source permissions. [#67377](https://github.com/grafana/grafana/issues/67377), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Fix misleading status code in provisioning API. [#67358](https://github.com/grafana/grafana/issues/67358), [@grafanabot](https://github.com/grafanabot)
- **Explore:** Update table min height (#67321). [#67332](https://github.com/grafana/grafana/issues/67332), [@adrapereira](https://github.com/adrapereira)
- **DataLinks:** Encoded URL fixed. [#67291](https://github.com/grafana/grafana/issues/67291), [@juanicabanas](https://github.com/juanicabanas)
- **Loki:** Fix log samples using `instant` queries (#67271). [#67275](https://github.com/grafana/grafana/issues/67275), [@svennergr](https://github.com/svennergr)
- **Panel Header Fix:** Implement new Panel Header on Angular Panels . [#67228](https://github.com/grafana/grafana/issues/67228), [@grafanabot](https://github.com/grafanabot)
- **Azure Monitor:** Fix bug that was not showing resources for certain locations. [#67216](https://github.com/grafana/grafana/issues/67216), [@grafanabot](https://github.com/grafanabot)
- **Alerting:** Fix panic when reparenting receivers to groups following an attempted rename via Provisioning. [#67175](https://github.com/grafana/grafana/issues/67175), [@grafanabot](https://github.com/grafanabot)
- **Cloudwatch Logs:** Clarify Cloudwatch Logs Limits. [#67101](https://github.com/grafana/grafana/issues/67101), [@grafanabot](https://github.com/grafanabot)
- **SAML:** Fix IdP metadata caching so that invalid metadata doesn't get cached. (Enterprise)
<!-- 9.5.2 END -->
<!-- 9.5.1 START -->
# 9.5.1 (2023-04-26)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.3. [#66831](https://github.com/grafana/grafana/issues/66831), [@sakjur](https://github.com/sakjur)
<!-- 9.5.1 END -->
<!-- 9.5.0 START -->
# 9.5.0 (2023-04-04)
### Features and enhancements
- **API keys:** Add deprecation to api keys. [#65948](https://github.com/grafana/grafana/pull/65948), [@eleijonmarck](https://github.com/eleijonmarck)
- **API:** Enable serving Swagger UI by default and add docs and guidelines. [#63489](https://github.com/grafana/grafana/pull/63489), [@papagian](https://github.com/papagian)
- **API:** Permit Cache-Control (browser caching) for datasource resources. [#62033](https://github.com/grafana/grafana/pull/62033), [@kylebrandt](https://github.com/kylebrandt)
- **Accessibility:** Make row actions keyboard accessible. [#63367](https://github.com/grafana/grafana/pull/63367), [@ashharrison90](https://github.com/ashharrison90)
- **Admin/Plugins:** Set category filter in connections link. [#64393](https://github.com/grafana/grafana/pull/64393), [@mikkancso](https://github.com/mikkancso)
- **Alerting:** Add CustomDetails field in PagerDuty contact point. [#64860](https://github.com/grafana/grafana/pull/64860), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Add dashboard and panel links to rule and instance annotations. [#63243](https://github.com/grafana/grafana/pull/63243), [@konrad147](https://github.com/konrad147)
- **Alerting:** Add filter and remove funcs for custom labels and annotations. [#63437](https://github.com/grafana/grafana/pull/63437), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Add fuzzy search to alert list view. [#63931](https://github.com/grafana/grafana/pull/63931), [@konrad147](https://github.com/konrad147)
- **Alerting:** Add metrics for active receiver and integrations. [#64050](https://github.com/grafana/grafana/pull/64050), [@gotjosh](https://github.com/gotjosh)
- **Alerting:** Better printing of labels. [#63348](https://github.com/grafana/grafana/pull/63348), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Create new state history "fanout" backend that dispatches to multiple other backends at once. [#64774](https://github.com/grafana/grafana/pull/64774), [@alexweav](https://github.com/alexweav)
- **Alerting:** Enable preview for recording rules. [#63260](https://github.com/grafana/grafana/pull/63260), [@VikaCep](https://github.com/VikaCep)
- **Alerting:** Fetch all applied alerting configurations. [#65728](https://github.com/grafana/grafana/pull/65728), [@santihernandezc](https://github.com/santihernandezc)
- **Alerting:** Introduce proper feature toggles for common state history backend combinations. [#65497](https://github.com/grafana/grafana/pull/65497), [@alexweav](https://github.com/alexweav)
- **Alerting:** Make time range query parameters not required when querying Loki. [#62985](https://github.com/grafana/grafana/pull/62985), [@alexweav](https://github.com/alexweav)
- **Alerting:** New notification policies view. [#61952](https://github.com/grafana/grafana/pull/61952), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** No longer index state history log streams by instance labels. [#65474](https://github.com/grafana/grafana/pull/65474), [@alexweav](https://github.com/alexweav)
- **Alerting:** Respect "For" Duration for NoData alerts. [#65574](https://github.com/grafana/grafana/pull/65574), [@JacobsonMT](https://github.com/JacobsonMT)
- **Alerting:** Support filtering rules by multiple datasources. [#64355](https://github.com/grafana/grafana/pull/64355), [@VikaCep](https://github.com/VikaCep)
- **Alerting:** Switch to snappy-compressed-protobuf for outgoing push requests to Loki. [#65077](https://github.com/grafana/grafana/pull/65077), [@alexweav](https://github.com/alexweav)
- **Angular:** Prevent angular from loading when disabled. [#65755](https://github.com/grafana/grafana/pull/65755), [@torkelo](https://github.com/torkelo)
- **Auth:** Add Generic oauth skip org role sync setting. [#62418](https://github.com/grafana/grafana/pull/62418), [@eleijonmarck](https://github.com/eleijonmarck)
- **Auth:** Add feature flag to move token rotation to client. [#65060](https://github.com/grafana/grafana/pull/65060), [@kalleep](https://github.com/kalleep)
- **Auth:** Show user sync external Authentication status. [#62721](https://github.com/grafana/grafana/pull/62721), [@lokeswaran-aj](https://github.com/lokeswaran-aj)
- **Backend:** Use sdk version 0.148.0. [#62822](https://github.com/grafana/grafana/pull/62822), [@kylebrandt](https://github.com/kylebrandt)
- **Chore:** Add stat for remote cache config. [#64276](https://github.com/grafana/grafana/pull/64276), [@DanCech](https://github.com/DanCech)
- **Chore:** Replace short UID generation with more standard UUIDs. [#62731](https://github.com/grafana/grafana/pull/62731), [@ryantxu](https://github.com/ryantxu)
- **Chore:** Use DOMPurify to sanitize strings rather than js-xss. [#62787](https://github.com/grafana/grafana/pull/62787), [@KristianGrafana](https://github.com/KristianGrafana)
- **CloudMonitoring:** Add possibility to use path for private key. [#65252](https://github.com/grafana/grafana/pull/65252), [@zoltanbedi](https://github.com/zoltanbedi)
- **CloudWatch Logs:** Update default timeout to 30m. [#63155](https://github.com/grafana/grafana/pull/63155), [@ashnove](https://github.com/ashnove)
- **CloudWatch:** Add AWS/IotSiteWise namespace and metrics. [#63534](https://github.com/grafana/grafana/pull/63534), [@iwysiu](https://github.com/iwysiu)
- **CloudWatch:** Add account support to variable queries. [#63822](https://github.com/grafana/grafana/pull/63822), [@iwysiu](https://github.com/iwysiu)
- **CloudWatch:** Make deeplinks work for us-gov and china regions. [#64080](https://github.com/grafana/grafana/pull/64080), [@iwysiu](https://github.com/iwysiu)
- **Cloudwatch:** Add MeteredIOBytes metric for EFS. [#64793](https://github.com/grafana/grafana/pull/64793), [@xlagg5](https://github.com/xlagg5)
- **Command Palette:** Display dashboard location. [#63807](https://github.com/grafana/grafana/pull/63807), [@ashharrison90](https://github.com/ashharrison90)
- **Command palette:** Enable folder searching. [#62663](https://github.com/grafana/grafana/pull/62663), [@ashharrison90](https://github.com/ashharrison90)
- **Connections:** Turn on feature toggle by default. [#64885](https://github.com/grafana/grafana/pull/64885), [@mikkancso](https://github.com/mikkancso)
- **Cookies:** Provide a mechanism for per user control over cookies. [#61566](https://github.com/grafana/grafana/pull/61566), [@sakjur](https://github.com/sakjur)
- **Dashboard Datasource:** Update Query List & Improve UX. [#64429](https://github.com/grafana/grafana/pull/64429), [@codeincarnate](https://github.com/codeincarnate)
- **Dashboard:** Add a feature that creates a table panel when a spreadsheet file is dropped on the dashboard. [#62688](https://github.com/grafana/grafana/pull/62688), [@oscarkilhed](https://github.com/oscarkilhed)
- **Dashboard:** Add new visualization/row/library panel/pasted panel is now a dropdown menu. [#65361](https://github.com/grafana/grafana/pull/65361), [@polibb](https://github.com/polibb)
- **Dashboard:** Add value format for requests per minute. [#62258](https://github.com/grafana/grafana/pull/62258), [@dwradcliffe](https://github.com/dwradcliffe)
- **Dashboard:** Empty/No Panels dashboard with a new design. [#65161](https://github.com/grafana/grafana/pull/65161), [@polibb](https://github.com/polibb)
- **Dashboard:** When dashboard is not found show message instead of empty page. [#65508](https://github.com/grafana/grafana/pull/65508), [@polibb](https://github.com/polibb)
- **Dashboards:** Enable feature flag `newPanelChromeUI` by default. [#65593](https://github.com/grafana/grafana/pull/65593), [@axelavargas](https://github.com/axelavargas)
- **Dataplane:** Support timeSeriesLong without transform. [#62732](https://github.com/grafana/grafana/pull/62732), [@bohandley](https://github.com/bohandley)
- **Datasources:** Add user_agent header customization for outgoing HTTP requests. [#63769](https://github.com/grafana/grafana/pull/63769), [@zhichli](https://github.com/zhichli)
- **Datasources:** Use getDefaultQuery in annotations editors. [#61870](https://github.com/grafana/grafana/pull/61870), [@idastambuk](https://github.com/idastambuk)
- **Docs:** Add documentation on how to debug backend plugins. [#64814](https://github.com/grafana/grafana/pull/64814), [@xnyo](https://github.com/xnyo)
- **Docs:** Deprecate dashboard previews. [#65698](https://github.com/grafana/grafana/pull/65698), [@ArturWierzbicki](https://github.com/ArturWierzbicki)
- **Elasticsearch:** Detect Elasticsearch version. [#63341](https://github.com/grafana/grafana/pull/63341), [@gabor](https://github.com/gabor)
- **Elasticsearch:** Run Explore queries trough data source backend. [#65339](https://github.com/grafana/grafana/pull/65339), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore:** Add range option to internal data links. [#64063](https://github.com/grafana/grafana/pull/64063), [@connorlindsey](https://github.com/connorlindsey)
- **Explore:** Add transformations to correlation data links. [#61799](https://github.com/grafana/grafana/pull/61799), [@gelicia](https://github.com/gelicia)
- **Explore:** Support mixed data sources for supplementary query. [#63036](https://github.com/grafana/grafana/pull/63036), [@ifrost](https://github.com/ifrost)
- **Extensions:** Expose an enum for available placements. [#64586](https://github.com/grafana/grafana/pull/64586), [@leventebalogh](https://github.com/leventebalogh)
- **Feat:** Changing link destination for get more plugins. [#63517](https://github.com/grafana/grafana/pull/63517), [@tolzhabayev](https://github.com/tolzhabayev)
- **Feat:** Linking to plugin details page rather than externally for new datasources. [#63499](https://github.com/grafana/grafana/pull/63499), [@tolzhabayev](https://github.com/tolzhabayev)
- **FieldMatchers:** Add match by value (reducer). [#64477](https://github.com/grafana/grafana/pull/64477), [@leeoniya](https://github.com/leeoniya)
- **Flame graph:** Add context menu. [#62705](https://github.com/grafana/grafana/pull/62705), [@joey-grafana](https://github.com/joey-grafana)
- **Flame graph:** Add metadata above flame graph. [#61921](https://github.com/grafana/grafana/pull/61921), [@joey-grafana](https://github.com/joey-grafana)
- **Geomap:** Improve tooltip url for photos layer. [#63487](https://github.com/grafana/grafana/pull/63487), [@adela-almasan](https://github.com/adela-almasan)
- **Geomap:** Release night / day layer. [#63435](https://github.com/grafana/grafana/pull/63435), [@adela-almasan](https://github.com/adela-almasan)
- **InfluxDB:** Move database information into jsondata. [#62308](https://github.com/grafana/grafana/pull/62308), [@itsmylife](https://github.com/itsmylife)
- **Jaeger and Zipkin:** Config & docs upgrade. [#64250](https://github.com/grafana/grafana/pull/64250), [@joey-grafana](https://github.com/joey-grafana)
- **LDAP:** Allow setting minimum TLS version and accepted ciphers. [#63646](https://github.com/grafana/grafana/pull/63646), [@Jguer](https://github.com/Jguer)
- **Licensing:** Allow server admin user to log in even if the active user limit is reached. (Enterprise)
- **Live:** Remove (alpha) ability to configure live pipelines. [#65138](https://github.com/grafana/grafana/pull/65138), [@ryantxu](https://github.com/ryantxu)
- **Logger:** Add feature toggle for errors in HTTP request logs. [#64425](https://github.com/grafana/grafana/pull/64425), [@sakjur](https://github.com/sakjur)
- **Login:** Allow custom name and icon for social providers. [#63297](https://github.com/grafana/grafana/pull/63297), [@jkroepke](https://github.com/jkroepke)
- **Logs Panel:** Refactor style generation to improve rendering performance. [#62599](https://github.com/grafana/grafana/pull/62599), [@matyax](https://github.com/matyax)
- **Logs:** Add millisecond to timestamp in log line. [#64372](https://github.com/grafana/grafana/pull/64372), [@svennergr](https://github.com/svennergr)
- **Logs:** Rename dedup to deduplicate. [#62944](https://github.com/grafana/grafana/pull/62944), [@gwdawson](https://github.com/gwdawson)
- **Loki Query Editor:** Make Monaco the default editor. [#62247](https://github.com/grafana/grafana/pull/62247), [@matyax](https://github.com/matyax)
- **Loki:** Add `unpack` query builder hint. [#65608](https://github.com/grafana/grafana/pull/65608), [@svennergr](https://github.com/svennergr)
- **Loki:** Add descriptions to query builder operations. [#64046](https://github.com/grafana/grafana/pull/64046), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Add placeholder to the loki query editor. [#62773](https://github.com/grafana/grafana/pull/62773), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Always fetch for new label keys in the QueryBuilder. [#64597](https://github.com/grafana/grafana/pull/64597), [@svennergr](https://github.com/svennergr)
- **Loki:** Display error with label filter conflicts. [#63109](https://github.com/grafana/grafana/pull/63109), [@gwdawson](https://github.com/gwdawson)
- **Loki:** Improve the display of loki query stats. [#63623](https://github.com/grafana/grafana/pull/63623), [@gwdawson](https://github.com/gwdawson)
- **MSSQL/Postgres:** List views in table dropdown as well. [#62867](https://github.com/grafana/grafana/pull/62867), [@zoltanbedi](https://github.com/zoltanbedi)
- **MSSQL:** Update forked go-mssqldb dependency. [#65658](https://github.com/grafana/grafana/pull/65658), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Metrics:** Update comment to mention folders instead of dashboards. [#63312](https://github.com/grafana/grafana/pull/63312), [@monteiro-renato](https://github.com/monteiro-renato)
- **Navigation:** Enable new navigation by default. [#65335](https://github.com/grafana/grafana/pull/65335), [@ashharrison90](https://github.com/ashharrison90)
- **NodeGraph:** Support icons for nodes. [#60989](https://github.com/grafana/grafana/pull/60989), [@aocenas](https://github.com/aocenas)
- **Notifications:** Enable display of trace ID by default. [#64884](https://github.com/grafana/grafana/pull/64884), [@ashharrison90](https://github.com/ashharrison90)
- **Packaging:** Start Grafana service after InfluxDB. [#64090](https://github.com/grafana/grafana/pull/64090), [@MichaIng](https://github.com/MichaIng)
- **Panel Header:** Add CancelQuery option to panel header. [#64796](https://github.com/grafana/grafana/pull/64796), [@axelavargas](https://github.com/axelavargas)
- **Panel:** Show multiple errors info in the inspector. [#64340](https://github.com/grafana/grafana/pull/64340), [@andresmgot](https://github.com/andresmgot)
- **PanelChrome:** Add option to show actions on the right side (actions = leftItems). [#65762](https://github.com/grafana/grafana/pull/65762), [@torkelo](https://github.com/torkelo)
- **Phlare:** Allow variables in labelSelector (in query). [#64324](https://github.com/grafana/grafana/pull/64324), [@joey-grafana](https://github.com/joey-grafana)
- **Plugin:** Skip preloading disabled app plugins. [#63083](https://github.com/grafana/grafana/pull/63083), [@mckn](https://github.com/mckn)
- **Plugins:** Add optional logger for plugin requests sent to backend plugins. [#62981](https://github.com/grafana/grafana/pull/62981), [@bergquist](https://github.com/bergquist)
- **Plugins:** Extend panel menu with commands from plugins. [#63802](https://github.com/grafana/grafana/pull/63802), [@mckn](https://github.com/mckn)
- **Plugins:** Extend panel menu with links from plugins. [#63089](https://github.com/grafana/grafana/pull/63089), [@jackw](https://github.com/jackw)
- **Plugins:** Improve instrumentation by adding metrics and tracing. [#61035](https://github.com/grafana/grafana/pull/61035), [@xnyo](https://github.com/xnyo)
- **Plugins:** Support for distributed tracing in backend plugins SDK. [#63714](https://github.com/grafana/grafana/pull/63714), [@xnyo](https://github.com/xnyo)
- **Plugins:** Support for link extensions. [#61663](https://github.com/grafana/grafana/pull/61663), [@mckn](https://github.com/mckn)
- **Profiling:** Enable flame graph & Phlare/Parca data sources for all users. [#63488](https://github.com/grafana/grafana/pull/63488), [@joey-grafana](https://github.com/joey-grafana)
- **Prometheus Datasource:** Improve Prom query variable editor. [#58292](https://github.com/grafana/grafana/pull/58292), [@bohandley](https://github.com/bohandley)
- **Prometheus Metrics:** Add missing stat_total_teams metric. [#65133](https://github.com/grafana/grafana/pull/65133), [@gamab](https://github.com/gamab)
- **Prometheus/Loki:** Run query explicitly instead of onblur in panel edit. [#64815](https://github.com/grafana/grafana/pull/64815), [@torkelo](https://github.com/torkelo)
- **Prometheus:** Browser resource caching. [#60711](https://github.com/grafana/grafana/pull/60711), [@gtk-grafana](https://github.com/gtk-grafana)
- **Prometheus:** Improve prometheus query variable editor. [#63529](https://github.com/grafana/grafana/pull/63529), [@bohandley](https://github.com/bohandley)
- **Prometheus:** Use $\_\_rate_interval for rate queries generated by metric browser. [#65386](https://github.com/grafana/grafana/pull/65386), [@ivanahuckova](https://github.com/ivanahuckova)
- **Pubdash:** Email sharing handle dashboard deleted. [#64247](https://github.com/grafana/grafana/pull/64247), [@owensmallwood](https://github.com/owensmallwood)
- **Pubdash:** Email sharing handle dashboard deleted. (Enterprise)
- **PublicDashboards:** Backfills share column with default value. [#63407](https://github.com/grafana/grafana/pull/63407), [@owensmallwood](https://github.com/owensmallwood)
- **PublicDashboards:** Configuration modal redesign. [#63211](https://github.com/grafana/grafana/pull/63211), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Email sharing. [#63762](https://github.com/grafana/grafana/pull/63762), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Email sharing. (Enterprise)
- **PublicDashboards:** Enable creation when dashboard has template variables. [#64560](https://github.com/grafana/grafana/pull/64560), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Paused or deleted public dashboard screen. [#63970](https://github.com/grafana/grafana/pull/63970), [@juanicabanas](https://github.com/juanicabanas)
- **PublicDashboards:** Viewer can request and claim magic link. (Enterprise)
- **QueryHistory:** Improve handling of mixed datasource entries. [#62214](https://github.com/grafana/grafana/pull/62214), [@Elfo404](https://github.com/Elfo404)
- **Rendering:** Experimental support to use JWTs as auth method. [#60841](https://github.com/grafana/grafana/pull/60841), [@joanlopez](https://github.com/joanlopez)
- **Reports:** Improve the UI for the new navigation. (Enterprise)
- **SQL Datasources:** Add back help content. [#65383](https://github.com/grafana/grafana/pull/65383), [@zoltanbedi](https://github.com/zoltanbedi)
- **Schema:** Remove exclusion for timeseries and update imports. [#65242](https://github.com/grafana/grafana/pull/65242), [@ryantxu](https://github.com/ryantxu)
- **Search:** Improvements for starred dashboard search. [#64758](https://github.com/grafana/grafana/pull/64758), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Select:** Show icon in the grafana/ui Select component. [#63827](https://github.com/grafana/grafana/pull/63827), [@ryantxu](https://github.com/ryantxu)
- **Service accounts:** Creation logic simplification. [#63884](https://github.com/grafana/grafana/pull/63884), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Service accounts:** Remove Add API keys buttons and remove one state of migrating for API keys tab. [#63411](https://github.com/grafana/grafana/pull/63411), [@eleijonmarck](https://github.com/eleijonmarck)
- **SplitOpen:** Update API to accept multiple queries. [#62245](https://github.com/grafana/grafana/pull/62245), [@ivanahuckova](https://github.com/ivanahuckova)
- **Stat Panel:** Add an option for a non-gradient/solid background. [#65052](https://github.com/grafana/grafana/pull/65052), [@baldm0mma](https://github.com/baldm0mma)
- **Stat:** Add ability to remove default single-color background gradient. [#64353](https://github.com/grafana/grafana/pull/64353), [@baldm0mma](https://github.com/baldm0mma)
- **SupportBundles:** Add OAuth bundle collectors. [#64810](https://github.com/grafana/grafana/pull/64810), [@Jguer](https://github.com/Jguer)
- **Table Panel:** Add ability to use text color for value or hide value in gauge cell. [#61477](https://github.com/grafana/grafana/pull/61477), [@torkelo](https://github.com/torkelo)
- **Table:** Introduce sparkline cell type. [#63182](https://github.com/grafana/grafana/pull/63182), [@domasx2](https://github.com/domasx2)
- **Tempo:** Config and doc updates. [#64017](https://github.com/grafana/grafana/pull/64017), [@joey-grafana](https://github.com/joey-grafana)
- **Tempo:** Update service graph view and docs. [#64875](https://github.com/grafana/grafana/pull/64875), [@joey-grafana](https://github.com/joey-grafana)
- **TraceView:** Add key and url escaping of json tag values. [#64331](https://github.com/grafana/grafana/pull/64331), [@aocenas](https://github.com/aocenas)
- **TraceView:** Reworked header. [#63105](https://github.com/grafana/grafana/pull/63105), [@joey-grafana](https://github.com/joey-grafana)
- **Tracing:** Add more detail to HTTP Outgoing Request. [#64757](https://github.com/grafana/grafana/pull/64757), [@bboreham](https://github.com/bboreham)
- **Tracing:** Docs and config improvements for Tempo/Jaeger/Zipkin. [#65255](https://github.com/grafana/grafana/pull/65255), [@joey-grafana](https://github.com/joey-grafana)
- **Tracing:** Support multiple OTel propagators. [#61199](https://github.com/grafana/grafana/pull/61199), [@hairyhenderson](https://github.com/hairyhenderson)
- **Transformations:** Support time format when converting time to strings. [#63826](https://github.com/grafana/grafana/pull/63826), [@ryantxu](https://github.com/ryantxu)
- **Transformers:** Support adding the row index using calculate field transformer. [#65148](https://github.com/grafana/grafana/pull/65148), [@ryantxu](https://github.com/ryantxu)
- **Units:** Format currency with negative before the symbol. [#65152](https://github.com/grafana/grafana/pull/65152), [@ryantxu](https://github.com/ryantxu)
### Bug fixes
- **API:** Fix "Updated by" Column in dashboard versions table. [#65351](https://github.com/grafana/grafana/pull/65351), [@papagian](https://github.com/papagian)
- **AccessControl:** Allow editors to access GET /api/datasources. [#66343](https://github.com/grafana/grafana/pull/66343), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Add "backend" label to state history writes metrics. [#65395](https://github.com/grafana/grafana/pull/65395), [@alexweav](https://github.com/alexweav)
- **Alerting:** Add alert instance labels to Loki log lines in addition to stream labels. [#65403](https://github.com/grafana/grafana/pull/65403), [@alexweav](https://github.com/alexweav)
- **Alerting:** Elide requests to Loki if nothing should be recorded. [#65011](https://github.com/grafana/grafana/pull/65011), [@alexweav](https://github.com/alexweav)
- **Alerting:** Fix DatasourceUID and RefID missing for DatasourceNoData alerts. [#66733](https://github.com/grafana/grafana/pull/66733), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Alerting:** Fix ambiguous handling of equals in labels when bucketing Loki state history streams. [#65013](https://github.com/grafana/grafana/pull/65013), [@alexweav](https://github.com/alexweav)
- **Alerting:** Fix attachment of external labels to Loki state history log streams. [#65140](https://github.com/grafana/grafana/pull/65140), [@alexweav](https://github.com/alexweav)
- **Alerting:** Fix creating a recording rule when having multiple datasources. [#66415](https://github.com/grafana/grafana/pull/66415), [@VikaCep](https://github.com/VikaCep)
- **Alerting:** Fix explore link in alert detail view. [#66106](https://github.com/grafana/grafana/pull/66106), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix share URL for Prometheus rules on subpath. [#66752](https://github.com/grafana/grafana/pull/66752), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Fix stats that display alert count when using unified alerting. [#64852](https://github.com/grafana/grafana/pull/64852), [@gotjosh](https://github.com/gotjosh)
- **Alerting:** Hide mute timing actions when dealing with vanilla prometheus. [#66457](https://github.com/grafana/grafana/pull/66457), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Paginate result previews. [#65257](https://github.com/grafana/grafana/pull/65257), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Prometheus-compatible Alertmanager timings editor. [#64526](https://github.com/grafana/grafana/pull/64526), [@konrad147](https://github.com/konrad147)
- **Alerting:** Update scheduler to get updates only from database. [#64635](https://github.com/grafana/grafana/pull/64635), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Use a completely isolated context for state history writes. [#64989](https://github.com/grafana/grafana/pull/64989), [@alexweav](https://github.com/alexweav)
- **Alerting:** Use displayNameFromDS if available in preview. [#65342](https://github.com/grafana/grafana/pull/65342), [@gillesdemey](https://github.com/gillesdemey)
- **Annotation List:** Fix panel not updating when variable is changed. [#65899](https://github.com/grafana/grafana/pull/65899), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **Annotations:** Ignore unique constraint violations for tags. [#65935](https://github.com/grafana/grafana/pull/65935), [@sakjur](https://github.com/sakjur)
- **Auth:** Fix orgrole picker disabled if isSynced user. [#64033](https://github.com/grafana/grafana/pull/64033), [@eleijonmarck](https://github.com/eleijonmarck)
- **AzureMonitor:** Fix Log Analytics portal links. [#65482](https://github.com/grafana/grafana/pull/65482), [@aangelisc](https://github.com/aangelisc)
- **BrowseDashboards:** Fix move to General folder not working. [#65653](https://github.com/grafana/grafana/pull/65653), [@joshhunt](https://github.com/joshhunt)
- **Catalog:** Show install error with incompatible version. [#65059](https://github.com/grafana/grafana/pull/65059), [@andresmgot](https://github.com/andresmgot)
- **Chore:** Update Grafana to use Alertmanager v0.25.1-0.20230308154952-78fedf89728b. [#64778](https://github.com/grafana/grafana/pull/64778), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **CloudMonitoring:** Add project selector for MQL editor[fix]. [#65567](https://github.com/grafana/grafana/pull/65567), [@alyssabull](https://github.com/alyssabull)
- **CloudWatch Logs:** Fix running logs queries with expressions. [#65306](https://github.com/grafana/grafana/pull/65306), [@iwysiu](https://github.com/iwysiu)
- **CloudWatch Logs:** Fix to make log queries use a relative time if available. [#65236](https://github.com/grafana/grafana/pull/65236), [@kevinwcyu](https://github.com/kevinwcyu)
- **CloudWatch Logs:** Revert "Queries in an expression should run synchronously (#64443)". [#65036](https://github.com/grafana/grafana/pull/65036), [@fridgepoet](https://github.com/fridgepoet)
- **CloudWatch:** Fix cachedQueries insights not being updated for metric queries. [#65495](https://github.com/grafana/grafana/pull/65495), [@kevinwcyu](https://github.com/kevinwcyu)
- **Cloudwatch:** Pass refId from query for expression queries. [#66147](https://github.com/grafana/grafana/pull/66147), [@idastambuk](https://github.com/idastambuk)
- **Dashboards:** Evaluate provisioned dashboard titles in a backwards compatible way. [#65184](https://github.com/grafana/grafana/pull/65184), [@sakjur](https://github.com/sakjur)
- **Dashboards:** Fix Mobile support dashboard issues on new iOS 16.3. [#65542](https://github.com/grafana/grafana/pull/65542), [@axelavargas](https://github.com/axelavargas)
- **Dashboards:** Fix broken internal data links. [#66567](https://github.com/grafana/grafana/pull/66567), [@ifrost](https://github.com/ifrost)
- **Database:** Don't sleep 10ms before every request. [#64832](https://github.com/grafana/grafana/pull/64832), [@bboreham](https://github.com/bboreham)
- **Elasticsearch:** Fix processing of response with multiple group by for alerting. [#65165](https://github.com/grafana/grafana/pull/65165), [@ivanahuckova](https://github.com/ivanahuckova)
- **Elasticsearch:** Handle multiple annotation structures. [#66762](https://github.com/grafana/grafana/pull/66762), [@gabor](https://github.com/gabor)
- **Email:** Mark HTML comments as "safe" in email templates. [#64546](https://github.com/grafana/grafana/pull/64546), [@gillesdemey](https://github.com/gillesdemey)
- **Emails:** Preserve HTML comments. (Enterprise)
- **ErrorHandling:** Fixes issues with bad error messages. [#63775](https://github.com/grafana/grafana/pull/63775), [@torkelo](https://github.com/torkelo)
- **ErrorView:** Better detection of no-data responses. [#65477](https://github.com/grafana/grafana/pull/65477), [@leeoniya](https://github.com/leeoniya)
- **Explore:** Make `DataSourcePicker` visible on small screens. [#65149](https://github.com/grafana/grafana/pull/65149), [@abdulhdr1](https://github.com/abdulhdr1)
- **Fix:** DataLinks from data sources override user defined data link. [#65996](https://github.com/grafana/grafana/pull/65996), [@axelavargas](https://github.com/axelavargas)
- **Fix:** Top table rendering and update docs. [#64497](https://github.com/grafana/grafana/pull/64497), [@joey-grafana](https://github.com/joey-grafana)
- **Frontend:** Fix broken links in /plugins when pathname has a trailing slash. [#64348](https://github.com/grafana/grafana/pull/64348), [@gassiss](https://github.com/gassiss)
- **Geomap:** Fix route layer zoom behavior. [#63409](https://github.com/grafana/grafana/pull/63409), [@drew08t](https://github.com/drew08t)
- **Google Cloud Monitoring:** Fix project variable. [#66524](https://github.com/grafana/grafana/pull/66524), [@asimpson](https://github.com/asimpson)
- **HeatMap:** Sort y buckets when all bucket names are numeric. [#65322](https://github.com/grafana/grafana/pull/65322), [@leeoniya](https://github.com/leeoniya)
- **InfluxDB:** Fix querying with hardcoded retention policy. [#66466](https://github.com/grafana/grafana/pull/66466), [@itsmylife](https://github.com/itsmylife)
- **InfluxDB:** Fix sending retention policy with InfluxQL queries. [#63820](https://github.com/grafana/grafana/pull/63820), [@itsmylife](https://github.com/itsmylife)
- **KVStore:** Include database field in migration. [#62790](https://github.com/grafana/grafana/pull/62790), [@zoltanbedi](https://github.com/zoltanbedi)
- **LDAP:** Always synchronize Server Admin role through role sync if role sync is enabled. [#58820](https://github.com/grafana/grafana/pull/58820), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Library panels:** Ensure pagination controls are always correctly displayed. [#65283](https://github.com/grafana/grafana/pull/65283), [@ashharrison90](https://github.com/ashharrison90)
- **Loki:** Fix autocomplete situations with multiple escaped quotes. [#65520](https://github.com/grafana/grafana/pull/65520), [@svennergr](https://github.com/svennergr)
- **MegaMenu:** Fixes mega menu showing scroll indicator when it shouldn't. [#65452](https://github.com/grafana/grafana/pull/65452), [@torkelo](https://github.com/torkelo)
- **Navigation:** Redirect to root page when switching organization. [#66655](https://github.com/grafana/grafana/pull/66655), [@ashharrison90](https://github.com/ashharrison90)
- **Navigation:** Scrolled hamburger menu links now navigate correctly in Safari. [#66261](https://github.com/grafana/grafana/pull/66261), [@ashharrison90](https://github.com/ashharrison90)
- **NestedFolders:** Fix nested folder deletion. [#63572](https://github.com/grafana/grafana/pull/63572), [@ying-jeanne](https://github.com/ying-jeanne)
- **New Panel Header:** Fix when clicking submenu item the parent menu item onClick get's triggered. [#65691](https://github.com/grafana/grafana/pull/65691), [@axelavargas](https://github.com/axelavargas)
- **Phlare:** Fix error when there are no profileTypes to send from backend. [#65455](https://github.com/grafana/grafana/pull/65455), [@aocenas](https://github.com/aocenas)
- **PieChart:** Show long labels properly. [#65699](https://github.com/grafana/grafana/pull/65699), [@mdvictor](https://github.com/mdvictor)
- **PluginExtensions:** Fixed issue with incorrect type being exposed when configuring an extension. [#65910](https://github.com/grafana/grafana/pull/65910), [@mckn](https://github.com/mckn)
- **Plugins:** Ensure proxy route bodies are valid JSON. [#61771](https://github.com/grafana/grafana/pull/61771), [@wbrowne](https://github.com/wbrowne)
- **Plugins:** Fix width for README pages with tables. [#66872](https://github.com/grafana/grafana/pull/66872), [@andresmgot](https://github.com/andresmgot)
- **Plugins:** Markdown fetch retry with lowercase. [#65384](https://github.com/grafana/grafana/pull/65384), [@wbrowne](https://github.com/wbrowne)
- **Plugins:** Skip instrumenting plugin build info for core and bundled plugins. [#66105](https://github.com/grafana/grafana/pull/66105), [@wbrowne](https://github.com/wbrowne)
- **PublicDashboards:** Query collapsed panels inside rows. [#64779](https://github.com/grafana/grafana/pull/64779), [@evictorero](https://github.com/evictorero)
- **Query Splitting:** Fix for handling queries with no requestId. [#66161](https://github.com/grafana/grafana/pull/66161), [@domasx2](https://github.com/domasx2)
- **SQL Datasources:** Fix variable throwing error if query returns no data. [#65937](https://github.com/grafana/grafana/pull/65937), [@mdvictor](https://github.com/mdvictor)
- **SQL Datasources:** Prevent Call Stack Overflows with Large Numbers of Values for Variable. [#64937](https://github.com/grafana/grafana/pull/64937), [@codeincarnate](https://github.com/codeincarnate)
- **SQLStore:** Fix SQLite error propagation if query retries are disabled. [#64904](https://github.com/grafana/grafana/pull/64904), [@papagian](https://github.com/papagian)
- **Stat Panel:** Fix issue with clipping text values. [#64300](https://github.com/grafana/grafana/pull/64300), [@JoaoSilvaGrafana](https://github.com/JoaoSilvaGrafana)
- **Table Panel:** Fix panel migration for options cell type. [#66305](https://github.com/grafana/grafana/pull/66305), [@ryantxu](https://github.com/ryantxu)
- **Table:** Fix migrations from old angular table for cell color modes. [#65760](https://github.com/grafana/grafana/pull/65760), [@torkelo](https://github.com/torkelo)
- **Table:** Fixes issue with pagination summary causing scrollbar. [#65189](https://github.com/grafana/grafana/pull/65189), [@torkelo](https://github.com/torkelo)
- **Table:** Fixes table panel gauge alignment. [#64994](https://github.com/grafana/grafana/pull/64994), [@torkelo](https://github.com/torkelo)
- **TablePanel:** Fix table cells overflowing when there are multiple data links. [#65711](https://github.com/grafana/grafana/pull/65711), [@oscarkilhed](https://github.com/oscarkilhed)
- **TablePanel:** fix footer bug; no footer calculated values after "hidden" column override. [#64269](https://github.com/grafana/grafana/pull/64269), [@baldm0mma](https://github.com/baldm0mma)
- **Team sync:** Fix apply query string instead of param. (Enterprise)
- **Templating:** Allow percent encoding of variable with custom all. [#65266](https://github.com/grafana/grafana/pull/65266), [@dprokop](https://github.com/dprokop)
- **Tempo:** Set default limit if none is provided for traceql queries. [#65039](https://github.com/grafana/grafana/pull/65039), [@domasx2](https://github.com/domasx2)
- **TimeSeries:** Don't extend stepped interpolation to graph edges. [#65657](https://github.com/grafana/grafana/pull/65657), [@leeoniya](https://github.com/leeoniya)
- **TimeSeries:** Improve stacking direction heuristic. [#65499](https://github.com/grafana/grafana/pull/65499), [@leeoniya](https://github.com/leeoniya)
- **Trace View:** Update the queryType to traceql for checking if same trace when clicking span link. [#66645](https://github.com/grafana/grafana/pull/66645), [@ericmustin](https://github.com/ericmustin)
- **TraceView:** Don't require preferredVisualisationType to render. [#64920](https://github.com/grafana/grafana/pull/64920), [@aocenas](https://github.com/aocenas)
- **Utils:** Reimplement util.GetRandomString to avoid modulo bias. [#64481](https://github.com/grafana/grafana/pull/64481), [@DanCech](https://github.com/DanCech)
- **XYChart:** Add all dataset columns in tooltip. [#65027](https://github.com/grafana/grafana/pull/65027), [@mdvictor](https://github.com/mdvictor)
### Breaking changes
`default` named retention policies won't be used to query. Users who have a `default` named retention policy in their `influxdb` database, have to rename it to something else. Having `default` named retention policy is not breaking anything. We will make sure to use the actual default retention policy under the hood. To change the hardcoded retention policy in the `dashboard.json`, users must they select the right retention policy from dropdown and save the panel/dashboard. Issue [#66466](https://github.com/grafana/grafana/issues/66466)
Grafana Alerting rules with `NoDataState` configuration set to `Alerting` will now respect "For" duration. Issue [#65574](https://github.com/grafana/grafana/issues/65574)
Users who use LDAP role sync to only sync Viewer, Editor and Admin roles, but grant Grafana Server Admin role manually will not be able to do that anymore. After this change, LDAP role sync will override any manual changes to Grafana Server Admin role assignments. If `grafana_admin` is left unset in [LDAP role mapping configuration](https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/ldap/#group-mappings), it will default to false. Issue [#58820](https://github.com/grafana/grafana/issues/58820)
### Plugin development fixes & changes
- **DateTimePicker:** Can now select time correctly. [#65428](https://github.com/grafana/grafana/pull/65428), [@eledobleefe](https://github.com/eledobleefe)
- **Grafana UI:** Fix tooltip prop of button component. [#64765](https://github.com/grafana/grafana/pull/64765), [@suleymanbariseser](https://github.com/suleymanbariseser)
- **DateTimePicker:** Add min date support to calendar. [#64632](https://github.com/grafana/grafana/pull/64632), [@nevermind89x](https://github.com/nevermind89x)
- **GrafanaUI:** Implement new component Toggletip. [#64459](https://github.com/grafana/grafana/pull/64459), [@yduartep](https://github.com/yduartep)
- **ContextMenu:** Fix padding and show border based on items. [#63948](https://github.com/grafana/grafana/pull/63948), [@aocenas](https://github.com/aocenas)
<!-- 9.5.0 END -->
<!-- 9.4.17 START -->
# 9.4.17 (2023-10-11)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.10. [#76370](https://github.com/grafana/grafana/issues/76370), [@zerok](https://github.com/zerok)
- **SSE:** DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData). [#74615](https://github.com/grafana/grafana/issues/74615), [@yuri-tceretian](https://github.com/yuri-tceretian)
### Bug fixes
- **BrowseDashboards:** Only remember the most recent expanded folder. [#74812](https://github.com/grafana/grafana/issues/74812), [@joshhunt](https://github.com/joshhunt)
- **SQL Datasources:** Fix variable throwing error if query returns no data. [#74609](https://github.com/grafana/grafana/issues/74609), [@mdvictor](https://github.com/mdvictor)
- **RBAC:** Chore fix hasPermissionInOrg. (Enterprise)
<!-- 9.4.17 END -->
<!-- 9.4.15 START -->
# 9.4.15 (2023-09-18)
### Features and enhancements
- **Chore:** Upgrade Alpine base image to 3.18.3. [#74996](https://github.com/grafana/grafana/issues/74996), [@zerok](https://github.com/zerok)
- **Chore:** Upgrade Go to 1.20.8. [#74981](https://github.com/grafana/grafana/issues/74981), [@zerok](https://github.com/zerok)
<!-- 9.4.15 END -->
<!-- 9.4.14 START -->
# 9.4.14 (2023-09-05)
### Features and enhancements
- **Prometheus:** Add present_over_time syntax highlighting. [#72366](https://github.com/grafana/grafana/issues/72366), [@arnaudlemaignen](https://github.com/arnaudlemaignen)
### Bug fixes
- **LDAP:** Fix user disabling. [#74318](https://github.com/grafana/grafana/issues/74318), [@gamab](https://github.com/gamab)
- **Plugins:** Only configure plugin proxy transport once. [#71740](https://github.com/grafana/grafana/issues/71740), [@wbrowne](https://github.com/wbrowne)
- **InfluxDB:** Interpolate retention policies. [#71202](https://github.com/grafana/grafana/issues/71202), [@itsmylife](https://github.com/itsmylife)
- **Azure Monitor:** Fix bug that did not show alert rule preview. [#68561](https://github.com/grafana/grafana/issues/68561), [@alyssabull](https://github.com/alyssabull)
<!-- 9.4.14 END -->
<!-- 9.4.13 START -->
# 9.4.13 (2023-06-22)
### Bug fixes
- **Auth:** Fixed CVE-2023-3128. [#70579](https://github.com/grafana/grafana/issues/70579), [@zerok](https://github.com/zerok)
<!-- 9.4.13 END -->
<!-- 9.4.12 START -->
# 9.4.12 (2023-06-06)
@@ -414,6 +968,35 @@ Sentry frontend logging provider will be removed with next major version. Issue
- **Toolkit:** Deprecate all plugin related commands. [#60290](https://github.com/grafana/grafana/pull/60290), [@academo](https://github.com/academo)
- **Grafana UI:** Add experimental InteractiveTable component. [#58223](https://github.com/grafana/grafana/pull/58223), [@Elfo404](https://github.com/Elfo404)
<!-- 9.4.0-beta1 END -->
<!-- 9.3.16 START -->
# 9.3.16 (2023-06-22)
### Bug fixes
- **Auth:** Fixed CVE-2023-3128. [#70578](https://github.com/grafana/grafana/issues/70578), [@zerok](https://github.com/zerok)
<!-- 9.3.16 END -->
<!-- 9.3.15 START -->
# 9.3.15 (2023-06-06)
### Bug fixes
- **Alerting:** Require alert.notifications:write permissions to test receivers and templates
- **Auth:** Remove the session cookie only if it's invalid or revoked. [#68796](https://github.com/grafana/grafana/issues/68796), [@mgyongyosi](https://github.com/mgyongyosi)
<!-- 9.3.15 END -->
<!-- 9.3.14 START -->
# 9.3.14 (2023-05-08)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.4. [#67762](https://github.com/grafana/grafana/issues/67762), [@papagian](https://github.com/papagian)
<!-- 9.3.14 END -->
<!-- 9.3.11 START -->
# 9.3.11 (2023-03-22)
@@ -444,26 +1027,6 @@ Sentry frontend logging provider will be removed with next major version. Issue
- **Time Series Panel:** Fix legend text selection in Firefox. [#60809](https://github.com/grafana/grafana/pull/60809), [@codeincarnate](https://github.com/codeincarnate)
<!-- 9.3.7 END -->
<!-- 9.4.0-beta1 END -->
<!-- 9.3.15 START -->
# 9.3.15 (2023-06-06)
### Bug fixes
- **Alerting:** Require alert.notifications:write permissions to test receivers and templates
- **Auth:** Remove the session cookie only if it's invalid or revoked. [#68796](https://github.com/grafana/grafana/issues/68796), [@mgyongyosi](https://github.com/mgyongyosi)
<!-- 9.3.15 END -->
<!-- 9.3.14 START -->
# 9.3.14 (2023-05-08)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.4. [#67762](https://github.com/grafana/grafana/issues/67762), [@papagian](https://github.com/papagian)
<!-- 9.3.14 END -->
<!-- 9.3.6 START -->
# 9.3.6 (2023-01-26)
@@ -790,6 +1353,16 @@ The following functions and classes related to logs are deprecated in the `grafa
- **Toolkit:** Deprecate `component:create` command. [#56086](https://github.com/grafana/grafana/pull/56086), [@academo](https://github.com/academo)
- **Toolkit:** Remove changelog command. [#56073](https://github.com/grafana/grafana/pull/56073), [@gitstart](https://github.com/gitstart)
<!-- 9.3.0-beta1 END -->
<!-- 9.2.20 START -->
# 9.2.20 (2023-06-22)
### Bug fixes
- **Auth:** Fixed CVE-2023-3128. [#70577](https://github.com/grafana/grafana/issues/70577), [@zerok](https://github.com/zerok)
<!-- 9.2.20 END -->
<!-- 9.2.15 START -->
# 9.2.15 (2023-03-22)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

85
.github/CODEOWNERS vendored
View File

@@ -60,17 +60,17 @@
/pkg/README.md @grafana/grafana-backend-group
/pkg/ruleguard.rules.go @grafana/grafana-backend-group
/.bra.toml @grafana/grafana-backend-group
/.golangci.toml @grafana/grafana-backend-group
/.golangci.yml @grafana/grafana-backend-group
/build.go @grafana/grafana-backend-services-squad
/scripts/modowners/ @grafana/grafana-backend-services-squad
/scripts/go-workspace @grafana/grafana-app-platform-squad
/hack/ @grafana/grafana-app-platform-squad
/apps/alerting/ @grafana/alerting-backend
/apps/alerting/ @grafana/alerting-backend @grafana/alerting-frontend
/apps/playlist/ @grafana/grafana-app-platform-squad
/apps/investigation/ @fcjack @matryer
/pkg/api/ @grafana/grafana-backend-group
/pkg/apis/ @grafana/grafana-app-platform-squad
/pkg/apis/alerting_notifications @grafana/grafana-app-platform-squad @grafana/alerting-backend @grafana/alerting-frontend
/pkg/apis/query @grafana/grafana-datasources-core-services
/pkg/apis/userstorage @grafana/grafana-app-platform-squad @grafana/plugins-platform-backend
/pkg/bus/ @grafana/grafana-search-and-storage
@@ -116,7 +116,7 @@
/pkg/apimachinery @grafana/grafana-app-platform-squad
/pkg/apimachinery/identity/ @grafana/identity-squad
/pkg/apimachinery/errutil/ @grafana/grafana-backend-group
/pkg/promlib @grafana/observability-metrics
/pkg/promlib @grafana/oss-big-tent
/pkg/storage/ @grafana/grafana-search-and-storage
/pkg/services/annotations/ @grafana/grafana-search-and-storage
/pkg/services/apikey/ @grafana/identity-squad
@@ -178,7 +178,7 @@
# Logs code, developers environment
/devenv/docker/blocks/loki* @grafana/observability-logs
/devenv/docker/blocks/elastic* @grafana/aws-datasources
/devenv/docker/blocks/self-instrumentation* @grafana/observability-metrics
/devenv/docker/blocks/self-instrumentation* @grafana/oss-big-tent
/devenv/bulk-dashboards/ @grafana/dashboards-squad
/devenv/bulk-folders/ @grafana/grafana-frontend-platform
@@ -188,7 +188,54 @@
/devenv/datasources.yaml @grafana/grafana-backend-group
/devenv/datasources_docker.yaml @grafana/grafana-backend-group
/devenv/dev-dashboards-without-uid/ @grafana/dashboards-squad
/devenv/dev-dashboards/ @grafana/dashboards-squad
/devenv/dev-dashboards/annotations @grafana/dataviz-squad
/devenv/dev-dashboards/migrations @grafana/dataviz-squad
/devenv/dev-dashboards/panel-barchart @grafana/dataviz-squad
/devenv/dev-dashboards/panel-bargauge @grafana/dataviz-squad
/devenv/dev-dashboards/panel-candlestick @grafana/dataviz-squad
/devenv/dev-dashboards/panel-canvas @grafana/dataviz-squad
/devenv/dev-dashboards/panel-datagrid @grafana/dataviz-squad
/devenv/dev-dashboards/panel-gauge @grafana/dataviz-squad
/devenv/dev-dashboards/panel-geomap @grafana/dataviz-squad
/devenv/dev-dashboards/panel-graph @grafana/dataviz-squad
/devenv/dev-dashboards/panel-heatmap @grafana/dataviz-squad
/devenv/dev-dashboards/panel-histogram @grafana/dataviz-squad
/devenv/dev-dashboards/panel-library @grafana/dataviz-squad
/devenv/dev-dashboards/panel-piechart @grafana/dataviz-squad
/devenv/dev-dashboards/panel-stat @grafana/dataviz-squad
/devenv/dev-dashboards/panel-table @grafana/dataviz-squad
/devenv/dev-dashboards/panel-timeline @grafana/dataviz-squad
/devenv/dev-dashboards/panel-timeseries @grafana/dataviz-squad
/devenv/dev-dashboards/panel-trend @grafana/dataviz-squad
/devenv/dev-dashboards/panel-xychart @grafana/dataviz-squad
/devenv/dev-dashboards/transforms @grafana/dataviz-squad
/devenv/dev-dashboards/all-panels.json @grafana/dataviz-squad
/devenv/dev-dashboards/dashboards.go @grafana/dataviz-squad
/devenv/dev-dashboards/home.json @grafana/dataviz-squad
/devenv/dev-dashboards/datasource-elasticsearch/ @grafana/aws-datasources
/devenv/dev-dashboards/datasource-opentsdb/ @grafana/partner-datasources
/devenv/dev-dashboards/datasource-influxdb/ @grafana/partner-datasources
/devenv/dev-dashboards/datasource-mssql/ @grafana/partner-datasources
/devenv/dev-dashboards/datasource-loki/ @grafana/plugins-platform-frontend
/devenv/dev-dashboards/datasource-testdata/ @grafana/plugins-platform-frontend
/devenv/dev-dashboards/datasource-mysql/ @grafana/oss-big-tent
/devenv/dev-dashboards/datasource-postgres/ @grafana/oss-big-tent
/devenv/dev-dashboards/e2e-repeats/ @grafana/grafana-frontend-platform
/devenv/dev-dashboards/panel-text @grafana/grafana-frontend-platform
/devenv/dev-dashboards/scenarios @grafana/grafana-frontend-platform
/devenv/dev-dashboards/feature-templating/ @grafana/dashboards-squad
/devenv/dev-dashboards/panel-common @grafana/dashboards-squad
/devenv/dev-dashboards/panel-dashlist @grafana/dashboards-squad
/devenv/dev-dashboards/live @grafana/dashboards-squad
/devenv/dev-dashboards/panel-flamegraph/ @grafana/observability-traces-and-profiling
/devenv/dev-dashboards/panel-polystat @grafana/plugins-platform-frontend
/devenv/dev-dashboards/extensions/ @grafana/plugins-platform-frontend
/devenv/docker/blocks/alert_webhook_listener/ @grafana/alerting-backend
/devenv/docker/blocks/caddy_tls/ @grafana/alerting-backend
/devenv/docker/blocks/clickhouse/ @grafana/partner-datasources
@@ -217,9 +264,10 @@
/devenv/docker/blocks/opentsdb/ @grafana/partner-datasources
/devenv/docker/blocks/postgres/ @grafana/oss-big-tent
/devenv/docker/blocks/postgres_tests/ @grafana/oss-big-tent
/devenv/docker/blocks/prometheus/ @grafana/observability-metrics
/devenv/docker/blocks/prometheus_random_data/ @grafana/observability-metrics
/devenv/docker/blocks/prometheus_high_card/ @grafana/observability-metrics
/devenv/docker/blocks/prometheus/ @grafana/oss-big-tent
/devenv/docker/blocks/prometheus_random_data/ @grafana/oss-big-tent
/devenv/docker/blocks/prometheus_high_card/ @grafana/oss-big-tent
/devenv/docker/blocks/prometheus_utf8/ @grafana/oss-big-tent
/devenv/docker/blocks/pyroscope/ @grafana/observability-traces-and-profiling
/devenv/docker/blocks/redis/ @bergquist
/devenv/docker/blocks/sensugo/ @grafana/grafana-backend-group
@@ -267,7 +315,7 @@
/pkg/tsdb/cloud-monitoring/ @grafana/partner-datasources
# Observability backend code
/pkg/tsdb/prometheus/ @grafana/observability-metrics
/pkg/tsdb/prometheus/ @grafana/oss-big-tent
/pkg/tsdb/elasticsearch/ @grafana/aws-datasources
/pkg/tsdb/loki/ @grafana/observability-logs
/pkg/tsdb/tempo/ @grafana/observability-traces-and-profiling
@@ -297,7 +345,6 @@
/pkg/modules/ @grafana/grafana-app-platform-squad
/pkg/services/grpcserver/ @grafana/grafana-search-and-storage
/pkg/generated @grafana/grafana-app-platform-squad
/pkg/services/unifiedSearch/ @grafana/grafana-search-and-storage
# Alerting
/pkg/services/ngalert/ @grafana/alerting-backend
@@ -317,7 +364,7 @@
/pkg/services/datasourceproxy/ @grafana/plugins-platform-backend
/pkg/services/datasources/ @grafana/plugins-platform-backend
/pkg/services/pluginsintegration/ @grafana/plugins-platform-backend
/pkg/plugins/pfs/ @grafana/plugins-platform-backend @grafana/grafana-as-code
/pkg/plugins/codegen/pfs/ @grafana/plugins-platform-backend @grafana/grafana-as-code
/pkg/tsdb/grafana-testdata-datasource/ @grafana/plugins-platform-backend
/pkg/tsdb/Magefile.go @grafana/plugins-platform-backend
/pkg/services/pluginsintegration/pluginsettings/ @grafana/plugins-platform-backend
@@ -350,7 +397,7 @@
/packages/grafana-o11y-ds-frontend/src/TraceToMetrics/ @grafana/observability-traces-and-profiling
/packages/grafana-o11y-ds-frontend/src/TraceToProfiles/ @grafana/observability-traces-and-profiling
/packages/grafana-plugin-configs/ @grafana/plugins-platform-frontend
/packages/grafana-prometheus/ @grafana/observability-metrics
/packages/grafana-prometheus/ @grafana/oss-big-tent
/packages/grafana-schema/src/**/*canvas* @grafana/dataviz-squad
/packages/grafana-schema/src/**/*tempo* @grafana/observability-traces-and-profiling
/packages/grafana-sql/ @grafana/partner-datasources @grafana/oss-big-tent
@@ -530,7 +577,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/features/explore/Logs/ @grafana/observability-logs
/public/app/features/explore/RawPrometheus/ @grafana/observability-metrics
/public/app/features/explore/RawPrometheus/ @grafana/oss-big-tent
/public/app/features/explore/NodeGraph/ @grafana/observability-traces-and-profiling
/public/app/features/explore/FlameGraph/ @grafana/observability-traces-and-profiling
@@ -573,7 +620,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
/scripts/trigger_windows_build.sh @grafana/grafana-developer-enablement-squad
/scripts/cleanup-husky.sh @grafana/frontend-ops
/scripts/verify-repo-update/ @grafana/grafana-developer-enablement-squad
/scripts/generate-icon-bundle.js @grafana/plugins-platform-frontend @grafana/grafana-frontend-platform
/scripts/generate-rtk-apis.ts @grafana/grafana-frontend-platform
/scripts/generate-alerting-rtk-apis.ts @grafana/alerting-frontend
/scripts/levitate-parse-json-report.js @grafana/plugins-platform-frontend
@@ -586,7 +632,6 @@ playwright.config.ts @grafana/plugins-platform-frontend
.pa11yci.conf.js @grafana/grafana-frontend-platform
.pa11yci-pr.conf.js @grafana/grafana-frontend-platform
.betterer.results @grafanabot
.betterer.results.json @grafanabot
.betterer.ts @grafana/grafana-frontend-platform
# @grafana/ui component documentation
@@ -611,7 +656,7 @@ playwright.config.ts @grafana/plugins-platform-frontend
/public/app/plugins/datasource/mysql/ @grafana/oss-big-tent
/public/app/plugins/datasource/opentsdb/ @grafana/partner-datasources
/public/app/plugins/datasource/grafana-postgresql-datasource/ @grafana/oss-big-tent
/public/app/plugins/datasource/prometheus/ @grafana/observability-metrics
/public/app/plugins/datasource/prometheus/ @grafana/oss-big-tent
/public/app/plugins/datasource/cloud-monitoring/ @grafana/partner-datasources
/public/app/plugins/datasource/zipkin/ @grafana/oss-big-tent
/public/app/plugins/datasource/tempo/ @grafana/observability-traces-and-profiling
@@ -701,7 +746,7 @@ embed.go @grafana/grafana-as-code
/.github/pr-checks.json @tolzhabayev
/.github/pr-commands.json @tolzhabayev
/.github/renovate.json5 @grafana/frontend-ops
/.github/teams.yml @armandgrillet
/.github/workflows/auto-triager/ @grafana/plugins-platform-frontend
/.github/workflows/alerting-swagger-gen.yml @grafana/alerting-backend
/.github/workflows/auto-milestone.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/backport.yml @grafana/grafana-developer-enablement-squad
@@ -715,9 +760,9 @@ embed.go @grafana/grafana-as-code
/.github/workflows/community-release.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/detect-breaking-changes-* @grafana/plugins-platform-frontend
/.github/workflows/doc-validator.yml @grafana/docs-tooling
/.github/workflows/deploy-pr-preview.yml @grafana/docs-tooling
/.github/workflows/epic-add-to-platform-ux-parent-project.yml @meanmina
/.github/workflows/github-release.yml @grafana/grafana-developer-enablement-squad
/.github/workflows/issue-labeled.yml @armandgrillet
/.github/workflows/issue-opened.yml @grafana/grafana-community-support
/.github/workflows/metrics-collector.yml @torkelo
/.github/workflows/milestone.yml @tolzhabayev
@@ -749,7 +794,7 @@ embed.go @grafana/grafana-as-code
/.github/workflows/pr-go-workspace-check.yml @grafana/grafana-app-platform-squad
/.github/workflows/pr-dependabot-update-go-workspace.yml @grafana/grafana-app-platform-squad
/.github/workflows/pr-k8s-codegen-check.yml @grafana/grafana-app-platform-squad
/.github/workflows/go_lint.yml @grafana/grafana-backend-services-squad
/.github/workflows/go-lint.yml @grafana/grafana-backend-services-squad
/.github/workflows/trivy-scan.yml @grafana/grafana-backend-services-squad
/.github/workflows/changelog.yml @zserge
/.github/workflows/actions/changelog @zserge

80
.github/bot.md vendored
View File

@@ -28,3 +28,83 @@ try to cherry-pick the PR merge commit into that branch and open a PR. You must
If there are merge conflicts the bot will write a comment on the source PR saying the cherry-pick failed. In this case you have to do the cherry pick and backport PR manually.
The backport logic is written [here](https://github.com/grafana/grafana-github-actions/blob/main/backport/backport.ts)
## Auto triager bot
The auto triager bot is a github action that **assigns** labels to issues based on the issue contents. The logic to assign
labels is its own program and lives [here](https://github.com/grafana/auto-triager). It uses an LLM to do this.
The bot runs **every time** a new issue is opened in the grafana/grafana repository. You can find the bot definition [here](https://github.com/grafana/grafana/blob/main/.github/workflows/issue-opened.yml#L61)
The job only assign labels when the issue author is not a member of the Grafana organization in **GitHub**. The bot concurrency is 1.
This bot is not responsible for assigning teams, the [commands](https://github.com/grafana/grafana/blob/main/.github/workflows/commands.yml) workflow is responsible for doing that
### General diagram
```mermaid
sequenceDiagram
actor User
participant GH as GitHub
participant AT as Auto Triager Job
participant ATP as Auto Triager Program
participant LLM as LLM Service
participant CJ as Commands Job
User->>GH: Opens Issue
GH->>GH: Check if user in Grafana org
alt User not in Grafana org
GH->>AT: Trigger Auto Triager Job
AT->>ATP: Execute program
ATP->>LLM: Send issue content & categories
LLM-->>ATP: Return matching categories
ATP-->>GH: Assign labels to issue
GH->>CJ: Trigger Commands Job
CJ->>CJ: Read commands.json
CJ-->>GH: Assign teams based on labels
end
```
### Team definitions
The team associated with labels are defined [here](https://github.com/grafana/grafana/blob/main/.github/commands.json).
This bot is not responsible for assigning teams, the [commands](https://github.com/grafana/grafana/blob/main/.github/workflows/commands.yml) workflow is responsible for doing that.
The commands workflow code can be found [here](https://github.com/grafana/grafana-github-actions/tree/main/commands)
### Categories/Labels definitions
The categories (or labels) and the types used to categorize issues are defined in this same repository [here](https://github.com/grafana/grafana/tree/main/.github/workflows/auto-triager) the [prompt](https://github.com/grafana/grafana/blob/main/.github/workflows/auto-triager/prompt.txt) that is passed to the LLM is also defined there.
If you are adding a new category in the auto-triager repository you must define a team that owns the label in the
[commands.json](https://github.com/grafana/grafana/blob/main/.github/commands.json).
If you remove a label from the [commands.json](https://github.com/grafana/grafana/blob/main/.github/commands.json) and it doesn't have any other
team associated with it you must remove it from the [labels file](https://github.com/grafana/grafana/blob/main/.github/workflows/auto-triager/labels.txt)
### Secrets
The bot secrets live in the vault. It uses a [shared workflow](https://github.com/grafana/shared-workflows/tree/main/actions/get-vault-secrets) to get the vault secrets, the
workflow requires a token with `contents:read` and `id-token:write` scopes for it to work.
### How to detect the bot is working?
The list of [unlabeled issues](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+no%3Alabel) should remain empty as long as the bot is running.
There might be issues in the list if some team member removed all labels, but if the list grows to more
than 5 it is likely the bot is not working correctly.
### What to do if this bot is not working?
You can contact the plugins platform team in slack `#grafana-plugins-platform` and inform about the issue.
### Troubleshooting
Possible reasons why the bot is not working:
* The OpenAI API key is not valid anymore. The action output will show this in its error log. A new key needs to be
generated via the OpenAI UI and its value updated in vault. See [the action](https://github.com/grafana/grafana/blob/main/.github/workflows/issue-opened.yml#L72) to find the correct path to
update the key.
* The Slack webhook URL is not valid anymore. The action output will show this in its error log or the
#triage-automation-ci channel will stop showing messages about issue triaging. A new slack webhook url needs to be
generated for the auto triager app and its value updated in vault.
* This bot is not responsible for assigning teams, the [commands](https://github.com/grafana/grafana/blob/main/.github/workflows/commands.yml) workflow is responsible for doing that

10
.github/commands.json vendored
View File

@@ -96,7 +96,7 @@
"name": "datasource/Prometheus",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/112"
"url": "https://github.com/orgs/grafana/projects/457"
}
},
{
@@ -472,7 +472,7 @@
"name": "type/build-packaging",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/509"
"url": "https://github.com/orgs/grafana/projects/632"
}
},
{
@@ -576,7 +576,7 @@
"name": "area/exploremetrics",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/112"
"url": "https://github.com/orgs/grafana/projects/516"
}
},
{
@@ -616,7 +616,7 @@
"name": "area/security",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/470"
"url": "https://github.com/orgs/grafana/projects/476"
}
},
{
@@ -728,7 +728,7 @@
"name": "area/backend/db/sql",
"action": "addToProject",
"addToProject": {
"url": "https://github.com/orgs/grafana/projects/457"
"url": "https://github.com/orgs/grafana/projects/599"
}
},
{

View File

@@ -8,6 +8,7 @@ updates:
directories:
- "/"
- "/apps/playlist"
- "/apps/investigation"
- "/pkg/aggregator"
- "/pkg/apimachinery"
- "/pkg/apiserver"
@@ -23,3 +24,18 @@ updates:
time: "02:00"
timezone: Etc/UTC
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directories:
- "/"
- "/packaging/docker/custom"
- "/scripts/verify-repo-update"
- "/scripts/build/ci-deploy"
- "/scripts/build/ci-windows-test"
- "/scripts/build/ci-e2e"
- "/scripts/build/ci-wix"
- "/scripts/build/ci-msi-build"
schedule:
interval: "daily"
time: "02:00"
timezone: Etc/UTC
open-pull-requests-limit: 10

View File

@@ -4,16 +4,16 @@
ignoreDeps: [
"@types/history", // this can be removed entirely when we upgrade history since v5 exposes types directly
"history", // we should bump this together with react-router-dom (see https://github.com/grafana/grafana/issues/76744)
"react-router", // we should bump this together with history and react-router-dom
"react-router-dom", // we should bump this together with history (see https://github.com/grafana/grafana/issues/76744)
"loader-utils", // v3 requires upstream changes in ngtemplate-loader. ignore, and remove when we remove angular.
"monaco-editor", // due to us exposing this via @grafana/ui/CodeEditor's props bumping can break plugins
"@fingerprintjs/fingerprintjs", // we don't want to bump to v4 due to licensing changes
"@swc/core", // versions ~1.4.5 contain multiple bugs related to baseUrl resolution breaking builds.
"slate", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"slate-react", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"@types/slate-react", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"@types/slate", // we don't want to continue using this on the long run, use Monaco editor instead of Slate
"storybook-dark-mode", // 4.0.2 causes storybook 8.4 to break with react hooks errors
// Temporarily pause updating lerna and nx until we resolve build issues
"lerna",
"nx"
@@ -68,6 +68,11 @@
reviewers: ["team:grafana/plugins-platform-frontend"],
matchPackageNames: ["@locker/{/,}**"],
},
{
groupName: "augurs",
matchPackageNames: ["@bsull/augurs"],
reviewers: ["sd2k"],
},
],
pin: {
enabled: false,

104
.github/teams.yml vendored
View File

@@ -1,104 +0,0 @@
# The first keys are labels used on issues. All fields are optional.
# Example
test:
# channel-label is used to send a message to a specific channel
# when the label "test" is added to an issue.
channel-label: CXXXXXXXXXX
# Alerting team
area/alerting:
channel-label: C028MCV4R7C
exclude-github-team: alerting-squad
# DataViz squad
area/dataviz:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/legend:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/barchart:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/bargauge:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/candlestick:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/canvas:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/common:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/gauge:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/geomap:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/graph:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/heatmap:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/histogram:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/piechart:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/stat:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/state-timeline:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/status-history:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/timeseries:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/trend:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/panel/xychart:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/tooltip:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/transformations:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/value-mapping:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad
area/units:
channel-label: C04J73AAQ87 # grafana-dataviz
exclude-github-team: dataviz-squad

View File

@@ -0,0 +1,125 @@
area/admin/user
area/alerting
area/annotations
area/auth
area/auth/ldap
area/auth/oauth
area/auth/rbac
area/auth/serviceaccount
area/backend
area/backend/api
area/backend/db
area/backend/db/migration
area/backend/db/mysql
area/backend/db/postgres
area/backend/db/sql
area/backend/db/sqlite
area/configuration
area/dashboard/annotations
area/dashboard/data-links
area/dashboard/edit
area/dashboard/folders
area/dashboard/import
area/dashboard/kiosk
area/dashboard/links
area/dashboard/rows
area/dashboard/scenes
area/dashboard/settings
area/dashboard/snapshot
area/dashboard/templating
area/dashboard/timerange
area/dashboard/tv
area/dashboard/variable
area/dashboards/panel
area/data/export
area/editor
area/explore
area/exploremetrics
area/expressions
area/field/overrides
area/frontend/library-panels
area/frontend/login
area/image-rendering
area/internationalization
area/legend
area/library-panel
area/navigation
area/panel/annotation-list
area/panel/barchart
area/panel/bargauge
area/panel/candlestick
area/panel/canvas
area/panel/dashboard-list
area/panel/edit
area/panel/edit
area/panel/field-override
area/panel/flame-graph
area/panel/gauge
area/panel/geomap
area/panel/heatmap
area/panel/histogram
area/panel/logs
area/panel/node-graph
area/panel/node-graph
area/panel/piechart
area/panel/repeat
area/panel/singlestat
area/panel/stat
area/panel/state-timeline
area/panel/status-history
area/panel/table
area/panel/timeseries
area/panel/traceview
area/panel/trend
area/panel/xychart
area/permissions
area/playlist
area/plugins
area/plugins-catalog
area/provisioning
area/provisioning/datasources
area/public-dashboards
area/query-library
area/recorded-queries
area/scenes
area/search
area/security
area/streaming
area/templating/repeating
area/tooltip
area/transformations
datagrid
datasource/Alertmanager
datasource/Azure
datasource/azure-cosmosdb
datasource/BigQuery
datasource/CloudWatch
datasource/CloudWatch Logs
datasource/CSV
datasource/Elasticsearch
datasource/GitHub
datasource/GoogleCloudMonitoring
datasource/GoogleSheets
datasource/grafana-pyroscope
datasource/Graphite
datasource/InfluxDB
datasource/Jaeger
datasource/JSON
datasource/Loki
datasource/MSSQL
datasource/MySQL
datasource/OpenSearch
datasource/OpenTSDB
datasource/Parca
datasource/Phlare
datasource/Postgres
datasource/Prometheus
datasource/SiteWIse
datasource/Splunk
datasource/Tempo
datasource/TestDataDB
datasource/Timestream
datasource/X-Ray
datasource/Zabbix
datasource/Zipkin
team/grafana-aws-datasources

View File

@@ -0,0 +1,25 @@
You are an expert Grafana issues categorizer.
You are provided with a Grafana issue. Your task is to categorize the issue by analyzing the issue title and description to determine the most relevant category and type from the provided lists. Focus on precision and clarity, selecting only the most pertinent labels based on the issue details. Ensure that your selections reflect the core problem or functionality affected.
The output should be a valid JSON object with the following fields:
* id (string): The ID of the current issue.
* categoryLabel (array of strings): The category labels for the current issue, emphasizing key terms and context.
* typeLabel (array of strings): The type of the current issue, emphasizing clarity and relevance.
**Instructions**:
1. **Contextual Analysis**: Understand the context and intent behind the issue description. Analyze the overall narrative and relationships between different components within Grafana. Consider dependencies and related components to inform your decision.
2. **Category and Type Differentiation**: Use language cues and patterns to differentiate between similar categories and types. Provide examples and counterexamples to clarify distinctions. Prioritize primary components over secondary ones unless they are critical to the issue.
3. **Historical Data Utilization**: Compare current issues with past resolved issues by analyzing similarities in problem descriptions, leveraging patterns to inform categorization. Use historical data to recognize patterns and inform your decision-making.
4. **Confidence Scoring**: Implement a confidence scoring mechanism to flag issues for review if the confidence is below a predefined threshold. Clearly indicate thresholds for high and low confidence predictions. Provide clarifying questions if data is ambiguous.
5. **Feedback Loop Integration**: Integrate feedback from incorrect predictions to refine understanding and improve future predictions. Conduct error analysis to identify patterns in misclassifications and adapt your approach accordingly.
6. **Semantic Analysis**: Evaluate the underlying intent of the issue using semantic analysis, considering broader implications and context. Leverage metadata or historical patterns to improve accuracy.
7. **Avoid Over-Specification**: Maintain precision and conciseness, avoiding unnecessary details. Prioritize clarity and flag for further review if uncertain.
8. **Consistent JSON Formatting**: Ensure the output maintains a consistent JSON structure with uniform formatting for readability and scalability.
**Next Steps and Insights**:
- Suggest potential next steps or resources that could help address the issue, providing actionable insights to enhance user engagement.
- Regularly test responses against edge cases to ensure robustness and adaptability.
- Stay updated with changes in category and type lists to remain current.
Provide a brief explanation of the categorization decision, highlighting key terms or context that influenced the choice. Use user-centric language and technical details to ensure the explanation is comprehensive and insightful.

View File

@@ -0,0 +1,30 @@
type/accessibility
type/angular-2-react
type/browser-compatibility
type/bug
type/build-packaging
type/chore
type/ci
type/cleanup
type/codegen
type/community
type/debt
type/design
type/discussion
type/docs
type/duplicate
type/e2e
type/epic
type/feature-request
type/feature-toggle-enable
type/feature-toggle-removal
type/performance
type/poc
type/project
type/proposal
type/question
type/refactor
type/regression
type/roadmap
type/tech
type/ux

24
.github/workflows/deploy-pr-preview.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Deploy pr preview
on:
pull_request:
types:
- opened
- synchronize
- closed
paths:
- "docs/sources/**"
jobs:
deploy-pr-preview:
if: ${{ ! github.event.pull_request.head.repo.fork }}
uses: grafana/writers-toolkit/.github/workflows/deploy-preview.yml@main
with:
sha: ${{ github.event.pull_request.head.sha }}
branch: ${{ github.head_ref }}
event_number: ${{ github.event.number }}
title: ${{ github.event.pull_request.title }}
repo: grafana
website_directory: content/docs/grafana/latest
relative_prefix: /docs/grafana/latest/
index_file: true

View File

@@ -31,7 +31,7 @@ jobs:
path: './pr'
- uses: actions/setup-node@v4
with:
node-version: 20.9.0
node-version: 22.11.0
- name: Get yarn cache directory path
id: yarn-cache-dir-path
@@ -79,7 +79,7 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20.9.0
node-version: 22.11.0
- name: Get yarn cache directory path
id: yarn-cache-dir-path
@@ -126,7 +126,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.9.0
node-version: 22.11.0
- name: Get built packages from pr
uses: actions/download-artifact@v4
@@ -265,7 +265,7 @@ jobs:
- name: Send Slack Message via Payload
id: slack
if: steps.levitate-run.outputs.exit_code == 1 && steps.does-label-exist.outputs.result == 0 && github.repository == 'grafana/grafana'
uses: grafana/shared-workflows/actions/send-slack-message@main
uses: grafana/shared-workflows/actions/send-slack-message@7b628e7352c2dea057c565cc4fcd5564d5f396c0 #v1.0.0
with:
channel-id: "C031SLFH6G0"
payload: |

View File

@@ -3,7 +3,7 @@ on:
push:
paths:
- pkg/**
- .github/workflows/go_lint.yml
- .github/workflows/go-lint.yml
- go.*
branches:
- main
@@ -20,13 +20,11 @@ jobs:
- uses: actions/setup-go@v5
with:
go-version-file: ./go.mod
- run: CODEGEN_VERIFY=1 make gen-cue
- run: make gen-go
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60.1
version: v1.62.0
args: |
--config .golangci.toml --max-same-issues=0 --max-issues-per-linter=0 --verbose $(./scripts/go-workspace/golangci-lint-includes.sh)
skip-cache: true
--verbose $(go list -m -f '{{.Dir}}' | xargs -I{} sh -c 'test ! -f {}/.nolint && echo {}/...')
install-mode: binary

View File

@@ -1,99 +0,0 @@
name: Notify Slack channel based on new issue label
on:
issues:
types: [labeled]
jobs:
config:
runs-on: "ubuntu-latest"
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.SLACK_WEBHOOK_URL != '') || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
notify:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-latest
steps:
- name: "Download teams.yml to know which label is for which team"
run: wget https://raw.githubusercontent.com/grafana/grafana/main/.github/teams.yml
- name: "Determine which team to notify"
run: |
# Default to null values.
CHANNEL="null"
TEAM="null"
echo "${{ github.event.label.name }} label added"
export CURRENT_LABEL="${{ github.event.label.name }}" # Enable the use of the label in yq evaluations
# yq is installed by default in ubuntu-latest
if [[ $(yq e 'keys | .[] | select(. == env(CURRENT_LABEL))' teams.yml ) ]]; then
# Check if we have a channel set to notify on comments.
if [[ $(yq '.[env(CURRENT_LABEL)] | has("channel-label")' teams.yml ) == true ]]; then
CHANNEL=$(yq '.[env(CURRENT_LABEL)].channel-label' teams.yml)
echo "Ready to send issue to channel ID ${CHANNEL}"
fi
if [[ $(yq '.[env(CURRENT_LABEL)] | has("exclude-github-team")' teams.yml ) == true ]]; then
TEAM=$(yq '.[env(CURRENT_LABEL)].exclude-github-team' teams.yml)
echo "Will not send issue to channel if issue author is part of the team ${TEAM}"
fi
fi
# set environment for next steps
echo "CHANNEL=${CHANNEL}" >> "$GITHUB_ENV"
echo "TEAM=${TEAM}" >> "$GITHUB_ENV"
- name: "Prepare payload"
uses: frabert/replace-string-action@v2.5
id: preparePayload
with:
# replace double quotes with single quotes to avoid breaking the JSON payload sent to Slack
string: ${{ github.event.issue.title }}
pattern: '"'
replace-with: "'"
flags: 'g'
- name: Get Token
id: get_workflow_token
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
with:
app_id: ${{ secrets.APP_GRAFANA_TEAM_CHECKER_ID }}
private_key: ${{ secrets.APP_GRAFANA_TEAM_CHECKER_KEY }}
- name: "Check that issue author is not part of the team"
if: ${{ env.TEAM != 'null' }}
run: |
response=$(gh api /orgs/grafana/teams/${{ env.TEAM }}/memberships/${{ github.event.issue.user.login }} -i -H "Accept: application/vnd.github.v3+json")
STATUS_CODE=$(echo "$response" | head -n 1 | cut -d' ' -f2)
if [ "$STATUS_CODE" -eq "404" ]; then
echo "The user was not found in the team."
echo "USER_FOUND=false" >> "$GITHUB_ENV"
else
echo "The user was potentially found in the team"
echo "USER_FOUND=maybe" >> "$GITHUB_ENV"
fi
env:
GITHUB_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
- name: "Send Slack notification"
if: ${{ (env.CHANNEL != 'null') && ((env.USER_FOUND == 'false') || (env.TEAM != 'null')) }}
uses: slackapi/slack-github-action@v1.26.0
with:
payload: >
{
"icon_emoji": ":grafana:",
"username": "Grafana issue labeled",
"text": "Issue \"${{ steps.preparePayload.outputs.replaced }}\" labeled \"${{ github.event.label.name }}\": ${{ github.event.issue.html_url }}, please triage.",
"channel": "${{ env.CHANNEL }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

View File

@@ -82,27 +82,20 @@ jobs:
app_id: ${{ env.GH_APP_ID }}
private_key: ${{ env.GH_APP_PEM }}
- name: Checkout auto-triager repository
- name: Checkout
uses: actions/checkout@v4
with:
repository: grafana/auto-triager
path: auto-triager
token: ${{ steps.generate_token.outputs.token }}
- name: Send issue to the auto triager action
id: auto_triage
# https://github.com/grafana/auto-triager/blob/main/action.yml
#uses: grafana/auto-triager@main
uses: ./auto-triager
uses: grafana/auto-triager@main
with:
token: ${{ steps.generate_token.outputs.token }}
issue_number: ${{ github.event.issue.number }}
openai_api_key: ${{ env.AUTOTRIAGER_OPENAI_API_KEY }}
add_labels: true
- name: Labels from auto triage
run: |
echo ${{ steps.auto_triage.outputs.triage_labels }}
labels_file: ${{ github.workspace }}/.github/workflows/auto-triager/labels.txt
types_file: ${{ github.workspace }}/.github/workflows/auto-triager/types.txt
prompt_file: ${{ github.workspace }}/.github/workflows/auto-triager/prompt.txt
- name: "Send Slack notification"
if: ${{ steps.auto_triage.outputs.triage_labels != '' }}

View File

@@ -13,23 +13,47 @@ on:
- '**.go'
permissions:
contents: write
id-token: write
jobs:
update:
runs-on: "ubuntu-latest"
if: ${{ github.actor == 'dependabot[bot]' }}
if: ${{ github.actor == 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository }}
continue-on-error: true
steps:
- name: Retrieve GitHub App secrets
id: get-secrets
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets-v1.0.1
with:
repo_secrets: |
APP_ID=grafana-go-workspace-bot:app-id
APP_INSTALLATION_ID=grafana-go-workspace-bot:app-installation-id
PRIVATE_KEY=grafana-go-workspace-bot:private-key
- name: Generate GitHub App token
id: generate_token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ env.APP_ID }}
private-key: ${{ env.PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
token: ${{ steps.generate_token.outputs.token }}
- name: Set go version
uses: actions/setup-go@v4
with:
go-version-file: go.mod
- name: Configure Git
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git config --local --add --bool push.autoSetupRemote true
- name: Update workspace
run: make update-workspace
@@ -38,12 +62,7 @@ jobs:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
run: |
if ! git diff --exit-code --quiet; then
git config --local user.name "Grot"
git config --local user.email "grot@grafana.com"
git config --local --add --bool push.autoSetupRemote true
echo "Committing and pushing workspace changes"
git remote
git branch -l
git commit -a -m "update workspace"
git push origin $BRANCH_NAME
fi
fi

View File

@@ -20,10 +20,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: grafana/writers-toolkit/publish-technical-documentation-release@publish-technical-documentation-release/v1
- uses: grafana/writers-toolkit/publish-technical-documentation-release@publish-technical-documentation-release/v2
with:
release_tag_regexp: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
release_branch_regexp: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.x$"
release_branch_with_patch_regexp: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
release_tag_regexp: "^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
release_branch_regexp: "^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.x$"
release_branch_with_patch_regexp: "^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
website_directory: content/docs/grafana
version_suffix: ""

View File

@@ -1,20 +1,15 @@
name: syft-sbom-ci
on:
release:
types: [created]
types: [ published ]
workflow_dispatch:
jobs:
syft-sbom:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Anchore SBOM Action
uses: anchore/sbom-action@v0.14.2
uses: grafana/shared-workflows/actions@syft-sbom-v0.0.1
with:
artifact-name: ${{ github.event.repository.name }}-spdx.json
artifact-name: ${{ github.event.repository.name }}-spdx.json

16
.gitignore vendored
View File

@@ -17,13 +17,11 @@ vendor/
tsconfig.tsbuildinfo
__debug_bin*
# Yarn
.yarn/
!.yarn/patches
!.yarn/releases
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
# yarn
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
# Enterprise emails
@@ -41,6 +39,7 @@ __debug_bin*
/devenv/docker/blocks/saml-enterprise
# This is the new place of the block, but I leave the previous here for a while
/devenv/docker/blocks/auth/saml-enterprise
/devenv/docker/blocks/auth/signer
/tmp
tools/phantomjs/phantomjs
@@ -141,6 +140,7 @@ pkg/services/quota/quotaimpl/storage/storage.json
# Ignoring frontend packages specifics
/packages/grafana-ui/.yarn/.cache
/packages/grafana-ui/.storybook/static
/packages/**/dist
/packages/**/compiled
/packages/**/.rpt2_cache
@@ -225,4 +225,4 @@ public/app/plugins/**/dist/
# Mock service worker used for fake API responses in frontend development
public/mockServiceWorker.js
/e2e/test-plugins/*/dist
/e2e/test-plugins/*/dist

View File

@@ -1,315 +0,0 @@
[run]
timeout = "20m"
concurrency = 10
allow-parallel-runners = true
[linters-settings.exhaustive]
default-signifies-exhaustive = true
[linters-settings.revive]
ignore-generated-header = false
severity = "warning"
confidence = 3
[linters-settings.depguard.rules.main]
allow = [] # allow all
deny = [
{ pkg = "io/ioutil", desc = "Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details." },
{ pkg = "gopkg.in/yaml.v2", desc = "Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available" },
{ pkg = "github.com/pkg/errors", desc = "Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library." },
{ pkg = "github.com/xorcare/pointer", desc = "Use pkg/util.Pointer instead, which is a generic one-liner alternative" },
{ pkg = "github.com/gofrs/uuid", desc = "Use github.com/google/uuid instead, which we already depend on." },
{ pkg = "github.com/bmizerany/assert", desc = "Use github.com/stretchr/testify/assert instead, which we already depend on." },
]
[linters-settings.depguard.rules.coreplugins]
deny = [
{ pkg = "github.com/grafana/grafana/pkg/api", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/cmd", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/cuectx", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/extensions", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/kinds", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/middleware", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/modules", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/registry", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/services", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/build", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/codegen", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/events", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/ifaces", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/kindsysreport", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/mocks", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/plugins", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/setting", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/util", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/bus", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/components", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/expr", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/infra", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/login", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/models", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/server", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/tests", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/web", desc = "Core plugins are not allowed to depend on Grafana core packages" },
{ pkg = "github.com/grafana/grafana/pkg/tsdb/intervalv2", desc = "Core plugins are not allowed to depend on Grafana core packages" },
]
files = [
"**/pkg/tsdb/grafana-pyroscope-datasource/*",
"**/pkg/tsdb/grafana-pyroscope-datasource/**/*",
"**/pkg/tsdb/grafana-testdata-datasource/*",
"**/pkg/tsdb/grafana-testdata-datasource/**/*",
"**/pkg/tsdb/azuremonitor/*",
"**/pkg/tsdb/azuremonitor/**/*",
"**/pkg/tsdb/cloud-monitoring/*",
"**/pkg/tsdb/cloud-monitoring/**/*",
"**/pkg/tsdb/mysql/*",
"**/pkg/tsdb/mysql/**/*",
"**/pkg/tsdb/parca/*",
"**/pkg/tsdb/parca/**/*",
"**/pkg/tsdb/tempo/*",
"**/pkg/tsdb/tempo/**/*",
"**/pkg/tsdb/cloudwatch/*",
"**/pkg/tsdb/cloudwatch/**/*",
]
[linters-settings.depguard.rules.apiserver]
list-mode = "lax"
allow = [
"github.com/grafana/grafana/pkg/apimachinery",
"github.com/grafana/grafana/pkg/apiserver",
]
deny = [
{ 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.aggregator]
list-mode = "lax"
allow = [
"github.com/grafana/grafana/pkg/aggregator",
"github.com/grafana/grafana/pkg/semconv",
"github.com/grafana/grafana/pkg/apimachinery",
]
deny = [
{ pkg = "github.com/grafana/grafana/pkg", desc = "apimachinery is not allowed to import grafana core" }
]
files = [
"./pkg/aggregator/*",
"./pkg/aggregator/**/*"
]
[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/**/*"
]
[linters-settings.depguard.rules.storage-unified-resource]
list-mode = "lax"
allow = [
"github.com/grafana/grafana/pkg/apimachinery",
]
deny = [
{ pkg = "github.com/grafana/grafana/pkg", desc = "pkg/storage/unified/resource is not allowed to import grafana core" }
]
files = [
"./pkg/storage/unified/resource/*",
"./pkg/storage/unified/resource/**/*"
]
[linters-settings.depguard.rules.storage-unified-apistore]
list-mode = "lax"
allow = [
"github.com/grafana/grafana/pkg/apimachinery",
"github.com/grafana/grafana/pkg/apiserver",
"github.com/grafana/grafana/pkg/unified/resource",
]
deny = [
{ pkg = "github.com/grafana/grafana/pkg", desc = "pkg/storage/unified/apistore is not allowed to import grafana core" }
]
files = [
"./pkg/storage/unified/apistore/*",
"./pkg/storage/unified/apistore/**/*"
]
[linters-settings.depguard.rules.apps-playlist]
list-mode = "lax"
allow = []
deny = [
{ pkg = "github.com/grafana/grafana/pkg", desc = "apps/playlist is not allowed to import grafana core" }
]
files = [
"./apps/playlist/*",
"./apps/playlist/**/*"
]
[linters-settings.gocritic]
enabled-checks = ["ruleguard"]
[linters-settings.gocritic.settings.ruleguard]
rules = "pkg/ruleguard.rules.go"
[linters-settings.misspell]
ignore-words = ["Unknwon", "Creater"]
[linters-settings.nakedret]
max-func-lines = 60
[linters]
disable-all = true
# try to keep this list sorted, please
enable = [
"asciicheck",
"bodyclose",
"depguard",
"dogsled",
"errcheck",
"errorlint",
"exhaustive",
"exportloopref",
# "gochecknoinits",
# "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?"
"gocyclo",
"goimports",
"goprintffuncname",
"gosec",
"gosimple",
"govet",
"ineffassign",
"misspell",
"nakedret",
"prealloc",
"revive",
"staticcheck",
"stylecheck",
"unconvert",
"unused",
"whitespace",
]
# Disabled linters (might want them later)
# "unparam"
# "rowserrcheck" # The linter doesn't detect that both Scan and Close also returns the error message returned by Err.
[issues]
exclude-use-default = false
max-same-issues = 0
# Enable when appropriate
# Poorly chosen identifier
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1003"
# Enable when appropriate
# Dot imports that aren't in external test packages are discouraged.
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1001"
# Enable when appropriate
# http.CloseNotifier has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: We currently need it in pkg/web/response_writer.go.
[[issues.exclude-rules]]
linters = ["staticcheck"]
text = "SA1019: http.CloseNotifier"
# strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly.
# Use golang.org/x/text/cases instead.
[[issues.exclude-rules]]
linters = ["staticcheck"]
text = "SA1019: strings.Title"
# go.opentelemetry.io/otel/exporters/jaeger" is deprecated: This module is no longer supported. OpenTelemetry dropped support for Jaeger exporter in July 2023.
# Jaeger officially accepts and recommends using OTLP.
# Use [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp] or [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc] instead.
[[issues.exclude-rules]]
linters = ["staticcheck"]
text = "SA1019: \"go.opentelemetry.io/otel/exporters/jaeger\""
[[issues.exclude-rules]]
linters = ["staticcheck"]
text = "use fake service and real access control evaluator instead"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "G108"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "G110"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "G201"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "G202"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "G306"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "401"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "402"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "501"
[[issues.exclude-rules]]
linters = ["gosec"]
text = "404"
[[issues.exclude-rules]]
linters = ["errorlint"]
text = "non-wrapping format verb for fmt.Errorf"
# TODO: Enable
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1000"
# TODO: Enable
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1020"
# TODO: Enable
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1021"
# Remove this when we have go v1.22 in place
# https://stackoverflow.com/a/68247837/767660
[[issues.exclude-rules]]
linters = ["gosec"]
path = '(.+)_test\.go'
text = "G601"

306
.golangci.yml Normal file
View File

@@ -0,0 +1,306 @@
run:
timeout: 10m
concurrency: 10
allow-parallel-runners: true
linters-settings:
exhaustive:
default-signifies-exhaustive: true
revive:
ignore-generated-header: false
severity: warning
confidence: 3
depguard:
rules:
main:
allow: []
deny:
- pkg: io/ioutil
desc: >-
Deprecated: As of Go 1.16, the same functionality is now provided
by package io or package os, and those implementations should be
preferred in new code. See the specific function documentation for
details.
- pkg: gopkg.in/yaml.v2
desc: >-
Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as
gopkg.in/yaml.v3 is now available
- pkg: github.com/pkg/errors
desc: >-
Deprecated: Go 1.13 supports the functionality provided by
pkg/errors in the standard library.
- pkg: github.com/xorcare/pointer
desc: >-
Use pkg/util.Pointer instead, which is a generic one-liner
alternative
- pkg: github.com/gofrs/uuid
desc: 'Use github.com/google/uuid instead, which we already depend on.'
- pkg: github.com/bmizerany/assert
desc: >-
Use github.com/stretchr/testify/assert instead, which we already
depend on.
coreplugins:
deny:
- pkg: github.com/grafana/grafana/pkg/api
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/cmd
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/cuectx
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/extensions
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/kinds
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/middleware
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/modules
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/registry
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/services
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/build
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/codegen
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/events
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/ifaces
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/kindsysreport
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/mocks
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/plugins
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/setting
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/util
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/bus
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/components
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/expr
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/infra
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/login
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/models
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/server
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/tests
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/web
desc: Core plugins are not allowed to depend on Grafana core packages
- pkg: github.com/grafana/grafana/pkg/tsdb/intervalv2
desc: Core plugins are not allowed to depend on Grafana core packages
files:
- '**/pkg/tsdb/grafana-pyroscope-datasource/*'
- '**/pkg/tsdb/grafana-pyroscope-datasource/**/*'
- '**/pkg/tsdb/grafana-testdata-datasource/*'
- '**/pkg/tsdb/grafana-testdata-datasource/**/*'
- '**/pkg/tsdb/azuremonitor/*'
- '**/pkg/tsdb/azuremonitor/**/*'
- '**/pkg/tsdb/cloud-monitoring/*'
- '**/pkg/tsdb/cloud-monitoring/**/*'
- '**/pkg/tsdb/mysql/*'
- '**/pkg/tsdb/mysql/**/*'
- '**/pkg/tsdb/parca/*'
- '**/pkg/tsdb/parca/**/*'
- '**/pkg/tsdb/tempo/*'
- '**/pkg/tsdb/tempo/**/*'
- '**/pkg/tsdb/cloudwatch/*'
- '**/pkg/tsdb/cloudwatch/**/*'
apiserver:
list-mode: lax
allow:
- github.com/grafana/grafana/pkg/apimachinery
- github.com/grafana/grafana/pkg/apiserver
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apiserver is not allowed to import grafana core
files:
- '**/pkg/apiserver/*'
- '**/pkg/apiserver/**/*'
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/**/*'
aggregator:
list-mode: lax
allow:
- github.com/grafana/grafana/pkg/aggregator
- github.com/grafana/grafana/pkg/semconv
- github.com/grafana/grafana/pkg/apimachinery
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apimachinery is not allowed to import grafana core
files:
- ./pkg/aggregator/*
- ./pkg/aggregator/**/*
promlib:
list-mode: lax
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/**/*'
storage-unified-resource:
list-mode: lax
allow:
- github.com/grafana/grafana/pkg/apimachinery
deny:
- pkg: github.com/grafana/grafana/pkg
desc: pkg/storage/unified/resource is not allowed to import grafana core
files:
- ./pkg/storage/unified/resource/*
- ./pkg/storage/unified/resource/**/*
storage-unified-apistore:
list-mode: lax
allow:
- github.com/grafana/grafana/pkg/apimachinery
- github.com/grafana/grafana/pkg/apiserver
- github.com/grafana/grafana/pkg/unified/resource
deny:
- pkg: github.com/grafana/grafana/pkg
desc: pkg/storage/unified/apistore is not allowed to import grafana core
files:
- ./pkg/storage/unified/apistore/*
- ./pkg/storage/unified/apistore/**/*
apps-playlist:
list-mode: lax
allow: []
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apps/playlist is not allowed to import grafana core
files:
- ./apps/playlist/*
- ./apps/playlist/**/*
apps-investigation:
list-mode: lax
allow: []
deny:
- pkg: github.com/grafana/grafana/pkg
desc: apps/investigation is not allowed to import grafana core
files:
- ./apps/investigation/*
- ./apps/investigation/**/*
gocritic:
enabled-checks:
- ruleguard
settings:
ruleguard:
rules: pkg/ruleguard.rules.go
misspell:
ignore-words:
- Unknwon
- Creater
nakedret:
max-func-lines: 60
linters:
disable-all: true
enable:
- asciicheck
- bodyclose
- depguard
- dogsled
- errcheck
- errorlint
- exhaustive
- gocyclo
- goimports
- goprintffuncname
- gosec
- gosimple
- govet
- ineffassign
- misspell
- nakedret
- prealloc
- revive
- staticcheck
- stylecheck
- unconvert
- unused
- whitespace
issues:
exclude-use-default: false
max-same-issues: 0
exclude-dirs:
- devenv
- scripts
exclude-rules:
- linters:
- stylecheck
text: ST1003
- linters:
- stylecheck
text: ST1001
- linters:
- staticcheck
text: 'SA1019: http.CloseNotifier'
- linters:
- staticcheck
text: 'SA1019: strings.Title'
- linters:
- staticcheck
text: 'SA1019: "go.opentelemetry.io/otel/exporters/jaeger"'
- linters:
- staticcheck
text: use fake service and real access control evaluator instead
- linters:
- gosec
text: G108
- linters:
- gosec
text: G110
- linters:
- gosec
text: G115
- linters:
- gosec
text: G201
- linters:
- gosec
text: G202
- linters:
- gosec
text: G306
- linters:
- gosec
text: '401'
- linters:
- gosec
text: '402'
- linters:
- gosec
text: '501'
- linters:
- gosec
text: '404'
- linters:
- errorlint
text: non-wrapping format verb for fmt.Errorf
- linters:
- stylecheck
text: ST1000
- linters:
- stylecheck
text: ST1020
- linters:
- stylecheck
text: ST1021
- linters:
- gosec
path: (.+)_test\.go
text: G601

2
.nvmrc
View File

@@ -1 +1 @@
v20.9.0
v22.11.0

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,63 @@
diff --git a/cjs/history.js b/cjs/history.js
index fcd8ebab613c6d87b9ac824feb30ab1080cf0ef2..4df20d5cb2f9ba5fc8777899aada53f49399560b 100644
--- a/cjs/history.js
+++ b/cjs/history.js
@@ -103,16 +103,6 @@ function createLocation(path, state, key, currentLocation) {
if (state !== undefined && location.state === undefined) location.state = state;
}
- try {
- location.pathname = decodeURI(location.pathname);
- } catch (e) {
- if (e instanceof URIError) {
- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
- } else {
- throw e;
- }
- }
-
if (key) location.key = key;
if (currentLocation) {
diff --git a/esm/history.js b/esm/history.js
index df67820fe3eed558c44fca07a82b0cd409d46720..e0e0d4f69a407e8de782b3fdf8297d42708e110a 100644
--- a/esm/history.js
+++ b/esm/history.js
@@ -80,16 +80,6 @@ function createLocation(path, state, key, currentLocation) {
if (state !== undefined && location.state === undefined) location.state = state;
}
- try {
- location.pathname = decodeURI(location.pathname);
- } catch (e) {
- if (e instanceof URIError) {
- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
- } else {
- throw e;
- }
- }
-
if (key) location.key = key;
if (currentLocation) {
diff --git a/umd/history.js b/umd/history.js
index 80e4ff66c44a2a71d4f842cc05a252e48dd18e9a..f8f4901be95e48c66f5626fbf051747a2ffbe41d 100644
--- a/umd/history.js
+++ b/umd/history.js
@@ -207,16 +207,6 @@
if (state !== undefined && location.state === undefined) location.state = state;
}
- try {
- location.pathname = decodeURI(location.pathname);
- } catch (e) {
- if (e instanceof URIError) {
- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
- } else {
- throw e;
- }
- }
-
if (key) location.key = key;
if (currentLocation) {

File diff suppressed because one or more lines are too long

View File

@@ -26,7 +26,7 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-outdated.cjs
spec: 'https://mskelton.dev/yarn-outdated/v2'
yarnPath: .yarn/releases/yarn-4.5.1.cjs
yarnPath: .yarn/releases/yarn-4.6.0.cjs
# Uncomment the following lines if you want to use Verdaccio local npm registry. Read more at packages/README.md
#npmScopes:
# grafana:

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,8 @@
# syntax=docker/dockerfile:1
ARG BASE_IMAGE=alpine:3.20
ARG JS_IMAGE=node:20-alpine
ARG JS_IMAGE=node:22-alpine
ARG JS_PLATFORM=linux/amd64
ARG GO_IMAGE=golang:1.23.1-alpine
ARG GO_IMAGE=golang:1.23.5-alpine
ARG GO_SRC=go-builder
ARG JS_SRC=js-builder
@@ -21,12 +20,13 @@ COPY plugins-bundled plugins-bundled
COPY public public
COPY LICENSE ./
COPY conf/defaults.ini ./conf/defaults.ini
COPY e2e e2e
RUN apk add --no-cache make build-base python3
RUN yarn install --immutable
COPY tsconfig.json .eslintrc .editorconfig .browserslistrc .prettierrc.js ./
COPY tsconfig.json eslint.config.js .editorconfig .browserslistrc .prettierrc.js ./
COPY scripts scripts
COPY emails emails
@@ -67,6 +67,12 @@ COPY pkg/storage/unified/apistore/go.* pkg/storage/unified/apistore/
COPY pkg/semconv/go.* pkg/semconv/
COPY pkg/aggregator/go.* pkg/aggregator/
COPY apps/playlist/go.* apps/playlist/
COPY apps/investigation/go.* apps/investigation/
COPY apps apps
COPY kindsv2 kindsv2
COPY apps/alerting/notifications/go.* apps/alerting/notifications/
COPY pkg/codegen/go.* pkg/codegen/
COPY pkg/plugins/codegen/go.* pkg/plugins/codegen/
RUN go mod download
RUN if [[ "$BINGO" = "true" ]]; then \
@@ -77,7 +83,6 @@ RUN if [[ "$BINGO" = "true" ]]; then \
COPY embed.go Makefile build.go package.json ./
COPY cue.mod cue.mod
COPY kinds kinds
COPY kindsv2 kindsv2
COPY local local
COPY packages/grafana-schema packages/grafana-schema
COPY public/app/plugins public/app/plugins

View File

@@ -3,4 +3,5 @@
List of previous team members that have had a big impact on the company or the product and contributed during a long period of time.
- Hugo Häggmark ([Björn Lundén](https://www.bjornlunden.se/))
- Marcus Efraimsson
- [Marcus Efraimsson](https://github.com/marefr)
- [Giordano Ricci](https://github.com/elfo404)

View File

@@ -8,7 +8,7 @@ WIRE_TAGS = "oss"
include .bingo/Variables.mk
GO = go
GO_VERSION = 1.23.1
GO_VERSION = 1.23.5
GO_LINT_FILES ?= $(shell ./scripts/go-workspace/golangci-lint-includes.sh)
GO_TEST_FILES ?= $(shell ./scripts/go-workspace/test-includes.sh)
SH_FILES ?= $(shell find ./scripts -name *.sh)
@@ -310,7 +310,7 @@ test: test-go test-js ## Run all tests.
golangci-lint: $(GOLANGCI_LINT)
@echo "lint via golangci-lint"
$(GOLANGCI_LINT) run \
--config .golangci.toml \
--config .golangci.yml \
$(GO_LINT_FILES)
.PHONY: lint-go

View File

@@ -0,0 +1,5 @@
package common
const InternalPrefix = "grafana.com/"
const ProvenanceStatusAnnotationKey = InternalPrefix + "provenance"
const ProvenanceStatusNone = "none"

View File

@@ -1,4 +1,4 @@
.PHONY: generate
generate:
## --crdencoding none is needed to avoid infinite loop while generating recursive models'
grafana-app-sdk generate -c . -g ./apis --crdencoding none
## --crdencoding none is needed to avoid infinite loop while generating recursive models (see routingtree.cue)
grafana-app-sdk generate -g ./pkg/apis --crdencoding none --nomanifest --postprocess

View File

@@ -1 +0,0 @@
module:"notifications"

View File

@@ -0,0 +1,99 @@
module github.com/grafana/grafana/apps/alerting/notifications
go 1.23.5
replace github.com/grafana/grafana => ../../..
require (
github.com/grafana/grafana v0.0.0-00010101000000-000000000000
github.com/grafana/grafana-app-sdk v0.23.1
k8s.io/apimachinery v0.32.0
k8s.io/apiserver v0.32.0
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f
)
require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/bwmarrin/snowflake v0.3.0 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/coreos/go-semver v0.3.1 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20240821155123-6891eb1d35da // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath-community/go-jmespath v1.1.1 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/client_golang v1.20.5 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.61.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.etcd.io/etcd/api/v3 v3.5.16 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
go.etcd.io/etcd/client/v3 v3.5.16 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
go.opentelemetry.io/otel v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
go.opentelemetry.io/otel/metric v1.33.0 // indirect
go.opentelemetry.io/otel/sdk v1.33.0 // indirect
go.opentelemetry.io/otel/trace v1.33.0 // indirect
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/oauth2 v0.25.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/term v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.9.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect
google.golang.org/grpc v1.69.2 // indirect
google.golang.org/protobuf v1.36.1 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.32.0 // indirect
k8s.io/client-go v0.32.0 // indirect
k8s.io/component-base v0.32.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)

View File

@@ -0,0 +1,309 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cuelang.org/go v0.11.1 h1:pV+49MX1mmvDm8Qh3Za3M786cty8VKPWzQ1Ho4gZRP0=
cuelang.org/go v0.11.1/go.mod h1:PBY6XvPUswPPJ2inpvUozP9mebDVTXaeehQikhZPBz0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg=
github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc=
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo=
github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grafana/grafana-app-sdk v0.23.1 h1:BRpUG0bA0oVxjthkmO2thuJBo3nbjaRSSmZJHw+mA8I=
github.com/grafana/grafana-app-sdk v0.23.1/go.mod h1:KzgPnTJfMeckGmMctv6CJb8Jr/o/5rwARDyjXoeR0Fc=
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20240821155123-6891eb1d35da h1:2E3c/I3ayAy4Z1GwIPqXNZcpUccRapE1aBXA1ho4g7o=
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20240821155123-6891eb1d35da/go.mod h1:p09fvU5ujNL/Ig8HB7g4f+S0zyYbQq3x/f0jA4ujVOM=
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 h1:uGoIog/wiQHI9GAxXO5TJbT0wWKH3O9HhOJW1F9c3fY=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340/go.mod h1:3bDW6wMZJB7tiONtC/1Xpicra6Wp5GgbTbQWCbI5fkc=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jmespath-community/go-jmespath v1.1.1 h1:bFikPhsi/FdmlZhVgSCd2jj1e7G/rw+zyQfyg5UF+L4=
github.com/jmespath-community/go-jmespath v1.1.1/go.mod h1:4gOyFJsR/Gk+05RgTKYrifT7tBPWD8Lubtb5jRrfy9I=
github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ=
github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s=
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf h1:Z2X3Os7oRzpdJ75iPqWZc0HeJWFYNCvKsfpQwFpRNTA=
github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chqDkyE9Z4N61UnQd+KOfgp5Iu53llk=
github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0=
go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I=
go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
go.etcd.io/etcd/client/v2 v2.305.16 h1:kQrn9o5czVNaukf2A2At43cE9ZtWauOtf9vRZuiKXow=
go.etcd.io/etcd/client/v2 v2.305.16/go.mod h1:h9YxWCzcdvZENbfzBTFCnoNumr2ax3F19sKMqHFmXHE=
go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
go.etcd.io/etcd/pkg/v3 v3.5.16 h1:cnavs5WSPWeK4TYwPYfmcr3Joz9BH+TZ6qoUtz6/+mc=
go.etcd.io/etcd/pkg/v3 v3.5.16/go.mod h1:+lutCZHG5MBBFI/U4eYT5yL7sJfnexsoM20Y0t2uNuY=
go.etcd.io/etcd/raft/v3 v3.5.16 h1:zBXA3ZUpYs1AwiLGPafYAKKl/CORn/uaxYDwlNwndAk=
go.etcd.io/etcd/raft/v3 v3.5.16/go.mod h1:P4UP14AxofMJ/54boWilabqqWoW9eLodl6I5GdGzazI=
go.etcd.io/etcd/server/v3 v3.5.16 h1:d0/SAdJ3vVsZvF8IFVb1k8zqMZ+heGcNfft71ul9GWE=
go.etcd.io/etcd/server/v3 v3.5.16/go.mod h1:ynhyZZpdDp1Gq49jkUg5mfkDWZwXnn3eIqCqtJnrD/s=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q=
go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw=
go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA=
go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ=
go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M=
go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM=
go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM=
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s=
go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck=
go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg=
go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU=
google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4=
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484 h1:ChAdCYNQFDk5fYvFZMywKLIijG7TC2m1C2CMEu11G3o=
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484/go.mod h1:KRUmxRI4JmbpAm8gcZM4Jsffi859fo5LQjILwuqj9z8=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU=
google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE=
k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0=
k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg=
k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs=
k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag=
k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8=
k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8=
k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU=
k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk=
sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

View File

@@ -0,0 +1 @@
module: "github.com/grafana/grafana/apps/alerting/notifications/kinds"

View File

@@ -19,7 +19,9 @@ receiver: {
uid?: string
type: string
disableResolveMessage?: bool
settings: bytes
settings: {
[string]: _
}
secureFields?: [string]: bool
}
spec: {
@@ -27,6 +29,9 @@ receiver: {
integrations : [...#Integration]
}
}
selectableFields: [
"spec.title",
]
}
}
}

View File

@@ -10,7 +10,7 @@ templateGroup: {
frontend: false
backend: true
}
pluralName: "TemplatesGroups"
pluralName: "TemplateGroups"
current: "v0alpha1"
versions: {
"v0alpha1": {
@@ -20,6 +20,9 @@ templateGroup: {
content: string
}
}
selectableFields: [
"spec.title",
]
}
}
}

View File

@@ -32,6 +32,9 @@ timeInterval: {
time_intervals: [...#Interval]
}
}
selectableFields: [
"spec.name",
]
}
}
}

View File

@@ -0,0 +1,74 @@
package v0alpha1
import (
"fmt"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apiserver/pkg/registry/generic"
"github.com/grafana/grafana/apps/alerting/common"
)
func (o *Receiver) GetProvenanceStatus() string {
if o == nil || o.Annotations == nil {
return ""
}
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
if !ok || s == "" {
return common.ProvenanceStatusNone
}
return s
}
func (o *Receiver) SetProvenanceStatus(status string) {
if o.Annotations == nil {
o.Annotations = make(map[string]string, 1)
}
if status == "" {
status = common.ProvenanceStatusNone
}
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
}
func (o *Receiver) SetAccessControl(action string) {
if o.Annotations == nil {
o.Annotations = make(map[string]string, 1)
}
o.Annotations[AccessControlAnnotation(action)] = "true"
}
// AccessControlAnnotation returns the key for the access control annotation for the given action.
// Ex. grafana.com/access/canDelete.
func AccessControlAnnotation(action string) string {
return fmt.Sprintf("%s%s/%s", common.InternalPrefix, "access", action)
}
func (o *Receiver) SetInUse(routesCnt int, rules []string) {
if o.Annotations == nil {
o.Annotations = make(map[string]string, 2)
}
o.Annotations[InUseAnnotation("routes")] = fmt.Sprintf("%d", routesCnt)
o.Annotations[InUseAnnotation("rules")] = fmt.Sprintf("%d", len(rules))
}
// InUseAnnotation returns the key for the in-use annotation for the given resource.
// Ex. grafana.com/inUse/routes, grafana.com/inUse/rules.
func InUseAnnotation(resource string) string {
return fmt.Sprintf("%s%s/%s", common.InternalPrefix, "inUse", resource)
}
func SelectableFields(obj *Receiver) fields.Set {
if obj == nil {
return nil
}
selectable := Schema().SelectableFields()
set := make(fields.Set, len(selectable))
for _, field := range selectable {
f, err := field.FieldValueFunc(obj)
if err != nil {
continue
}
set[field.FieldSelector] = f
}
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), set)
}

View File

@@ -0,0 +1,28 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"encoding/json"
"io"
"github.com/grafana/grafana-app-sdk/resource"
)
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
type JSONCodec struct{}
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
return json.NewDecoder(reader).Decode(into)
}
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
return json.NewEncoder(writer).Encode(from)
}
// Interface compliance checks
var _ resource.Codec = &JSONCodec{}

View File

@@ -0,0 +1,32 @@
package v0alpha1
import (
"time"
)
// Metadata defines model for Metadata.
type Metadata struct {
CreatedBy string `json:"createdBy"`
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
UpdateTimestamp time.Time `json:"updateTimestamp"`
UpdatedBy string `json:"updatedBy"`
}
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
// As it is also intended to be generic enough to function with any API Server.
type KubeObjectMetadata struct {
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
}

View File

@@ -0,0 +1,266 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"time"
)
// +k8s:openapi-gen=true
type Receiver struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec Spec `json:"spec"`
Status Status `json:"status"`
}
func (o *Receiver) GetSpec() any {
return o.Spec
}
func (o *Receiver) SetSpec(spec any) error {
cast, ok := spec.(Spec)
if !ok {
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
}
o.Spec = cast
return nil
}
func (o *Receiver) GetSubresources() map[string]any {
return map[string]any{
"status": o.Status,
}
}
func (o *Receiver) GetSubresource(name string) (any, bool) {
switch name {
case "status":
return o.Status, true
default:
return nil, false
}
}
func (o *Receiver) SetSubresource(name string, value any) error {
switch name {
case "status":
cast, ok := value.(Status)
if !ok {
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
}
o.Status = cast
return nil
default:
return fmt.Errorf("subresource '%s' does not exist", name)
}
}
func (o *Receiver) GetStaticMetadata() resource.StaticMetadata {
gvk := o.GroupVersionKind()
return resource.StaticMetadata{
Name: o.ObjectMeta.Name,
Namespace: o.ObjectMeta.Namespace,
Group: gvk.Group,
Version: gvk.Version,
Kind: gvk.Kind,
}
}
func (o *Receiver) SetStaticMetadata(metadata resource.StaticMetadata) {
o.Name = metadata.Name
o.Namespace = metadata.Namespace
o.SetGroupVersionKind(schema.GroupVersionKind{
Group: metadata.Group,
Version: metadata.Version,
Kind: metadata.Kind,
})
}
func (o *Receiver) GetCommonMetadata() resource.CommonMetadata {
dt := o.DeletionTimestamp
var deletionTimestamp *time.Time
if dt != nil {
deletionTimestamp = &dt.Time
}
// Legacy ExtraFields support
extraFields := make(map[string]any)
if o.Annotations != nil {
extraFields["annotations"] = o.Annotations
}
if o.ManagedFields != nil {
extraFields["managedFields"] = o.ManagedFields
}
if o.OwnerReferences != nil {
extraFields["ownerReferences"] = o.OwnerReferences
}
return resource.CommonMetadata{
UID: string(o.UID),
ResourceVersion: o.ResourceVersion,
Generation: o.Generation,
Labels: o.Labels,
CreationTimestamp: o.CreationTimestamp.Time,
DeletionTimestamp: deletionTimestamp,
Finalizers: o.Finalizers,
UpdateTimestamp: o.GetUpdateTimestamp(),
CreatedBy: o.GetCreatedBy(),
UpdatedBy: o.GetUpdatedBy(),
ExtraFields: extraFields,
}
}
func (o *Receiver) SetCommonMetadata(metadata resource.CommonMetadata) {
o.UID = types.UID(metadata.UID)
o.ResourceVersion = metadata.ResourceVersion
o.Generation = metadata.Generation
o.Labels = metadata.Labels
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
if metadata.DeletionTimestamp != nil {
dt := metav1.NewTime(*metadata.DeletionTimestamp)
o.DeletionTimestamp = &dt
} else {
o.DeletionTimestamp = nil
}
o.Finalizers = metadata.Finalizers
if o.Annotations == nil {
o.Annotations = make(map[string]string)
}
if !metadata.UpdateTimestamp.IsZero() {
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
}
if metadata.CreatedBy != "" {
o.SetCreatedBy(metadata.CreatedBy)
}
if metadata.UpdatedBy != "" {
o.SetUpdatedBy(metadata.UpdatedBy)
}
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
if metadata.ExtraFields != nil {
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
if cast, ok := annotations.(map[string]string); ok {
o.Annotations = cast
}
}
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
o.ManagedFields = cast
}
}
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
o.OwnerReferences = cast
}
}
}
}
func (o *Receiver) GetCreatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
}
func (o *Receiver) SetCreatedBy(createdBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
}
func (o *Receiver) GetUpdateTimestamp() time.Time {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
return parsed
}
func (o *Receiver) SetUpdateTimestamp(updateTimestamp time.Time) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
}
func (o *Receiver) GetUpdatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
}
func (o *Receiver) SetUpdatedBy(updatedBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
}
func (o *Receiver) Copy() resource.Object {
return resource.CopyObject(o)
}
func (o *Receiver) DeepCopyObject() runtime.Object {
return o.Copy()
}
// Interface compliance compile-time check
var _ resource.Object = &Receiver{}
// +k8s:openapi-gen=true
type ReceiverList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []Receiver `json:"items"`
}
func (o *ReceiverList) DeepCopyObject() runtime.Object {
return o.Copy()
}
func (o *ReceiverList) Copy() resource.ListObject {
cpy := &ReceiverList{
TypeMeta: o.TypeMeta,
Items: make([]Receiver, len(o.Items)),
}
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
for i := 0; i < len(o.Items); i++ {
if item, ok := o.Items[i].Copy().(*Receiver); ok {
cpy.Items[i] = *item
}
}
return cpy
}
func (o *ReceiverList) GetItems() []resource.Object {
items := make([]resource.Object, len(o.Items))
for i := 0; i < len(o.Items); i++ {
items[i] = &o.Items[i]
}
return items
}
func (o *ReceiverList) SetItems(items []resource.Object) {
o.Items = make([]Receiver, len(items))
for i := 0; i < len(items); i++ {
o.Items[i] = *items[i].(*Receiver)
}
}
// Interface compliance compile-time check
var _ resource.ListObject = &ReceiverList{}

View File

@@ -0,0 +1,46 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
)
// schema is unexported to prevent accidental overwrites
var (
schemaReceiver = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &Receiver{}, &ReceiverList{}, resource.WithKind("Receiver"),
resource.WithPlural("receivers"), resource.WithScope(resource.NamespacedScope), resource.WithSelectableFields([]resource.SelectableField{{
FieldSelector: "spec.title",
FieldValueFunc: func(o resource.Object) (string, error) {
cast, ok := o.(*Receiver)
if !ok {
return "", fmt.Errorf("provided object must be of type *Receiver")
}
return cast.Spec.Title, nil
},
},
}))
kindReceiver = resource.Kind{
Schema: schemaReceiver,
Codecs: map[resource.KindEncoding]resource.Codec{
resource.KindEncodingJSON: &JSONCodec{},
},
}
)
// Kind returns a resource.Kind for this Schema with a JSON codec
func Kind() resource.Kind {
return kindReceiver
}
// Schema returns a resource.SimpleSchema representation of Receiver
func Schema() *resource.SimpleSchema {
return schemaReceiver
}
// Interface compliance checks
var _ resource.Schema = kindReceiver

View File

@@ -0,0 +1,18 @@
package v0alpha1
// Integration defines model for Integration.
// +k8s:openapi-gen=true
type Integration struct {
DisableResolveMessage *bool `json:"disableResolveMessage,omitempty"`
SecureFields map[string]bool `json:"secureFields,omitempty"`
Settings map[string]interface{} `json:"settings"`
Type string `json:"type"`
Uid *string `json:"uid,omitempty"`
}
// Spec defines model for Spec.
// +k8s:openapi-gen=true
type Spec struct {
Integrations []Integration `json:"integrations"`
Title string `json:"title"`
}

View File

@@ -0,0 +1,70 @@
package v0alpha1
// Defines values for OperatorStateState.
const (
OperatorStateStateFailed OperatorStateState = "failed"
OperatorStateStateInProgress OperatorStateState = "in_progress"
OperatorStateStateSuccess OperatorStateState = "success"
)
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState.
// +k8s:openapi-gen=true
type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State OperatorStateState `json:"state"`
}
// OperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type OperatorStateState string
// Status defines model for Status.
// +k8s:openapi-gen=true
type Status struct {
// additionalFields is reserved for future use
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
// operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
}
// StatusOperatorState defines model for status.#OperatorState.
// +k8s:openapi-gen=true
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type StatusOperatorStateState string

View File

@@ -0,0 +1,365 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// Code generated by grafana-app-sdk. DO NOT EDIT.
package v0alpha1
import (
common "k8s.io/kube-openapi/pkg/common"
spec "k8s.io/kube-openapi/pkg/validation/spec"
)
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
return map[string]common.OpenAPIDefinition{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Integration": schema_apis_resource_receiver_v0alpha1_Integration(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.OperatorState": schema_apis_resource_receiver_v0alpha1_OperatorState(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Receiver": schema_apis_resource_receiver_v0alpha1_Receiver(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.ReceiverList": schema_apis_resource_receiver_v0alpha1_ReceiverList(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Spec": schema_apis_resource_receiver_v0alpha1_Spec(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Status": schema_apis_resource_receiver_v0alpha1_Status(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.StatusOperatorState": schema_apis_resource_receiver_v0alpha1_StatusOperatorState(ref),
}
}
func schema_apis_resource_receiver_v0alpha1_Integration(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Integration defines model for Integration.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"disableResolveMessage": {
SchemaProps: spec.SchemaProps{
Type: []string{"boolean"},
Format: "",
},
},
"secureFields": {
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: false,
Type: []string{"boolean"},
Format: "",
},
},
},
},
},
"settings": {
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"type": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"uid": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"settings", "type"},
},
},
}
}
func schema_apis_resource_receiver_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "OperatorState defines model for OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}
func schema_apis_resource_receiver_v0alpha1_Receiver(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
},
},
"spec": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Spec"),
},
},
"status": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Status"),
},
},
},
Required: []string{"metadata", "spec", "status"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
}
}
func schema_apis_resource_receiver_v0alpha1_ReceiverList(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
},
},
"items": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Receiver"),
},
},
},
},
},
},
Required: []string{"metadata", "items"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Receiver", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
}
}
func schema_apis_resource_receiver_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Spec defines model for Spec.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"integrations": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Integration"),
},
},
},
},
},
"title": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"integrations", "title"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Integration"},
}
}
func schema_apis_resource_receiver_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Status defines model for Status.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"additionalFields": {
SchemaProps: spec.SchemaProps{
Description: "additionalFields is reserved for future use",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"operatorStates": {
SchemaProps: spec.SchemaProps{
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.StatusOperatorState"),
},
},
},
},
},
},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.StatusOperatorState"},
}
}
func schema_apis_resource_receiver_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "StatusOperatorState defines model for status.#OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}

View File

@@ -0,0 +1,36 @@
package v0alpha1
import (
"github.com/grafana/grafana/apps/alerting/common"
)
// Re-define some enum values with confusing names
// TODO figure out how we can control name of enum
const (
MatcherTypeNotEqual MatcherType = "!="
MatcherTypeEqualRegex MatcherType = "=~"
MatcherTypeNotEqualRegex MatcherType = "!~"
)
const UserDefinedRoutingTreeName = "user-defined"
func (o *RoutingTree) GetProvenanceStatus() string {
if o == nil || o.Annotations == nil {
return ""
}
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
if !ok || s == "" {
return common.ProvenanceStatusNone
}
return s
}
func (o *RoutingTree) SetProvenanceStatus(status string) {
if o.Annotations == nil {
o.Annotations = make(map[string]string, 1)
}
if status == "" {
status = common.ProvenanceStatusNone
}
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
}

View File

@@ -0,0 +1,28 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"encoding/json"
"io"
"github.com/grafana/grafana-app-sdk/resource"
)
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
type JSONCodec struct{}
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
return json.NewDecoder(reader).Decode(into)
}
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
return json.NewEncoder(writer).Encode(from)
}
// Interface compliance checks
var _ resource.Codec = &JSONCodec{}

View File

@@ -0,0 +1,32 @@
package v0alpha1
import (
"time"
)
// Metadata defines model for Metadata.
type Metadata struct {
CreatedBy string `json:"createdBy"`
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
UpdateTimestamp time.Time `json:"updateTimestamp"`
UpdatedBy string `json:"updatedBy"`
}
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
// As it is also intended to be generic enough to function with any API Server.
type KubeObjectMetadata struct {
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
}

View File

@@ -0,0 +1,266 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"time"
)
// +k8s:openapi-gen=true
type RoutingTree struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec Spec `json:"spec"`
Status Status `json:"status"`
}
func (o *RoutingTree) GetSpec() any {
return o.Spec
}
func (o *RoutingTree) SetSpec(spec any) error {
cast, ok := spec.(Spec)
if !ok {
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
}
o.Spec = cast
return nil
}
func (o *RoutingTree) GetSubresources() map[string]any {
return map[string]any{
"status": o.Status,
}
}
func (o *RoutingTree) GetSubresource(name string) (any, bool) {
switch name {
case "status":
return o.Status, true
default:
return nil, false
}
}
func (o *RoutingTree) SetSubresource(name string, value any) error {
switch name {
case "status":
cast, ok := value.(Status)
if !ok {
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
}
o.Status = cast
return nil
default:
return fmt.Errorf("subresource '%s' does not exist", name)
}
}
func (o *RoutingTree) GetStaticMetadata() resource.StaticMetadata {
gvk := o.GroupVersionKind()
return resource.StaticMetadata{
Name: o.ObjectMeta.Name,
Namespace: o.ObjectMeta.Namespace,
Group: gvk.Group,
Version: gvk.Version,
Kind: gvk.Kind,
}
}
func (o *RoutingTree) SetStaticMetadata(metadata resource.StaticMetadata) {
o.Name = metadata.Name
o.Namespace = metadata.Namespace
o.SetGroupVersionKind(schema.GroupVersionKind{
Group: metadata.Group,
Version: metadata.Version,
Kind: metadata.Kind,
})
}
func (o *RoutingTree) GetCommonMetadata() resource.CommonMetadata {
dt := o.DeletionTimestamp
var deletionTimestamp *time.Time
if dt != nil {
deletionTimestamp = &dt.Time
}
// Legacy ExtraFields support
extraFields := make(map[string]any)
if o.Annotations != nil {
extraFields["annotations"] = o.Annotations
}
if o.ManagedFields != nil {
extraFields["managedFields"] = o.ManagedFields
}
if o.OwnerReferences != nil {
extraFields["ownerReferences"] = o.OwnerReferences
}
return resource.CommonMetadata{
UID: string(o.UID),
ResourceVersion: o.ResourceVersion,
Generation: o.Generation,
Labels: o.Labels,
CreationTimestamp: o.CreationTimestamp.Time,
DeletionTimestamp: deletionTimestamp,
Finalizers: o.Finalizers,
UpdateTimestamp: o.GetUpdateTimestamp(),
CreatedBy: o.GetCreatedBy(),
UpdatedBy: o.GetUpdatedBy(),
ExtraFields: extraFields,
}
}
func (o *RoutingTree) SetCommonMetadata(metadata resource.CommonMetadata) {
o.UID = types.UID(metadata.UID)
o.ResourceVersion = metadata.ResourceVersion
o.Generation = metadata.Generation
o.Labels = metadata.Labels
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
if metadata.DeletionTimestamp != nil {
dt := metav1.NewTime(*metadata.DeletionTimestamp)
o.DeletionTimestamp = &dt
} else {
o.DeletionTimestamp = nil
}
o.Finalizers = metadata.Finalizers
if o.Annotations == nil {
o.Annotations = make(map[string]string)
}
if !metadata.UpdateTimestamp.IsZero() {
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
}
if metadata.CreatedBy != "" {
o.SetCreatedBy(metadata.CreatedBy)
}
if metadata.UpdatedBy != "" {
o.SetUpdatedBy(metadata.UpdatedBy)
}
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
if metadata.ExtraFields != nil {
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
if cast, ok := annotations.(map[string]string); ok {
o.Annotations = cast
}
}
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
o.ManagedFields = cast
}
}
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
o.OwnerReferences = cast
}
}
}
}
func (o *RoutingTree) GetCreatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
}
func (o *RoutingTree) SetCreatedBy(createdBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
}
func (o *RoutingTree) GetUpdateTimestamp() time.Time {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
return parsed
}
func (o *RoutingTree) SetUpdateTimestamp(updateTimestamp time.Time) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
}
func (o *RoutingTree) GetUpdatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
}
func (o *RoutingTree) SetUpdatedBy(updatedBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
}
func (o *RoutingTree) Copy() resource.Object {
return resource.CopyObject(o)
}
func (o *RoutingTree) DeepCopyObject() runtime.Object {
return o.Copy()
}
// Interface compliance compile-time check
var _ resource.Object = &RoutingTree{}
// +k8s:openapi-gen=true
type RoutingTreeList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []RoutingTree `json:"items"`
}
func (o *RoutingTreeList) DeepCopyObject() runtime.Object {
return o.Copy()
}
func (o *RoutingTreeList) Copy() resource.ListObject {
cpy := &RoutingTreeList{
TypeMeta: o.TypeMeta,
Items: make([]RoutingTree, len(o.Items)),
}
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
for i := 0; i < len(o.Items); i++ {
if item, ok := o.Items[i].Copy().(*RoutingTree); ok {
cpy.Items[i] = *item
}
}
return cpy
}
func (o *RoutingTreeList) GetItems() []resource.Object {
items := make([]resource.Object, len(o.Items))
for i := 0; i < len(o.Items); i++ {
items[i] = &o.Items[i]
}
return items
}
func (o *RoutingTreeList) SetItems(items []resource.Object) {
o.Items = make([]RoutingTree, len(items))
for i := 0; i < len(items); i++ {
o.Items[i] = *items[i].(*RoutingTree)
}
}
// Interface compliance compile-time check
var _ resource.ListObject = &RoutingTreeList{}

View File

@@ -0,0 +1,34 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"github.com/grafana/grafana-app-sdk/resource"
)
// schema is unexported to prevent accidental overwrites
var (
schemaRoutingTree = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &RoutingTree{}, &RoutingTreeList{}, resource.WithKind("RoutingTree"),
resource.WithPlural("routingtrees"), resource.WithScope(resource.NamespacedScope))
kindRoutingTree = resource.Kind{
Schema: schemaRoutingTree,
Codecs: map[resource.KindEncoding]resource.Codec{
resource.KindEncodingJSON: &JSONCodec{},
},
}
)
// Kind returns a resource.Kind for this Schema with a JSON codec
func Kind() resource.Kind {
return kindRoutingTree
}
// Schema returns a resource.SimpleSchema representation of RoutingTree
func Schema() *resource.SimpleSchema {
return schemaRoutingTree
}
// Interface compliance checks
var _ resource.Schema = kindRoutingTree

View File

@@ -2,10 +2,10 @@ package v0alpha1
// Defines values for MatcherType.
const (
MatcherTypeNotEqual MatcherType = "!="
MatcherTypeEqual MatcherType = "="
MatcherTypeEqualRegex MatcherType = "=~"
MatcherTypeNotEqualRegex MatcherType = "!~"
MatcherTypeEmpty MatcherType = "!="
MatcherTypeEqual MatcherType = "="
MatcherTypeEqualTilde MatcherType = "=~"
MatcherTypeN1 MatcherType = "!~"
)
// Matcher defines model for Matcher.
@@ -23,7 +23,7 @@ type MatcherType string
// Route defines model for Route.
// +k8s:openapi-gen=true
type Route struct {
Continue bool `json:"continue,omitempty"`
Continue bool `json:"continue"`
GroupBy []string `json:"group_by,omitempty"`
GroupInterval *string `json:"group_interval,omitempty"`
GroupWait *string `json:"group_wait,omitempty"`
@@ -46,7 +46,7 @@ type RouteDefaults struct {
// Spec defines model for Spec.
// +k8s:openapi-gen=true
type RoutingTreeSpec struct {
type Spec struct {
Defaults RouteDefaults `json:"defaults"`
Routes []Route `json:"routes"`
}

View File

@@ -0,0 +1,70 @@
package v0alpha1
// Defines values for OperatorStateState.
const (
OperatorStateStateFailed OperatorStateState = "failed"
OperatorStateStateInProgress OperatorStateState = "in_progress"
OperatorStateStateSuccess OperatorStateState = "success"
)
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState.
// +k8s:openapi-gen=true
type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State OperatorStateState `json:"state"`
}
// OperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type OperatorStateState string
// Status defines model for Status.
// +k8s:openapi-gen=true
type Status struct {
// additionalFields is reserved for future use
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
// operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
}
// StatusOperatorState defines model for status.#OperatorState.
// +k8s:openapi-gen=true
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type StatusOperatorStateState string

View File

@@ -0,0 +1,493 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// Code generated by grafana-app-sdk. DO NOT EDIT.
package v0alpha1
import (
common "k8s.io/kube-openapi/pkg/common"
spec "k8s.io/kube-openapi/pkg/validation/spec"
)
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
return map[string]common.OpenAPIDefinition{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Matcher": schema_apis_resource_routingtree_v0alpha1_Matcher(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.OperatorState": schema_apis_resource_routingtree_v0alpha1_OperatorState(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route": schema_apis_resource_routingtree_v0alpha1_Route(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RouteDefaults": schema_apis_resource_routingtree_v0alpha1_RouteDefaults(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTree": schema_apis_resource_routingtree_v0alpha1_RoutingTree(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTreeList": schema_apis_resource_routingtree_v0alpha1_RoutingTreeList(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Spec": schema_apis_resource_routingtree_v0alpha1_Spec(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Status": schema_apis_resource_routingtree_v0alpha1_Status(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.StatusOperatorState": schema_apis_resource_routingtree_v0alpha1_StatusOperatorState(ref),
}
}
func schema_apis_resource_routingtree_v0alpha1_Matcher(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Matcher defines model for Matcher.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"label": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"type": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"value": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"label", "type", "value"},
},
},
}
}
func schema_apis_resource_routingtree_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "OperatorState defines model for OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}
func schema_apis_resource_routingtree_v0alpha1_Route(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Route defines model for Route.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"continue": {
SchemaProps: spec.SchemaProps{
Default: false,
Type: []string{"boolean"},
Format: "",
},
},
"group_by": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"group_interval": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"group_wait": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"matchers": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Matcher"),
},
},
},
},
},
"mute_time_intervals": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"receiver": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"repeat_interval": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"routes": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route"),
},
},
},
},
},
},
Required: []string{"continue"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Matcher", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route"},
}
}
func schema_apis_resource_routingtree_v0alpha1_RouteDefaults(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "RouteDefaults defines model for RouteDefaults.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"group_by": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"group_interval": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"group_wait": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"receiver": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"repeat_interval": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"receiver"},
},
},
}
}
func schema_apis_resource_routingtree_v0alpha1_RoutingTree(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
},
},
"spec": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Spec"),
},
},
"status": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Status"),
},
},
},
Required: []string{"metadata", "spec", "status"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
}
}
func schema_apis_resource_routingtree_v0alpha1_RoutingTreeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
},
},
"items": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTree"),
},
},
},
},
},
},
Required: []string{"metadata", "items"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTree", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
}
}
func schema_apis_resource_routingtree_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Spec defines model for Spec.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"defaults": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RouteDefaults"),
},
},
"routes": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route"),
},
},
},
},
},
},
Required: []string{"defaults", "routes"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RouteDefaults"},
}
}
func schema_apis_resource_routingtree_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Status defines model for Status.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"additionalFields": {
SchemaProps: spec.SchemaProps{
Description: "additionalFields is reserved for future use",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"operatorStates": {
SchemaProps: spec.SchemaProps{
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.StatusOperatorState"),
},
},
},
},
},
},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.StatusOperatorState"},
}
}
func schema_apis_resource_routingtree_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "StatusOperatorState defines model for status.#OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}

View File

@@ -0,0 +1,47 @@
package v0alpha1
import (
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apiserver/pkg/registry/generic"
"github.com/grafana/grafana/apps/alerting/common"
)
const DefaultTemplateTitle = "Built-in Templates"
func (o *TemplateGroup) GetProvenanceStatus() string {
if o == nil || o.Annotations == nil {
return ""
}
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
if !ok || s == "" {
return common.ProvenanceStatusNone
}
return s
}
func (o *TemplateGroup) SetProvenanceStatus(status string) {
if o.Annotations == nil {
o.Annotations = make(map[string]string, 1)
}
if status == "" {
status = common.ProvenanceStatusNone
}
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
}
func SelectableFields(obj *TemplateGroup) fields.Set {
if obj == nil {
return nil
}
selectable := Schema().SelectableFields()
set := make(fields.Set, len(selectable))
for _, field := range selectable {
f, err := field.FieldValueFunc(obj)
if err != nil {
continue
}
set[field.FieldSelector] = f
}
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), set)
}

View File

@@ -0,0 +1,28 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"encoding/json"
"io"
"github.com/grafana/grafana-app-sdk/resource"
)
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
type JSONCodec struct{}
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
return json.NewDecoder(reader).Decode(into)
}
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
return json.NewEncoder(writer).Encode(from)
}
// Interface compliance checks
var _ resource.Codec = &JSONCodec{}

View File

@@ -0,0 +1,32 @@
package v0alpha1
import (
"time"
)
// Metadata defines model for Metadata.
type Metadata struct {
CreatedBy string `json:"createdBy"`
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
UpdateTimestamp time.Time `json:"updateTimestamp"`
UpdatedBy string `json:"updatedBy"`
}
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
// As it is also intended to be generic enough to function with any API Server.
type KubeObjectMetadata struct {
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
}

View File

@@ -0,0 +1,266 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"time"
)
// +k8s:openapi-gen=true
type TemplateGroup struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec Spec `json:"spec"`
Status Status `json:"status"`
}
func (o *TemplateGroup) GetSpec() any {
return o.Spec
}
func (o *TemplateGroup) SetSpec(spec any) error {
cast, ok := spec.(Spec)
if !ok {
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
}
o.Spec = cast
return nil
}
func (o *TemplateGroup) GetSubresources() map[string]any {
return map[string]any{
"status": o.Status,
}
}
func (o *TemplateGroup) GetSubresource(name string) (any, bool) {
switch name {
case "status":
return o.Status, true
default:
return nil, false
}
}
func (o *TemplateGroup) SetSubresource(name string, value any) error {
switch name {
case "status":
cast, ok := value.(Status)
if !ok {
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
}
o.Status = cast
return nil
default:
return fmt.Errorf("subresource '%s' does not exist", name)
}
}
func (o *TemplateGroup) GetStaticMetadata() resource.StaticMetadata {
gvk := o.GroupVersionKind()
return resource.StaticMetadata{
Name: o.ObjectMeta.Name,
Namespace: o.ObjectMeta.Namespace,
Group: gvk.Group,
Version: gvk.Version,
Kind: gvk.Kind,
}
}
func (o *TemplateGroup) SetStaticMetadata(metadata resource.StaticMetadata) {
o.Name = metadata.Name
o.Namespace = metadata.Namespace
o.SetGroupVersionKind(schema.GroupVersionKind{
Group: metadata.Group,
Version: metadata.Version,
Kind: metadata.Kind,
})
}
func (o *TemplateGroup) GetCommonMetadata() resource.CommonMetadata {
dt := o.DeletionTimestamp
var deletionTimestamp *time.Time
if dt != nil {
deletionTimestamp = &dt.Time
}
// Legacy ExtraFields support
extraFields := make(map[string]any)
if o.Annotations != nil {
extraFields["annotations"] = o.Annotations
}
if o.ManagedFields != nil {
extraFields["managedFields"] = o.ManagedFields
}
if o.OwnerReferences != nil {
extraFields["ownerReferences"] = o.OwnerReferences
}
return resource.CommonMetadata{
UID: string(o.UID),
ResourceVersion: o.ResourceVersion,
Generation: o.Generation,
Labels: o.Labels,
CreationTimestamp: o.CreationTimestamp.Time,
DeletionTimestamp: deletionTimestamp,
Finalizers: o.Finalizers,
UpdateTimestamp: o.GetUpdateTimestamp(),
CreatedBy: o.GetCreatedBy(),
UpdatedBy: o.GetUpdatedBy(),
ExtraFields: extraFields,
}
}
func (o *TemplateGroup) SetCommonMetadata(metadata resource.CommonMetadata) {
o.UID = types.UID(metadata.UID)
o.ResourceVersion = metadata.ResourceVersion
o.Generation = metadata.Generation
o.Labels = metadata.Labels
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
if metadata.DeletionTimestamp != nil {
dt := metav1.NewTime(*metadata.DeletionTimestamp)
o.DeletionTimestamp = &dt
} else {
o.DeletionTimestamp = nil
}
o.Finalizers = metadata.Finalizers
if o.Annotations == nil {
o.Annotations = make(map[string]string)
}
if !metadata.UpdateTimestamp.IsZero() {
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
}
if metadata.CreatedBy != "" {
o.SetCreatedBy(metadata.CreatedBy)
}
if metadata.UpdatedBy != "" {
o.SetUpdatedBy(metadata.UpdatedBy)
}
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
if metadata.ExtraFields != nil {
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
if cast, ok := annotations.(map[string]string); ok {
o.Annotations = cast
}
}
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
o.ManagedFields = cast
}
}
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
o.OwnerReferences = cast
}
}
}
}
func (o *TemplateGroup) GetCreatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
}
func (o *TemplateGroup) SetCreatedBy(createdBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
}
func (o *TemplateGroup) GetUpdateTimestamp() time.Time {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
return parsed
}
func (o *TemplateGroup) SetUpdateTimestamp(updateTimestamp time.Time) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
}
func (o *TemplateGroup) GetUpdatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
}
func (o *TemplateGroup) SetUpdatedBy(updatedBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
}
func (o *TemplateGroup) Copy() resource.Object {
return resource.CopyObject(o)
}
func (o *TemplateGroup) DeepCopyObject() runtime.Object {
return o.Copy()
}
// Interface compliance compile-time check
var _ resource.Object = &TemplateGroup{}
// +k8s:openapi-gen=true
type TemplateGroupList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []TemplateGroup `json:"items"`
}
func (o *TemplateGroupList) DeepCopyObject() runtime.Object {
return o.Copy()
}
func (o *TemplateGroupList) Copy() resource.ListObject {
cpy := &TemplateGroupList{
TypeMeta: o.TypeMeta,
Items: make([]TemplateGroup, len(o.Items)),
}
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
for i := 0; i < len(o.Items); i++ {
if item, ok := o.Items[i].Copy().(*TemplateGroup); ok {
cpy.Items[i] = *item
}
}
return cpy
}
func (o *TemplateGroupList) GetItems() []resource.Object {
items := make([]resource.Object, len(o.Items))
for i := 0; i < len(o.Items); i++ {
items[i] = &o.Items[i]
}
return items
}
func (o *TemplateGroupList) SetItems(items []resource.Object) {
o.Items = make([]TemplateGroup, len(items))
for i := 0; i < len(items); i++ {
o.Items[i] = *items[i].(*TemplateGroup)
}
}
// Interface compliance compile-time check
var _ resource.ListObject = &TemplateGroupList{}

View File

@@ -0,0 +1,46 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
)
// schema is unexported to prevent accidental overwrites
var (
schemaTemplateGroup = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &TemplateGroup{}, &TemplateGroupList{}, resource.WithKind("TemplateGroup"),
resource.WithPlural("templategroups"), resource.WithScope(resource.NamespacedScope), resource.WithSelectableFields([]resource.SelectableField{{
FieldSelector: "spec.title",
FieldValueFunc: func(o resource.Object) (string, error) {
cast, ok := o.(*TemplateGroup)
if !ok {
return "", fmt.Errorf("provided object must be of type *TemplateGroup")
}
return cast.Spec.Title, nil
},
},
}))
kindTemplateGroup = resource.Kind{
Schema: schemaTemplateGroup,
Codecs: map[resource.KindEncoding]resource.Codec{
resource.KindEncodingJSON: &JSONCodec{},
},
}
)
// Kind returns a resource.Kind for this Schema with a JSON codec
func Kind() resource.Kind {
return kindTemplateGroup
}
// Schema returns a resource.SimpleSchema representation of TemplateGroup
func Schema() *resource.SimpleSchema {
return schemaTemplateGroup
}
// Interface compliance checks
var _ resource.Schema = kindTemplateGroup

View File

@@ -1,8 +1,8 @@
package v0alpha1
// TemplateGroupSpec defines model for TemplateGroupSpec.
// Spec defines model for Spec.
// +k8s:openapi-gen=true
type TemplateGroupSpec struct {
Title string `json:"title"`
type Spec struct {
Content string `json:"content"`
Title string `json:"title"`
}

View File

@@ -0,0 +1,70 @@
package v0alpha1
// Defines values for OperatorStateState.
const (
OperatorStateStateFailed OperatorStateState = "failed"
OperatorStateStateInProgress OperatorStateState = "in_progress"
OperatorStateStateSuccess OperatorStateState = "success"
)
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState.
// +k8s:openapi-gen=true
type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State OperatorStateState `json:"state"`
}
// OperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type OperatorStateState string
// Status defines model for Status.
// +k8s:openapi-gen=true
type Status struct {
// additionalFields is reserved for future use
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
// operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
}
// StatusOperatorState defines model for status.#OperatorState.
// +k8s:openapi-gen=true
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type StatusOperatorStateState string

View File

@@ -0,0 +1,294 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// Code generated by grafana-app-sdk. DO NOT EDIT.
package v0alpha1
import (
common "k8s.io/kube-openapi/pkg/common"
spec "k8s.io/kube-openapi/pkg/validation/spec"
)
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
return map[string]common.OpenAPIDefinition{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.OperatorState": schema_apis_resource_templategroup_v0alpha1_OperatorState(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Spec": schema_apis_resource_templategroup_v0alpha1_Spec(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Status": schema_apis_resource_templategroup_v0alpha1_Status(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.StatusOperatorState": schema_apis_resource_templategroup_v0alpha1_StatusOperatorState(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroup": schema_apis_resource_templategroup_v0alpha1_TemplateGroup(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroupList": schema_apis_resource_templategroup_v0alpha1_TemplateGroupList(ref),
}
}
func schema_apis_resource_templategroup_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "OperatorState defines model for OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}
func schema_apis_resource_templategroup_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Spec defines model for Spec.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"content": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"title": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"content", "title"},
},
},
}
}
func schema_apis_resource_templategroup_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Status defines model for Status.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"additionalFields": {
SchemaProps: spec.SchemaProps{
Description: "additionalFields is reserved for future use",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"operatorStates": {
SchemaProps: spec.SchemaProps{
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.StatusOperatorState"),
},
},
},
},
},
},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.StatusOperatorState"},
}
}
func schema_apis_resource_templategroup_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "StatusOperatorState defines model for status.#OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}
func schema_apis_resource_templategroup_v0alpha1_TemplateGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
},
},
"spec": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Spec"),
},
},
"status": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Status"),
},
},
},
Required: []string{"metadata", "spec", "status"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
}
}
func schema_apis_resource_templategroup_v0alpha1_TemplateGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
},
},
"items": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroup"),
},
},
},
},
},
},
Required: []string{"metadata", "items"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
}
}

View File

@@ -0,0 +1,45 @@
package v0alpha1
import (
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apiserver/pkg/registry/generic"
"github.com/grafana/grafana/apps/alerting/common"
)
func (o *TimeInterval) GetProvenanceStatus() string {
if o == nil || o.Annotations == nil {
return ""
}
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
if !ok || s == "" {
return common.ProvenanceStatusNone
}
return s
}
func (o *TimeInterval) SetProvenanceStatus(status string) {
if o.Annotations == nil {
o.Annotations = make(map[string]string, 1)
}
if status == "" {
status = common.ProvenanceStatusNone
}
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
}
func SelectableFields(obj *TimeInterval) fields.Set {
if obj == nil {
return nil
}
selectable := Schema().SelectableFields()
set := make(fields.Set, len(selectable))
for _, field := range selectable {
f, err := field.FieldValueFunc(obj)
if err != nil {
continue
}
set[field.FieldSelector] = f
}
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), set)
}

View File

@@ -1,4 +1,4 @@
package v0alpha1
package fakes
import (
"fmt"
@@ -7,15 +7,14 @@ import (
"strings"
"time"
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1"
"github.com/grafana/grafana/pkg/util"
)
// +k8s:openapi-gen=false
// +k8s:deepcopy-gen=false
type IntervalMutator func(spec *Interval)
type IntervalMutator func(spec *v0alpha1.Interval)
// +k8s:openapi-gen=false
// +k8s:deepcopy-gen=false
type IntervalGenerator struct {
mutators []IntervalMutator
}
@@ -36,10 +35,10 @@ func (t IntervalGenerator) generateDaysOfMonth() string {
return fmt.Sprintf("%d:%d", from, to)
}
func (t IntervalGenerator) generateTimeRange() TimeRange {
func (t IntervalGenerator) generateTimeRange() v0alpha1.TimeRange {
from := rand.Int63n(1440 / 2) // [0, 719]
to := from + rand.Int63n(1440/2) + 1 // from < ([0,719] + [1,720]) < 1440
return TimeRange{
return v0alpha1.TimeRange{
StartTime: time.Unix(from*60, 0).UTC().Format("15:04"),
EndTime: time.Unix(to*60, 0).UTC().Format("15:04"),
}
@@ -70,16 +69,16 @@ func (t IntervalGenerator) generateMonth() string {
return fmt.Sprintf("%d", rand.Intn(12)+1)
}
func (t IntervalGenerator) GenerateMany(count int) []Interval {
result := make([]Interval, 0, count)
func (t IntervalGenerator) GenerateMany(count int) []v0alpha1.Interval {
result := make([]v0alpha1.Interval, 0, count)
for i := 0; i < count; i++ {
result = append(result, t.Generate())
}
return result
}
func (t IntervalGenerator) Generate() Interval {
i := Interval{
func (t IntervalGenerator) Generate() v0alpha1.Interval {
i := v0alpha1.Interval{
DaysOfMonth: generateMany(rand.Intn(6), true, t.generateDaysOfMonth),
Location: t.generateLocation(),
Months: generateMany(rand.Intn(3), true, t.generateMonth),
@@ -105,11 +104,3 @@ func generateMany[T comparable](repeatTimes int, unique bool, f func() T) []T {
}
return result
}
func CopyWith(in Interval, mutators ...IntervalMutator) Interval {
r := *in.DeepCopy()
for _, mut := range mutators {
mut(&r)
}
return r
}

View File

@@ -0,0 +1,28 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"encoding/json"
"io"
"github.com/grafana/grafana-app-sdk/resource"
)
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
type JSONCodec struct{}
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
return json.NewDecoder(reader).Decode(into)
}
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
return json.NewEncoder(writer).Encode(from)
}
// Interface compliance checks
var _ resource.Codec = &JSONCodec{}

View File

@@ -0,0 +1,32 @@
package v0alpha1
import (
"time"
)
// Metadata defines model for Metadata.
type Metadata struct {
CreatedBy string `json:"createdBy"`
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
UpdateTimestamp time.Time `json:"updateTimestamp"`
UpdatedBy string `json:"updatedBy"`
}
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
// As it is also intended to be generic enough to function with any API Server.
type KubeObjectMetadata struct {
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
}

View File

@@ -0,0 +1,266 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"time"
)
// +k8s:openapi-gen=true
type TimeInterval struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec Spec `json:"spec"`
Status Status `json:"status"`
}
func (o *TimeInterval) GetSpec() any {
return o.Spec
}
func (o *TimeInterval) SetSpec(spec any) error {
cast, ok := spec.(Spec)
if !ok {
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
}
o.Spec = cast
return nil
}
func (o *TimeInterval) GetSubresources() map[string]any {
return map[string]any{
"status": o.Status,
}
}
func (o *TimeInterval) GetSubresource(name string) (any, bool) {
switch name {
case "status":
return o.Status, true
default:
return nil, false
}
}
func (o *TimeInterval) SetSubresource(name string, value any) error {
switch name {
case "status":
cast, ok := value.(Status)
if !ok {
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
}
o.Status = cast
return nil
default:
return fmt.Errorf("subresource '%s' does not exist", name)
}
}
func (o *TimeInterval) GetStaticMetadata() resource.StaticMetadata {
gvk := o.GroupVersionKind()
return resource.StaticMetadata{
Name: o.ObjectMeta.Name,
Namespace: o.ObjectMeta.Namespace,
Group: gvk.Group,
Version: gvk.Version,
Kind: gvk.Kind,
}
}
func (o *TimeInterval) SetStaticMetadata(metadata resource.StaticMetadata) {
o.Name = metadata.Name
o.Namespace = metadata.Namespace
o.SetGroupVersionKind(schema.GroupVersionKind{
Group: metadata.Group,
Version: metadata.Version,
Kind: metadata.Kind,
})
}
func (o *TimeInterval) GetCommonMetadata() resource.CommonMetadata {
dt := o.DeletionTimestamp
var deletionTimestamp *time.Time
if dt != nil {
deletionTimestamp = &dt.Time
}
// Legacy ExtraFields support
extraFields := make(map[string]any)
if o.Annotations != nil {
extraFields["annotations"] = o.Annotations
}
if o.ManagedFields != nil {
extraFields["managedFields"] = o.ManagedFields
}
if o.OwnerReferences != nil {
extraFields["ownerReferences"] = o.OwnerReferences
}
return resource.CommonMetadata{
UID: string(o.UID),
ResourceVersion: o.ResourceVersion,
Generation: o.Generation,
Labels: o.Labels,
CreationTimestamp: o.CreationTimestamp.Time,
DeletionTimestamp: deletionTimestamp,
Finalizers: o.Finalizers,
UpdateTimestamp: o.GetUpdateTimestamp(),
CreatedBy: o.GetCreatedBy(),
UpdatedBy: o.GetUpdatedBy(),
ExtraFields: extraFields,
}
}
func (o *TimeInterval) SetCommonMetadata(metadata resource.CommonMetadata) {
o.UID = types.UID(metadata.UID)
o.ResourceVersion = metadata.ResourceVersion
o.Generation = metadata.Generation
o.Labels = metadata.Labels
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
if metadata.DeletionTimestamp != nil {
dt := metav1.NewTime(*metadata.DeletionTimestamp)
o.DeletionTimestamp = &dt
} else {
o.DeletionTimestamp = nil
}
o.Finalizers = metadata.Finalizers
if o.Annotations == nil {
o.Annotations = make(map[string]string)
}
if !metadata.UpdateTimestamp.IsZero() {
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
}
if metadata.CreatedBy != "" {
o.SetCreatedBy(metadata.CreatedBy)
}
if metadata.UpdatedBy != "" {
o.SetUpdatedBy(metadata.UpdatedBy)
}
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
if metadata.ExtraFields != nil {
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
if cast, ok := annotations.(map[string]string); ok {
o.Annotations = cast
}
}
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
o.ManagedFields = cast
}
}
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
o.OwnerReferences = cast
}
}
}
}
func (o *TimeInterval) GetCreatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
}
func (o *TimeInterval) SetCreatedBy(createdBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
}
func (o *TimeInterval) GetUpdateTimestamp() time.Time {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
return parsed
}
func (o *TimeInterval) SetUpdateTimestamp(updateTimestamp time.Time) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
}
func (o *TimeInterval) GetUpdatedBy() string {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
}
func (o *TimeInterval) SetUpdatedBy(updatedBy string) {
if o.ObjectMeta.Annotations == nil {
o.ObjectMeta.Annotations = make(map[string]string)
}
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
}
func (o *TimeInterval) Copy() resource.Object {
return resource.CopyObject(o)
}
func (o *TimeInterval) DeepCopyObject() runtime.Object {
return o.Copy()
}
// Interface compliance compile-time check
var _ resource.Object = &TimeInterval{}
// +k8s:openapi-gen=true
type TimeIntervalList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []TimeInterval `json:"items"`
}
func (o *TimeIntervalList) DeepCopyObject() runtime.Object {
return o.Copy()
}
func (o *TimeIntervalList) Copy() resource.ListObject {
cpy := &TimeIntervalList{
TypeMeta: o.TypeMeta,
Items: make([]TimeInterval, len(o.Items)),
}
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
for i := 0; i < len(o.Items); i++ {
if item, ok := o.Items[i].Copy().(*TimeInterval); ok {
cpy.Items[i] = *item
}
}
return cpy
}
func (o *TimeIntervalList) GetItems() []resource.Object {
items := make([]resource.Object, len(o.Items))
for i := 0; i < len(o.Items); i++ {
items[i] = &o.Items[i]
}
return items
}
func (o *TimeIntervalList) SetItems(items []resource.Object) {
o.Items = make([]TimeInterval, len(items))
for i := 0; i < len(items); i++ {
o.Items[i] = *items[i].(*TimeInterval)
}
}
// Interface compliance compile-time check
var _ resource.ListObject = &TimeIntervalList{}

View File

@@ -0,0 +1,46 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v0alpha1
import (
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
)
// schema is unexported to prevent accidental overwrites
var (
schemaTimeInterval = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &TimeInterval{}, &TimeIntervalList{}, resource.WithKind("TimeInterval"),
resource.WithPlural("timeintervals"), resource.WithScope(resource.NamespacedScope), resource.WithSelectableFields([]resource.SelectableField{{
FieldSelector: "spec.name",
FieldValueFunc: func(o resource.Object) (string, error) {
cast, ok := o.(*TimeInterval)
if !ok {
return "", fmt.Errorf("provided object must be of type *TimeInterval")
}
return cast.Spec.Name, nil
},
},
}))
kindTimeInterval = resource.Kind{
Schema: schemaTimeInterval,
Codecs: map[resource.KindEncoding]resource.Codec{
resource.KindEncodingJSON: &JSONCodec{},
},
}
)
// Kind returns a resource.Kind for this Schema with a JSON codec
func Kind() resource.Kind {
return kindTimeInterval
}
// Schema returns a resource.SimpleSchema representation of TimeInterval
func Schema() *resource.SimpleSchema {
return schemaTimeInterval
}
// Interface compliance checks
var _ resource.Schema = kindTimeInterval

View File

@@ -0,0 +1,26 @@
package v0alpha1
// Interval defines model for Interval.
// +k8s:openapi-gen=true
type Interval struct {
DaysOfMonth []string `json:"days_of_month,omitempty"`
Location *string `json:"location,omitempty"`
Months []string `json:"months,omitempty"`
Times []TimeRange `json:"times,omitempty"`
Weekdays []string `json:"weekdays,omitempty"`
Years []string `json:"years,omitempty"`
}
// Spec defines model for Spec.
// +k8s:openapi-gen=true
type Spec struct {
Name string `json:"name"`
TimeIntervals []Interval `json:"time_intervals"`
}
// TimeRange defines model for TimeRange.
// +k8s:openapi-gen=true
type TimeRange struct {
EndTime string `json:"end_time"`
StartTime string `json:"start_time"`
}

View File

@@ -0,0 +1,70 @@
package v0alpha1
// Defines values for OperatorStateState.
const (
OperatorStateStateFailed OperatorStateState = "failed"
OperatorStateStateInProgress OperatorStateState = "in_progress"
OperatorStateStateSuccess OperatorStateState = "success"
)
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState.
// +k8s:openapi-gen=true
type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State OperatorStateState `json:"state"`
}
// OperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type OperatorStateState string
// Status defines model for Status.
// +k8s:openapi-gen=true
type Status struct {
// additionalFields is reserved for future use
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
// operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
}
// StatusOperatorState defines model for status.#OperatorState.
// +k8s:openapi-gen=true
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
// +k8s:openapi-gen=true
type StatusOperatorStateState string

View File

@@ -0,0 +1,422 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// Code generated by grafana-app-sdk. DO NOT EDIT.
package v0alpha1
import (
common "k8s.io/kube-openapi/pkg/common"
spec "k8s.io/kube-openapi/pkg/validation/spec"
)
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
return map[string]common.OpenAPIDefinition{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Interval": schema_apis_resource_timeinterval_v0alpha1_Interval(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.OperatorState": schema_apis_resource_timeinterval_v0alpha1_OperatorState(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Spec": schema_apis_resource_timeinterval_v0alpha1_Spec(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Status": schema_apis_resource_timeinterval_v0alpha1_Status(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.StatusOperatorState": schema_apis_resource_timeinterval_v0alpha1_StatusOperatorState(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeInterval": schema_apis_resource_timeinterval_v0alpha1_TimeInterval(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeIntervalList": schema_apis_resource_timeinterval_v0alpha1_TimeIntervalList(ref),
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeRange": schema_apis_resource_timeinterval_v0alpha1_TimeRange(ref),
}
}
func schema_apis_resource_timeinterval_v0alpha1_Interval(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Interval defines model for Interval.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"days_of_month": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"location": {
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
"months": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"times": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeRange"),
},
},
},
},
},
"weekdays": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
"years": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeRange"},
}
}
func schema_apis_resource_timeinterval_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "OperatorState defines model for OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}
func schema_apis_resource_timeinterval_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Spec defines model for Spec.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"time_intervals": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Interval"),
},
},
},
},
},
},
Required: []string{"name", "time_intervals"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Interval"},
}
}
func schema_apis_resource_timeinterval_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "Status defines model for Status.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"additionalFields": {
SchemaProps: spec.SchemaProps{
Description: "additionalFields is reserved for future use",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"operatorStates": {
SchemaProps: spec.SchemaProps{
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.StatusOperatorState"),
},
},
},
},
},
},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.StatusOperatorState"},
}
}
func schema_apis_resource_timeinterval_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "StatusOperatorState defines model for status.#OperatorState.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"descriptiveState": {
SchemaProps: spec.SchemaProps{
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
Type: []string{"string"},
Format: "",
},
},
"details": {
SchemaProps: spec.SchemaProps{
Description: "details contains any extra information that is operator-specific",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Allows: true,
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Format: "",
},
},
},
},
},
"lastEvaluation": {
SchemaProps: spec.SchemaProps{
Description: "lastEvaluation is the ResourceVersion last evaluated",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"state": {
SchemaProps: spec.SchemaProps{
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"lastEvaluation", "state"},
},
},
}
}
func schema_apis_resource_timeinterval_v0alpha1_TimeInterval(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
},
},
"spec": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Spec"),
},
},
"status": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Status"),
},
},
},
Required: []string{"metadata", "spec", "status"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
}
}
func schema_apis_resource_timeinterval_v0alpha1_TimeIntervalList(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
},
},
"items": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeInterval"),
},
},
},
},
},
},
Required: []string{"metadata", "items"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeInterval", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
}
}
func schema_apis_resource_timeinterval_v0alpha1_TimeRange(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "TimeRange defines model for TimeRange.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"end_time": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"start_time": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"end_time", "start_time"},
},
},
}
}

View File

@@ -0,0 +1,5 @@
package resource
import "k8s.io/apimachinery/pkg/runtime/schema"
var GroupVersion = schema.GroupVersion{Group: "notifications.alerting.grafana.app", Version: "v0alpha1"}

View File

@@ -0,0 +1,3 @@
.PHONY: generate
generate:
@grafana-app-sdk generate -g ./pkg/apis --kindgrouping=group --postprocess --crdencoding none

82
apps/investigation/go.mod Normal file
View File

@@ -0,0 +1,82 @@
module github.com/grafana/grafana/apps/investigation
go 1.23.1
require (
github.com/grafana/grafana-app-sdk v0.23.1
k8s.io/apimachinery v0.32.0
k8s.io/klog/v2 v2.130.1
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f
)
require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/bradfitz/gomemcache v0.0.0-20230905024940-24af94b03874 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/getkin/kin-openapi v0.128.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/invopop/yaml v0.3.1 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/perimeterx/marshmallow v1.1.5 // indirect
github.com/prometheus/client_golang v1.20.5 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.61.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/otel v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0 // indirect
go.opentelemetry.io/otel/metric v1.33.0 // indirect
go.opentelemetry.io/otel/sdk v1.33.0 // indirect
go.opentelemetry.io/otel/trace v1.33.0 // indirect
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/oauth2 v0.25.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/term v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.9.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect
google.golang.org/grpc v1.69.2 // indirect
google.golang.org/protobuf v1.36.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.32.0 // indirect
k8s.io/apiextensions-apiserver v0.32.0 // indirect
k8s.io/client-go v0.32.0 // indirect
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)

212
apps/investigation/go.sum Normal file
View File

@@ -0,0 +1,212 @@
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bradfitz/gomemcache v0.0.0-20230905024940-24af94b03874 h1:N7oVaKyGp8bttX0bfZGmcGkjz7DLQXhAn3DNd3T0ous=
github.com/bradfitz/gomemcache v0.0.0-20230905024940-24af94b03874/go.mod h1:r5xuitiExdLAJ09PR7vBVENGvp4ZuTBeWTGtxuX3K+c=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=
github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4=
github.com/getkin/kin-openapi v0.128.0/go.mod h1:OZrfXzUfGrNbsKj+xmFBx6E5c6yH3At/tAKSc2UszXM=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grafana/grafana-app-sdk v0.23.1 h1:BRpUG0bA0oVxjthkmO2thuJBo3nbjaRSSmZJHw+mA8I=
github.com/grafana/grafana-app-sdk v0.23.1/go.mod h1:KzgPnTJfMeckGmMctv6CJb8Jr/o/5rwARDyjXoeR0Fc=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso=
github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ=
github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s=
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU=
github.com/puzpuzpuz/xsync/v2 v2.5.1/go.mod h1:gD2H2krq/w52MfPLE+Uy64TzJDVY7lP2znR9qmR35kU=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw=
go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0 h1:wpMfgF8E1rkrT1Z6meFh1NDtownE9Ii3n3X2GJYjsaU=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0/go.mod h1:wAy0T/dUbs468uOlkT31xjvqQgEVXv58BRFWEgn5v/0=
go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ=
go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M=
go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM=
go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM=
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s=
go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck=
go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg=
go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484 h1:ChAdCYNQFDk5fYvFZMywKLIijG7TC2m1C2CMEu11G3o=
google.golang.org/genproto/googleapis/api v0.0.0-20241216192217-9240e9c98484/go.mod h1:KRUmxRI4JmbpAm8gcZM4Jsffi859fo5LQjILwuqj9z8=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU=
google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE=
k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0=
k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0=
k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw=
k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg=
k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8=
k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk=
sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

View File

@@ -0,0 +1,2 @@
module: "github.com/grafana/grafana/apps/investigation/kinds"
language: version: "v0.8.2"

View File

@@ -0,0 +1,96 @@
package kinds
// This is our Investigation definition, which contains metadata about the kind, and the kind's schema
investigation: {
group: "investigation"
kind: "Investigation"
pluralName: "Investigations"
scope: "Namespaced"
apiResource: {
groupOverride: "investigation.grafana.app"
}
codegen: {
frontend: false
backend: true
}
current: "v1alpha1"
versions: {
"v1alpha1": {
version: "v1alpha1"
schema: {
// spec is the schema of our resource. The spec should include all the user-ediable information for the kind.
spec: #InvestigationSpec
}
}
}
}
#InvestigationSpec: {
title: string
status: "open" | "closed"
items: [...#InvestigationItem]
}
// InvestigationItem is an item in an investigation.
#InvestigationItem: {
id: string
title: string
// type is the type of the item "timeseries", "heatmap", "log-table" (not an enum to allow for future extensions).
type: string
// url is the URL to the item.
url: string
// origin is where the item was created from.
origin: string // "explore-metrics", "explore-logs", "explore-traces" (not an enum to allow for future extensions)
// iconPath (optional) is the path to the icon for the item.
iconPath?: string
// timeRange (optional) is the time range of the item.
timeRange: #AbsoluteTimeRange
// note (optional) is a comment on the item.
note?: [...#Comment]
// queryType is the type of the query used to generate this item.
queryType: "logs" | "metrics"
// dataQuery contains the query used to generate this item.
dataQuery: #DataQueryLogs | #DataQueryMetrics
}
// DataQueryLogs is a data query for logs.
#DataQueryLogs: {
// refId is the reference ID of the query.
refId: string
// datasource is the datasource of the query.
datasource: #DatasourceRef
// expr is the expression of the query.
expr: string
// maxLines (optional) is used to limit the number of log rows returned.
maxLines?: int64
}
// DataQueryMetrics is a data query for metrics.
#DataQueryMetrics: {
refId: string
datasource: #DatasourceRef
expr: string
}
// Comment is a comment on an investigation item.
#Comment: {
authorUserID: string
bodyMarkdown: string
}
// DatasourceRef is a reference to a datasource.
#DatasourceRef: {
uid: string
type: string
apiVersion: string
name: string
}
// AbsoluteTimeRange is a time range specified by absolute timestamps.
#AbsoluteTimeRange: {
from: number
to: number
}

View File

@@ -0,0 +1,28 @@
//
// Code generated by grafana-app-sdk. DO NOT EDIT.
//
package v1alpha1
import (
"encoding/json"
"io"
"github.com/grafana/grafana-app-sdk/resource"
)
// InvestigationJSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
type InvestigationJSONCodec struct{}
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
func (*InvestigationJSONCodec) Read(reader io.Reader, into resource.Object) error {
return json.NewDecoder(reader).Decode(into)
}
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
func (*InvestigationJSONCodec) Write(writer io.Writer, from resource.Object) error {
return json.NewEncoder(writer).Encode(from)
}
// Interface compliance checks
var _ resource.Codec = &InvestigationJSONCodec{}

View File

@@ -0,0 +1,32 @@
package v1alpha1
import (
"time"
)
// InvestigationMetadata defines model for InvestigationMetadata.
type InvestigationMetadata struct {
CreatedBy string `json:"createdBy"`
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
UpdateTimestamp time.Time `json:"updateTimestamp"`
UpdatedBy string `json:"updatedBy"`
}
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
// As it is also intended to be generic enough to function with any API Server.
type InvestigationKubeObjectMetadata struct {
CreationTimestamp time.Time `json:"creationTimestamp"`
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
Finalizers []string `json:"finalizers"`
Generation int64 `json:"generation"`
Labels map[string]string `json:"labels"`
ResourceVersion string `json:"resourceVersion"`
Uid string `json:"uid"`
}

Some files were not shown because too many files have changed in this diff Show More