Chore: Add auto-milestone workflow for pull-requests (#71177)
This adds a new auto-milestone workflow that will set the milestone for
a PR when it is closed. This way, contributors no longer have to think
about milestone at all.
(cherry picked from commit 8ae92db53d)
* CI: Update and rename pr-patch-mirror-and-apply.yml to sync-mirror.yml (#71608)
* CI: Update and rename pr-patch-mirror-and-apply.yml to sync-mirror.yml
* update CODEOWNERS
(cherry picked from commit 3afc20fae9)
* Add sync-mirror to codeowners
api: ignore /api/gnet proxy when gzipping responses (#71437)
This PR adds /api/gnet to the list of ignored paths in the gzip middleware.
Without this, when gzip is enabled (`server.enable_gzip = true`), responses
from the gnet proxy are double compressed: once by grafana.com and once by
Grafana itself. With this change we only do one round of compression for these
endpoints.
To test this out, try a request like this with `server.enable_gzip = true`
(after setting `GCOM_TOKEN` to a valid grafana.com token; you may need to
change the 'bsull' slug, too):
curl -v --user admin:admin \
-H "X-Api-Key: $GCOM_TOKEN" \
-H 'Accept-Encoding: gzip' \
localhost:3000/api/gnet/instances/bsull/provisioned-plugins/grafana-ml-app | gzip -d
Note that there are two Content-Encoding: gzip headers before this PR, and
the output is still compressed even after the `gzip -d`. After this PR things
look as expected.
(cherry picked from commit 51c94bccd7)
Co-authored-by: Ben Sully <ben.sully@grafana.com>
docs: update nodejs required version (#71469)
* docs: update nodejs required version
* docs: update nodejs version in plugin tutorials
* docs: update to LTS guidance
(cherry picked from commit 3a45f02ef3)
Co-authored-by: David Harris <david.harris@grafana.com>
Docs: Adding alias to package a plugin (#71478)
Adding alias to package a plugin
(cherry picked from commit 471c858e67)
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Update info for the Support Bundle (#69419)
* Update info for the Support Bundle
Add in a note that access to the Support Bundle requires Grafana 9.5 and above.
* Make the user/permission restriction more visible since it gets lost a little in the code block
* Run prettier
* Move the new content to Before you begin section
This is the pattern that we're following with other doc topics as well.
* fix a typo
* linting
---------
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
(cherry picked from commit 7f865f627a)
Co-authored-by: Zach Day <zachary.day@grafana.com>
"Release: Updated versions in package to 10.0.3"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Alerting: Fix Alertmanager change detection for receivers with secure settings (#71307)
* Alerting: Make ApplyAlertmanagerConfiguration only decrypt/encrypt new/changed secure settings
Previously, ApplyAlertmanagerConfiguration would decrypt and re-encrypt all secure settings. However, this caused re-encrypted secure settings to be included in the raw configuration when applied to the embedded alertmanager, resulting in changes to the hash. Consequently, even if no actual modifications were made, saving any alertmanager configuration triggered an apply/restart and created a new historical entry in the database.
To address the issue, this modifies ApplyAlertmanagerConfiguration, which is called by POST `api/alertmanager/grafana/config/api/v1/alerts`, to decrypt and re-encrypt only new and updated secure settings. Unchanged secure settings are loaded directly from the database without alteration.
We determine whether secure settings have changed based on the following (already in-use) assumption: Only new or updated secure settings are provided via the POST `api/alertmanager/grafana/config/api/v1/alerts` request, while existing unchanged settings are omitted.
* Ensure saving a grafana-managed contact point will only send new/changed secure settings
Previously, when saving a grafana-managed contact point, empty string values were transmitted for all unset secure settings. This led to potential backend issues, as it assumed that only newly added or updated secure settings would be provided.
To address this, we now exclude empty ('', null, undefined) secure settings, unless there was a pre-existing entry in secureFields for that specific setting. In essence, this means we only transmit an empty secure setting if a previously configured value was cleared.
* Fix linting
* refactor omitEmptyUnlessExisting
* fixup
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
(cherry picked from commit e3787de470)
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
Elasticsearch: Fix using multiple indexes with comma separated string (#71284)
* Revert "Elasticsearch: Use array of strings as index in backend queries (#67276)"
This reverts commit d0ced39847.
* updated tests
(cherry picked from commit e17540bdcd)
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Update Public Dashboards documentation (#71276)
The documentation for how to support public dashboards is slightly incorrect.
(cherry picked from commit 899de865fc)
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Transformations: Fix `extractFields` throwing Error if one value is undefined or null (#71070)
* fix extract fields with null values
* rename test
* check for null values
* revert changes
* improve position
(cherry picked from commit b05cc2d651)
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* CI: Add rgm to drone (#66991)
* add drone stub that build grafana using 'grafana/build' (dagger)
---------
Co-authored-by: Ricky Whitaker <ricky.whitaker@grafana.com>
(cherry picked from commit 768efe9748)
* Add dagger token to rgm builds (#68651)
(cherry picked from commit a870b227db)
* CI: Add GPG keys to rgm, don't clone RGM just use the docker image (#71143)
* Add GPG keys to rgm, dont' clone RGM just use the docker image
* remove the cd command
* forgot to make drone :(
* idk
* reference script more specifically
* i guess we'll just cd /src
* Only show not found artifacts
(cherry picked from commit d5a4c81fa1)
AsyncSegment: Display no-options placeholder for no items status (#70995)
AsyncSegment: Display no options dropdown placeholder for no items status
(cherry picked from commit ad5a36e7a3)
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
docs: remove kentik from angular plugins (#71191)
As of v1.7.0 this plugin no longer uses Angular
(cherry picked from commit a9368aab7a)
Co-authored-by: David Harris <david.harris@grafana.com>
Docs: Adding the right syntax highlighting in a few places (#71141)
Adding the right syntax highlighting in a few places
(cherry picked from commit 536146de5f)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Prometheus: Heatmap Format with No Data (#68938)
* Prometheus: Heatmap Format with No Data
* Simplify conditional logic
(cherry picked from commit 0fa991a4b9)
Co-authored-by: Drew Slobodnjak <60050885+drew08t@users.noreply.github.com>