mirror of https://github.com/grafana/grafana
Tag:
Branch:
Tree:
IfSentient/example-operator
117803-alerting-docs-multiple-named-notification-policies-updates
119939/sql-expressions-be
120719-alerting-docs-notification-history
122609-whats-new-restore
17753-support-request---updating-an-existing-public-document---grafana---httpsgrafanacomdocsgrafanalatestalertingset-upconfigure-alert-state-historyconfigure-loki-and-prometheus-for-alert-state
19475-support-request---creating-a-new-public-document
20230331_add_kerberos_support
20260106_add-heatmap
20785-support-request---creating-a-new-public-document
20818-support-request---updating-an-existing-public-document---alerting---httpsgrafanacomdocsgrafanalatestalertingconfigure-notificationstemplate-notificationsimages-in-notifications
21093-support-request---updating-an-existing-public-document---alerting---httpsgrafanacomdocsgrafana-cloudalerting-and-irmalertingconfigure-notificationsmanage-contact-pointsintegrationswebhook-notifierwebhook-settings
21416-support-request---updating-an-existing-public-document---alerting---httpsgrafanacomdocsgrafanav124alertingset-upperformance-limitationscompressed-periodic-saves
Alerting-docs-SR#17118
IfSentient/example-operator
KD/adhoc-groupby
KD/auto-generate-zod-schema
KD/ds-as-string
KD/filters-section-level
KD/invalid-mathcer-options
KD/patch-steady-d8e78763260840b4f2c48d5b3b43eece13964bdb
KD/scenes@7.5.0
KD/scenes@8.1.0
MattIPv4/home-page-layout
MattIPv4/localstorage-feature-flag-provider
MattIPv4/openfeature-proxy
MissingRoberto/folder-readmes
MissingRoberto/folder-recursive-export
MissingRoberto/investigate-logs
MissingRoberto/issue-123616
MissingRoberto/prov-migrate-tool
MissingRoberto/prov-stats-tab
MissingRoberto/provisioning-file-size
MissingRoberto/provisioning-parent-folder
MissingRoberto/zanzana-flaky
RafaelPaulovic/userstorage-colon-key
add-authlib-access-client-datasources-mappings
add-method-to-stop-static-build-check
add-nats-dependency
adela/grafana_studio_2
adela/suggestions_downsampling
adela/suggestions_remove_flag
afraenkel/alert-rule-details-ux-experiment
afraenkel/prototype-alert-rule-details-ux
ale/grafana/git-ui-sync-project/issues/1124
alerting/activity-no-data-improvements
alerting/add-live-mode-alert-activity
alerting/classic-condition-optional-params
alerting/export-RouteMatchInfo
alerting/nav-v2-insights
alerting/refactor-use-abilities
alerting/refactor-use-abilities-pr1
alerting/timeline-orange-fix-v2
alerting/validate-expression-model
alexander-akhmetov/mqtt-append-group-key-to-topic
alexk/cmd-palette-121001
alexk/git-sync-test-skill
alexk/search-duplicates
alexspencer/dpro-60
alexspencer/dpro-7
alexspencer/qev2-explore-bulk-actions
alexspencer/qev2-stacked-list-poc
alexz/fix-role-uid-length-limit
alexz/fix-role-uid-length-validation
alyssa/add-influx-config-validation
alyssa/fix-string-datasource-v1-to-v2-migration
andreas/azmon-logs-schema
andreas/sql-schema
andrew/azure-batch-api-2
andrew/azure-batch-api-backend
andrew/azure-batch-api-frontend
andrew/current-user-auth-promote
antonio-mello-ai/cloudwatch-log-groups-page-pkg
antonio-mello-ai/cloudwatch-log-groups-page-public
antonio-mello-ai/cloudwatch-log-groups-pagination
aocenas/browse-dashboards/counts-and-dialog
aocenas/folders/owner-ref-validation
api-clients/fetch
ash/118771
ash/custom-themes-hackathon
ash/function-components-p6
ash/nested-portal-fix
ash/react-19-again
ash/time-picker-improvements
azure-monitor-encodeQuery-pool
azure-monitor-subscription-cache
backport-118028-to-release-12.4.2
backport-119378-to-release-12.4.3
backport-120038-to-release-12.4.2
backport-120284-to-release-12.4.3
backport-120376-to-release-12.4.2
backport-121428-to-release-12.4.3
backport-121721-to-release-12.3.7
backport-121772-to-release-11.6.15
backport-122207-to-release-13.0.1
backport-122230-to-release-13.0.1
backport-122456-to-release-12.4.4
backport-122575-to-release-12.4.4
backport-122653-to-release-13.0.1
backport-122832-to-release-13.0.2
backport-122851-to-release-13.0.2
backport-123008-to-release-13.0.2
backport-123151-to-release-13.0.2
backport-123358-to-release-13.0.2
backport-123577-to-release-13.0.2
backport-123889-to-release-13.0.2
backport-123929-to-release-13.0.2
backport-124178-to-release-11.6.15
backport-124178-to-release-12.2.9
backport-124178-to-release-12.3.7
backport-124178-to-release-12.4.4
backport-124178-to-release-13.0.2
backport-124295-to-release-13.0.2
backport-opsgenie-to-release-12.4.3
baldm0mma/searchable-list-with-highlight
baldm0mma/test-review-loop-truncate-text
baldm0mma/use-polling-live-metric-card
better-text-panel
cbo/anno-shard-postgres-store
cbo/tmp-debug-anno-mt-perms
chore/add-mise
chore/menu-filter-and-collapse
chore/provisioning-test-shared-env
chris/disable-notifiers
claude-design-test
claude/pensive-zhukovsky
codex/investigate-root-cause-of-issue-124016
codex/remove-bulk-insert-modulo-log
colin-stuart/iam-add-service-in-external-group-mapping-legacy-search
colin-stuart/iam-team-permissions-spec-members
colin-stuart/iam-team-service-restconfig-fallback
collinfingar/fix-delete-library-element-flaky-test
collinfingar/fix-playlists-rbac-mt
collinfingar/playlists-rbac-mt-fix
collinfingar/poc-unconfigured-animation-delay
collinfingar/snapshots-migration
community/enhancement-type-bridge
cshih/123557-section-scoped-variable-display-text
cuj/additional-journeys
cuj/framework-and-search-to-resource
cuj/proposal-3-hybrid
cursor/custom-branding-link-in-entitynotfound-component-c688
cursor/editor-dashboard-import-permissions-de61
cursor/fix-flaky-timeinterval-test-9988
cursor/fix-layout-change-sort-resurrection-4a04
cursor/gcp-dashboards-auto-deployment-bd1d
cursor/global-variables-ui-d09d
cursor/link-highlighting-for-scopes-navigation-bcaf
cursor/missing-values-zero-fill-6c78
cursor/public-document-documentation-review-fb48
cursor/setup-dev-environment-86bc
cursor/test-pr-120967-org-switcher-5fb2
cursor/test-pr-123794-b711
cursor/youtube-shortcode-export-3e6f
dashboard-authz-migration
dashboards-db-direct-to-client
dependabot/github_actions/actions/create-github-app-token-3
dependabot/github_actions/actions/setup-node-6.4.0
dependabot/github_actions/dagger/dagger-for-github-8.4.1
dependabot/github_actions/grafana/shared-workflows/actions/send-slack-messagesend-slack-message/v2.0.4-2.0.5
dependabot/github_actions/marocchino/sticky-pull-request-comment-3.0.4
dependabot/go_modules/apps/live/go.opentelemetry.io/otel/sdk-1.43.0
dependabot/go_modules/aws-sdk-go-0b815d6cc5
dependabot/go_modules/aws-sdk-go-249995bd85
dependabot/go_modules/cloud.google.com/go/aiplatform-1.125.0
dependabot/go_modules/cuelang.org/go-0.16.1
dependabot/go_modules/dot-citools/src/air/github.com/gohugoio/hugo-0.161.0
dependabot/go_modules/github.com/apache/arrow-go/v18-18.6.0
dependabot/go_modules/github.com/apache/thrift-0.23.0
dependabot/go_modules/github.com/go-ldap/ldap/v3-3.4.13
dependabot/go_modules/github.com/go-openapi/runtime-0.29.5
dependabot/go_modules/github.com/grafana/alerting-0.0.0-release-12.4.3
dependabot/go_modules/github.com/grafana/pyroscope-go/godeltaprof-0.1.10
dependabot/go_modules/github.com/hashicorp/go-plugin-1.8.0
dependabot/go_modules/github.com/lib/pq-1.12.3
dependabot/go_modules/github.com/microsoft/go-mssqldb-1.10.0
dependabot/go_modules/github.com/openfga/openfga-1.15.0
dependabot/go_modules/github.com/opentracing-contrib/go-grpc-0.1.3
dependabot/go_modules/github.com/pressly/goose/v3-3.27.1
dependabot/go_modules/go.uber.org/zap-1.28.0
dependabot/go_modules/gocloud.dev/secrets/hashivault-0.45.0
dependabot/npm_and_yarn/axios-1.16.0
dependabot/npm_and_yarn/follow-redirects-1.16.0
dependabot/npm_and_yarn/hono-4.12.18
dependabot/npm_and_yarn/packages/grafana-runtime/uuid-14.0.0
dependabot/npm_and_yarn/packages/grafana-sql/uuid-14.0.0
dependabot/npm_and_yarn/packages/grafana-ui/uuid-14.0.0
dependabot/npm_and_yarn/public/app/plugins/datasource/grafana-testdata-datasource/uuid-14.0.0
dependabot/npm_and_yarn/public/app/plugins/datasource/graphite/uuid-14.0.0
dependabot/npm_and_yarn/public/app/plugins/datasource/jaeger/uuid-14.0.0
dependabot/npm_and_yarn/public/app/plugins/datasource/loki/uuid-14.0.0
dependabot/npm_and_yarn/public/app/plugins/datasource/opentsdb/uuid-14.0.0
dependabot/npm_and_yarn/public/app/plugins/datasource/tempo/uuid-14.0.0
dependabot/npm_and_yarn/uuid-14.0.0
dmihai/get-service-rest-config
dmihai/k8s-user-get-client-with-service-identity
dmihai/k8s-user-search-implementation
docs/custom-branding-visual-mapping
docs/document-mixed-plugin-schema
docs/g13-upgrade-guide-apis
docs/grafana-config-debug
docs/influxdb-fy27q2-updates
docs/infra-as-code/update-fleet-mgmt-guide-for-otel
docs/march2026-prometheus-updates
docs/postgres-updates-fy27q2
docs/update-alertmanager-docs
docs/update-grafana-expressions-documentation
docs/update-mssql-intro-page
docs/update-zipkin-docs
dprokop/dashboard-rules-full-snapshot-2026-04-18
dprokop/dashboard-rules-snapshot-2026-04-18
dprokop/dashboard-rules-v3
dprokop/feat-panel-screenshot-api
dprokop/panel-render-operation-timings
drew08t/canvas-move-connections-during-group-move
drew08t/geomap-require-attribution
ds-ordinal-field
eledobleefe/basic-ftp-to-5.3.0-in-13.0.1
eledobleefe/cve-dompurify-to-3.4.0
eledobleefe/protocol-buffers-schema-to-3.6.1-in-13.0.1
eledobleefe/remove-locale-format-toggle
eledobleefe/remove-locale-format-toggle-frontend
eledobleefe/remove-locale-format-toggle-frontend-i18n
elliot/embedded-dashboard-prop-changes
emil/202212/errata
enable-csp-default
eshields/scopes/no-scope-node-with-defaultpath
eshields/secrets-keeper/activate-keeper
eshields/secrets-keeper/aws-instructions
eshields/secrets-keeper/delete
eshields/secrets-keeper/edit-keeper
eve-add-mcp
evictorero/dashboards-evaluate-changes-immediately
evictorero/snapshot-skip-dashboard-validation-public-mode
evictorero/snapshots-k8s-support-encryption
fast
fastfrwrd/auto-regenerate-golden-checksums
fastfrwrd/config-series-limit-suggestions-presets
fastfrwrd/dataviz-options-ui-unit-tests
fastfrwrd/field-overrides-nested-frames-dupe
fastfrwrd/fix-live-time-comparison
fastfrwrd/fix-nested-index-issue
fastfrwrd/heatmap-suggestions-guard-some-numeric-series
fastfrwrd/lint-suppressions-tools
fastfrwrd/ol-cleanup
fastfrwrd/prettier-gitignore-config
fastfrwrd/show-detailed-coverage-items
fastfrwrd/table-fix-time-filter
fastfrwrd/table-ng-nested-cleanup
feat/dashboard-collaboration
feat/dashboard-summary-add-queries
feat/expand-nested-rows-by-default
feat/expand-rows-render-param
feat/local-query-history
feat/mutation-api-variable-ui-pilot
feat/provisioning-unified-sync
feat/pulse
felix/query-editor-error-extension-point
ferruvich/git-sync-1084
ferruvich/provisioning-sync-dupfolder-fix
fix-export-metadata-uid
fix-resource-version
fix/cluster-scoped-key-root-func
fix/embedded_dashboard_with_auto_layout
fix/flamegraph-hidpi-font-scaling
fix/i18n/lazy-loading-plurals
fix/import-dashboard-folder-list
fix/panel-editor-discard-btn-paste-styles
fix/plugin-assets-cache-invalidation-module-js
fix/plugin-assets-cache-lazy-with-retry
fix/provisioning-finalizer-metrics-eventual-success
fix/skip-core-plugin-preinstall
fix/tempo-search-streaming-live-expired-fallback
fix/traces-panel-scenedatanode-datasource-fallback
fodler-cleanup
folder-remove-ac
folder-service-refactor
forsethc/chore/move-teambinding-hooks-to-team
frontend-home-resolver
gabor/qs-raw-log
gabor/qs-test-refactor
gabor/raw-query
gabor/raw-query-better-metric
gamab/iam-perms-metrics
gamab/iam-perms-metrics-p1
gamab/plugin-role-cleanup
gamab/rbac/cfg-typo
git-sync-fix-release-bom
git-sync-permissions-docs
giuseppe/feature-toggles-env-vars
giuseppe/marketplace-license-ft
graceful-degradation/folder-list-delete-search-fallback
graceful-degradation/folder-move-depth-validation-fallback
grafakus/e2e-page-objects-1
grafakus/explo-tabs-scroll
grafakus/hack-day-revamp-variable-query-editor
graphite/carbonapi-compat-fixes-and-integration-tests
graphite/oom-hardening
gtk-grafana/TresholdControls/unit-tests-exp-2
gtk-grafana/annotations-clustering-ga
gtk-grafana/combobox-tabindex
gtk-grafana/dataviz/OutsideRangePlugin/unit-test-cycle-skill-test
gtk-grafana/dataviz/issues/122695/candlestick-test-coverage
gtk-grafana/dataviz/issues/122695/candlestick-test-coverage__tool
gtk-grafana/dataviz/panel-agent-docs
gtk-grafana/dataviz/panel-tests-agent-context
gtk-grafana/dataviz/test-datasource/seeded-random-walk
gtk-grafana/flamegraph/canvas-compare
gtk-grafana/jest-canvas-mock-compare/refactor
gtk-grafana/piechart-keyboard-focus-poc
gtk-grafana/time-compare/not-saving-bug
haris/custom-var-bug-on-save
haris/global-vars-srv
haris/section-var-mutation-api
haris/section-vars-in-panel-edit
hive-5g361k
hugoh/add-cache-keys
hugoh/migrate-vitest
hugoh/query-history-replace-loggers
iam-uid-scope-translation
iam2055/mirror-gh-overrides
idastambuk/option-variables
idastambuk/tab-row-slug-fix-legacy
ihm/260312-dynamic-dashboards-panel-updates
ihm/260408-filter-group-by-ga
ihm/260428-escalation-21533
ihm/260428-escalation-21533-error
ihoryeromin/query-editor-header-cleanup
ihoryeromin/query-editor-next-bulk-actions-bar-in-footer
ihoryeromin/query-editor-responsive-sidebar-resize-handle
ihoryeromin/query-editor-stable-transformation-ids
ihoryeromin/splash-screen-default-enabled
instant
iortega/fix-errors-in-manage-panels-v3
iortega/mutation-api-annotations
ismail/remove-grafana-prometheus-package
ismail/remove-prometheus-from-built-in-plugins
ivan/mutation-api-dashboard-scene-add-variable
ivana/rename-ai-o11y-to-ai
iwysiu/cw/411b
iwysiu/loki/dsAbstraction
jackw/consolidate-global-ambient-types
jackw/login-app-setting-errors
jackw/poc-vite
jackw/remove-compiled-boot-script-flag
jackw/replace-lerna-with-nx
jackw/rspack-plugins
jackw/separate-swagger-builds
jarben/connections-viewer-access
jarben/fix-cves-april-2026
jcalisto/provisioning-refactor-parallel
jesdavpet/pilot-meticulous-ai-local-only
jh/deprecate-old-feature-toggle-frontend
jh/e2e-flake-check
jh/fs-full-settings
jh/prefs-api-migration
jh/selfhosted-runners-detect-changes
jpq/dashboard-search-type-plural-aliases
jpq/fix-non-rvmanager-create-toctou
jtroy/authn-session-config-resolver
jtroy/skip-unnecessary-team-syncs
juanicabanas/org-defined-templates
kap/feature-flag-navigation-items
kb/metadata-on-table-and-column
kbrandt/disable-expression-query
kevinwcyu/116506-query-logs-by-data-source-name-and-type
kevinwcyu/116506-query-logs-by-data-source-name-and-type-backend
kevinwcyu/116506-query-logs-by-data-source-name-and-type-frontend
khalilhaji/cue-union-test
km/fix-makefile-dependency-for-windows-builds
km/remove-codeql-job
km/reverts
km/split-pro-build-2
km/split-pro-build-deb-docker
km/test-ephemeral-instances
konrad-poc/grouped-view-revamped
konrad/add-alert-rule-to-explore-2b63
konrad/fix-frozen-rtkq-contact-point-settings
kristina/config-query-mapping
kristina/corr-service-split
kristina/correlation-edit-ext-to-query-bug-BE
kristina/correlation-edit-ext-to-query-bug-FE
kristina/correlations-legacy-2-ap
kristina/correlations-range
kristina/correlations-range-data
kristina/update-app-sdk
l2d2/1704-logs-datasource-goff
lauren-alerting-instance-drawer-drilldown-contact-point
lauren/alerting-instance-drawer-drilldown-declare-incident
lauren/alerting-instance-drawer-drilldown-declare-incident-be
leeoniya/TimeOfDayPicker-2
leeoniya/codemirror
leeoniya/combobox-fixes
leeoniya/graphng-hideFrom-plotLegend
leeoniya/histogram-e2e-screenie
leeoniya/lazy-ol-tables-original
leeoniya/moment-to-luxon
leeoniya/native-heatmap-zero-bounds
leeoniya/perf-research
leeoniya/remove-d3
leeoniya/state-timeline-fix-dual-time-multi-series
leeoniya/state-timeline-value-mappings
leeoniya/statetimeline-tooltip-hideFrom-fix
leeoniya/timeofdaypicker
leeoniya/x-axis-zero-decimals
linoman/sa-name_resolver
linoman/sa-phase2-tests
linoman/sa-rp-action_set_migration
linoman/sa-rp_action_set_mapping
linoman/sa-rp_admission_validation
linoman/sa-rp_wire_restconfig_apigroup
linoman/teambinding_flaky_diag_logs
lucychen/fix-teamlbac-feature-flag
macabu/extract-innermost-service-identity-req
macabu/renovate-go-deps
macabu/secrets-squirrel
macabu/update-otlp-libs-cve-release-11.6.15
macabu/update-otlp-libs-cve-release-12.2.9
macabu/update-otlp-libs-cve-release-12.3.7
main
mariell/backport-module-fixes-13.0.1
mariell/migrate-to-native-paths-batch-2
mariell/policy-bot-confusion-on-patch
mariell/postgres-warning-on-superuser
mariell/postgres-warning-on-superuser-frontend
mariell/update-upgrade-strategy-wiki
marinnedea-patch-1
matyax/log-details-displayed-fields-deprecation
matyax/logstable/line-wrap
matyax/loki-language-provider-detected-endpoints
mckn/async-datasource-apis
mckn/async-datasource-migrations
mckn/check-selectors
mckn/ds-picker-test-migration
mdv/annotations-k8s-feature-flag
mdv/annotations-k8s-flag-fe
mdv/annotations-new-client
mdv/bump-scenes-v7.4.2
mdv/fix-anno-list-panel-rows
mdv/fix-nonapplic-header-hooks-violation
mdv/non-applicable-filters-prometheus
mgyongyosi/move-external-group-mappings-to-team
mgyongyosi/rvmanager-deadlock-retry
mgyongyosi/team-member-subresources
mhamid/role-deletion-k8s
mhamid/storagewrapper-watch-patch
mmandrus/experiments/grafdev-cli
moustafab/create-rule-wo-group
moustafab/fix-selector-generation
moustafab/provenance-manager-mapping
moustafab/rule-history
move-v0-to-v1
navigation/workflows
new-filtering-for-connections
new-filtering-for-connections-v2
nickrichmond/dpro-46
njvrzm/dsauth-fix
oscark/dashboard-outline-variable-label
oscark/fix-kiosk-controls-empty-container
oscark/paste-v1-panel-into-dynamic-dashboards
oscark/tabs-scroll-buttons
pepe/alertview-preview-routing
plugin-dependency-install
plugin-proxy-norm-path
preferences-include-help-flags1
preferences-mode5
preinstall-grafana-assistant-enterprise
prometheus/bohandley-add-limit-for-client-calls-for-metric-names
provisioning/export-backend
provisioning/implement-export
pst/dualwrite-replace-mock-with-fake
query-resolution
refactor/recent-scopes-minimal-storage
release-0.0.0-cloud.0
release-11.0.0
release-11.0.0-preview
release-11.0.1
release-11.0.10
release-11.0.11
release-11.0.12
release-11.0.2
release-11.0.3
release-11.0.4
release-11.0.5
release-11.0.5+security-01
release-11.0.6
release-11.0.6+security-01
release-11.0.7
release-11.0.8
release-11.0.9
release-11.1.0
release-11.1.1
release-11.1.10
release-11.1.11
release-11.1.12
release-11.1.13
release-11.1.14
release-11.1.2
release-11.1.3
release-11.1.4
release-11.1.5
release-11.1.6
release-11.1.6+security-01
release-11.1.7
release-11.1.7+security-01
release-11.1.8
release-11.1.9
release-11.2.0
release-11.2.1
release-11.2.1+security-01
release-11.2.10
release-11.2.10+security-01
release-11.2.11
release-11.2.2
release-11.2.2+security-01
release-11.2.3
release-11.2.3+security-01
release-11.2.4
release-11.2.5
release-11.2.6
release-11.2.7
release-11.2.8
release-11.2.8+security-01
release-11.2.9
release-11.2.9+security-01
release-11.3.0
release-11.3.0+security-01
release-11.3.1
release-11.3.10
release-11.3.2
release-11.3.3
release-11.3.4
release-11.3.5
release-11.3.5+security-01
release-11.3.6
release-11.3.6+security-01
release-11.3.7
release-11.3.7+security-01
release-11.3.8
release-11.3.8+security-01
release-11.3.9
release-11.4.0
release-11.4.1
release-11.4.2
release-11.4.3
release-11.4.3+security-01
release-11.4.4
release-11.4.4+security-01
release-11.4.5
release-11.4.5+security-01
release-11.4.6
release-11.4.6+security-01
release-11.4.7
release-11.4.8
release-11.4.9
release-11.5.0
release-11.5.1
release-11.5.10
release-11.5.11
release-11.5.2
release-11.5.3
release-11.5.3+security-01
release-11.5.4
release-11.5.4+security-01
release-11.5.5
release-11.5.5+security-01
release-11.5.6
release-11.5.6+security-01
release-11.5.7
release-11.5.8
release-11.5.9
release-11.6.0
release-11.6.0+security-01
release-11.6.0-Update-JWT-library-CVE-2025-30204
release-11.6.1
release-11.6.1+security-01
release-11.6.10
release-11.6.10+security-01
release-11.6.11
release-11.6.12
release-11.6.13
release-11.6.14
release-11.6.14+security-01
release-11.6.15
release-11.6.2
release-11.6.2+security-01
release-11.6.3
release-11.6.3+security-01
release-11.6.4
release-11.6.5
release-11.6.6
release-11.6.7
release-11.6.8
release-11.6.9
release-11.6.9+security-01
release-12.0.0
release-12.0.0+security-01
release-12.0.1
release-12.0.1+security-01
release-12.0.1-backport-pr-104605
release-12.0.10
release-12.0.11
release-12.0.2
release-12.0.2+security-01
release-12.0.3
release-12.0.4
release-12.0.5
release-12.0.6
release-12.0.6+security-01
release-12.0.7
release-12.0.8
release-12.0.8+security-01
release-12.0.9
release-12.1.0
release-12.1.1
release-12.1.10
release-12.1.10+security-01
release-12.1.11
release-12.1.2
release-12.1.2-npm
release-12.1.3
release-12.1.3+security-01
release-12.1.4
release-12.1.5
release-12.1.5+security-01
release-12.1.6
release-12.1.6+security-01
release-12.1.7
release-12.1.8
release-12.1.9
release-12.2.0
release-12.2.1
release-12.2.1+security-01
release-12.2.2
release-12.2.3
release-12.2.3+security-01
release-12.2.4
release-12.2.4+security-01
release-12.2.5
release-12.2.6
release-12.2.7
release-12.2.8
release-12.2.8+security-01
release-12.2.9
release-12.3.0
release-12.3.1
release-12.3.1+security-01
release-12.3.2
release-12.3.2+security-01
release-12.3.3
release-12.3.4
release-12.3.5
release-12.3.6
release-12.3.6+security-01
release-12.3.7
release-12.4.0
release-12.4.1
release-12.4.2
release-12.4.3
release-12.4.4
release-13.0.0
release-13.0.1
release-13.0.2
release-v9.0.0
remove-apistore-secure-mock
remove-ds-feature-toggle
remove-legacy-groupsync
remove-mockdocumentbuilder
remove-some-hard-coded-colors
renato.costa/broadcaster-metrics-resource-label
renato.costa/fix-go-leak-check
renato.costa/kv-leases-storage-backend
renato.costa/list-history-frontend-no-order-assumption
renato.costa/sqlkv-leases
renato.costa/sqlkv-remove-unused-queries
renovate/augurs
renovate/busybox-1.37.0
renovate/codemirror
renovate/grafana-aws-sdk-0.x-lockfile
renovate/grafana-tempo-2.x
renovate/moment-timezone-0.x
renovate/msagl-core-1.x-lockfile
renovate/msagl-parser-1.x-lockfile
renovate/nanoid-5.x-lockfile
renovate/npm-uuid-vulnerability
renovate/pin-dependencies
renovate/react-calendar-6.x-lockfile
renovate/react-data-grid-digest
renovate/react-hook-form-7.x-lockfile
renovate/zod-4.x-lockfile
resource-metrics
resource-permissions-support-k8s
revert-119110-njvrzm/finish-decoupling-mssql-backend
revert-119167-njvrzm/decouple-influxdb-backend
revert-122859-unified-storage-remove-k8s-quotas-feature-flag
revert-122860-unified-storage-remove-k8s-quotas-feature-flag-frontend
revert-123030-zanzana/refactor-reconciler-read
revert-123834-macabu/secret-secure-value-metadata-cache
rjimenez/disable-push-protected-branch
robbymilo/deploy-preview-test
robbymilo/latest-broken-links
robbymilo/latest-broken-links-2
rodrigopk/alert-list-evaluation-chain-drawer
rodrigopk/alertingrulesapi-folder-view
rodrigopk/backport-120096-to-12-4
rodrigopk/move-gma-import-wizard-entrypoint
rodrigopk/poc-alert-list-chain-rail
rodrigopk/poc-alert-rules-api-evaluation
rodrigopk/poc-alert-rules-api-list
rodrigopk/poc-show-imported-contact-points-in-selector
rodrigopk/surface-contact-point-creation-errors
rwwiv/ci-blobless-clone
rwwiv/ngalert-eval-logging
rwwiv/rulechain
santihernandezc/export_sender_metrics
seangriffin/dpro-1
seangriffin/dpro-33
seangriffin/dpro-37
seangriffin/dpro-70
secrets-create-v1-types
secrets/update-version-to-v1
serge/old-dashboards-arch-clean-up
serge/replace-selects-with-combobox-dashboard-variables
shirley/data-rowindex
sj/adhoc-filter-labels-combined-2709
sj/sql-expression-structure-redaction-dd62
slow
sql-abstraction-prototype
state-timeline-name-position-above-bars
steady
steady-http2-o11y
steady-patch-2
stevesg/historian-return-rule-title-from-counts
stevesg/multiple-enterprise-commands
sven/assistant-datasource-deny-oss
tab-row-slug-fix
titolins/alerting-inhibition-rules-docs-toggle
titolins/alerting-ini-notification-rate-limits
titolins/import-dma-sync-test
toddtreece/plugin-reconcile-improvements
toddtreece/reconcile-ring
toddtreece/sdk-generics
toddtreece/test-app-sdk-metrics
tskarhed/scopes/defaultpath-race-condition
tskarhed/scopes/scope-node-defaultpath
tskarhed/scopes/use-scopes-navigation-endpoint-default
undef1nd/flags-migration
undef1nd/test-apiserver-ofrep
update-cve-deps
update-cve-deps2
update-lbac-traces
urbiz-support-api-rates
use-v1-in-dashbaord-service
v1.8.x
v10.0.x
v10.1.x
v10.2.x
v10.3.x
v10.4.x
v11.0.x
v11.1.x
v11.2.x
v11.3.x
v11.4.x
v11.5.x
v2.0.x
v2.1.x
v2.6.x
v3.0.x
v3.1.x
v4.0.x
v4.1.x
v4.2.x
v4.3.x
v4.4.x
v4.5.x
v4.6.x
v4.7.x
v5.0.x
v5.1.x
v5.2.x
v5.3.x
v5.4.x
v6.0.x
v6.1.x
v6.2.x
v6.3.x
v6.4.x
v6.5.x
v6.6.x
v6.7.x
v7.0.x
v7.1.x
v7.2.x
v7.3.x
v7.4.x
v7.5.x
v8.0.x
v8.1.x
v8.2.x
v8.3.x
v8.4.x
v8.5.x
v9.0.x
v9.1.x
v9.2.x
v9.3.x
v9.4.x
v9.5.x
vector-storage-add-backfilling
vector-storage-add-search
vuln-cve/npm_and_yarn/axios-1.15.0-to-release-12.0.11
warden/ga-4bop
wb/plugins-app-st-install
wip/zanzana-contextual-teams-poc
worktree/mutation-api-undo-redo
yuri-tceretian/alerting-merge
yuri-tceretian/contact-points-v2
ywzheng1/git-sync-bulk-action-fix
ywzheng1/git-sync-files-endpoint-resource-counts
ywzheng1/git-sync-fix-bulk-move-folder-picker
ywzheng1/git-sync-hide-team-folder-from-folder-picker
zanzana/pr1-lease-extend
zanzana/pr2-eventual-kv
zanzana/pr3-kv-lease-elector
zanzana/pr4-wire-kv-provider
zanzana/pr5-zanzana-integration
1.0.0
6.1.6
7.0.0
7.2.1
dupa
list
omgtest
packages@6.3.0-alpha.33
packages@6.3.0-alpha.36
packages@6.3.0-beta.1
pkg/promlib/v0.0.1
pkg/promlib/v0.0.10
pkg/promlib/v0.0.11
pkg/promlib/v0.0.2
pkg/promlib/v0.0.3
pkg/promlib/v0.0.4
pkg/promlib/v0.0.5
pkg/promlib/v0.0.6
pkg/promlib/v0.0.7
pkg/promlib/v0.0.8
pkg/promlib/v0.0.9
pkg/util/xorm/v0.0.1
pull
rrc_fast_12.2.0-17261372546.patch1
rrc_steady_12.2.0-17245430286.patch1
rrc_steady_12.4.0-19174562009.patch4
rrc_steady_13.0.0-22843068776.patch2
test
v0.0.0-cloud
v0.0.0-kmdagger1
v0.0.0-kmdagger2
v0.0.0-kmdagger3
v0.0.0-test
v0.0.0-test.2
v0.0.0-testrgm3
v0.0.0-testrgm4
v0.0.0-testrgm6
v0.0.1-test
v0.0.85-test
v1.0
v1.0.1
v1.0.2
v1.0.3
v1.0.4
v1.1.0
v1.2.0
v1.3.0
v1.4.0
v1.5.0
v1.5.1
v1.5.2
v1.5.3
v1.5.4
v1.6.0
v1.6.1
v1.7.0
v1.7.0-rc1
v1.8.0
v1.8.0-rc1
v1.8.1
v1.9.0
v1.9.0-rc1
v1.9.1
v10.0.0
v10.0.0-preview
v10.0.1
v10.0.10
v10.0.11
v10.0.12
v10.0.13
v10.0.2
v10.0.3
v10.0.4
v10.0.5
v10.0.6
v10.0.8
v10.0.9
v10.1.0
v10.1.1
v10.1.10
v10.1.2
v10.1.4
v10.1.5
v10.1.6
v10.1.7
v10.1.8
v10.1.9
v10.2.0
v10.2.1
v10.2.2
v10.2.3
v10.2.4
v10.2.5
v10.2.6
v10.2.7
v10.2.8
v10.2.9
v10.3.0
v10.3.1
v10.3.10
v10.3.11
v10.3.12
v10.3.3
v10.3.4
v10.3.5
v10.3.6
v10.3.7
v10.3.8
v10.3.9
v10.4.0
v10.4.1
v10.4.10
v10.4.11
v10.4.12
v10.4.13
v10.4.14
v10.4.15
v10.4.16
v10.4.17
v10.4.17+security-01
v10.4.18
v10.4.18+security-01
v10.4.19
v10.4.19+security-01
v10.4.2
v10.4.3
v10.4.4
v10.4.5
v10.4.6
v10.4.7
v10.4.8
v10.4.9
v11.0.0
v11.0.0-preview
v11.0.1
v11.0.10
v11.0.11
v11.0.2
v11.0.3
v11.0.4
v11.0.5
v11.0.5+security-01
v11.0.6
v11.0.6+security-01
v11.0.7
v11.0.8
v11.0.9
v11.1.0
v11.1.1
v11.1.10
v11.1.11
v11.1.12
v11.1.13
v11.1.2
v11.1.3
v11.1.4
v11.1.5
v11.1.6
v11.1.6+security-01
v11.1.7
v11.1.7+security-01
v11.1.8
v11.1.9
v11.1.999-zserge-test
v11.2.0
v11.2.1
v11.2.1+security-01
v11.2.10
v11.2.10+security-01
v11.2.2
v11.2.2+security-01
v11.2.3
v11.2.3+security-01
v11.2.4
v11.2.5
v11.2.6
v11.2.7
v11.2.8
v11.2.8+security-01
v11.2.9
v11.2.9+security-01
v11.3.0
v11.3.0+security-01
v11.3.1
v11.3.2
v11.3.3
v11.3.4
v11.3.5
v11.3.5+security-01
v11.3.6
v11.3.6+security-01
v11.3.7
v11.3.7+security-01
v11.3.8
v11.3.8+security-01
v11.3.9
v11.4.0
v11.4.1
v11.4.2
v11.4.3
v11.4.3+security-01
v11.4.4
v11.4.4+security-01
v11.4.5
v11.4.5+security-01
v11.4.6
v11.4.6+security-01
v11.4.7
v11.4.8
v11.5.0
v11.5.1
v11.5.10
v11.5.2
v11.5.3
v11.5.3+security-01
v11.5.4
v11.5.4+security-01
v11.5.5
v11.5.5+security-01
v11.5.6
v11.5.6+security-01
v11.5.7
v11.5.8
v11.5.9
v11.6.0
v11.6.0+security-01
v11.6.1
v11.6.1+security-01
v11.6.10
v11.6.10+security-01
v11.6.11
v11.6.12
v11.6.13
v11.6.14
v11.6.14+security-01
v11.6.2
v11.6.2+security-01
v11.6.3
v11.6.3+security-01
v11.6.4
v11.6.5
v11.6.6
v11.6.7
v11.6.8
v11.6.9
v11.6.9+security-01
v12.0.0
v12.0.0+security-01
v12.0.1
v12.0.1+security-01
v12.0.10
v12.0.2
v12.0.2+security-01
v12.0.3
v12.0.4
v12.0.5
v12.0.6
v12.0.6+security-01
v12.0.7
v12.0.8
v12.0.8+security-01
v12.0.9
v12.1.0
v12.1.1
v12.1.10
v12.1.10+security-01
v12.1.2
v12.1.3
v12.1.3+security-01
v12.1.4
v12.1.5
v12.1.5+security-01
v12.1.6
v12.1.6+security-01
v12.1.7
v12.1.8
v12.1.9
v12.2.0
v12.2.1
v12.2.1+security-01
v12.2.2
v12.2.3
v12.2.3+security-01
v12.2.4
v12.2.4+security-01
v12.2.5
v12.2.6
v12.2.7
v12.2.8
v12.2.8+security-01
v12.3.0
v12.3.1
v12.3.1+security-01
v12.3.2
v12.3.2+security-01
v12.3.3
v12.3.4
v12.3.5
v12.3.6
v12.3.6+security-01
v12.4.0
v12.4.1
v12.4.2
v12.4.3
v13.0.0
v13.0.1
v2.0.0-beta1
v2.0.0-beta3
v2.0.1
v2.0.2
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.5.0
v2.6.0
v2.6.0-beta1
v3.0-beta1
v3.0-beta2
v3.0-beta3
v3.0-beta4
v3.0-beta5
v3.0.0-beta6
v3.0.0-beta7
v3.0.1
v3.0.2
v3.0.3
v3.0.4
v3.1.0
v3.1.0-beta1
v3.1.1
v3.2.1-test
v4.0.0
v4.0.0-beta1
v4.0.0-beta2
v4.0.1
v4.0.2
v4.1.0
v4.1.0-beta1
v4.1.1
v4.1.2
v4.2.0
v4.2.0-beta1
v4.3.0
v4.3.0-beta1
v4.3.1
v4.3.2
v4.4.0
v4.4.1
v4.4.2
v4.4.3
v4.5.0
v4.5.0-beta1
v4.5.1
v4.5.2
v4.6.0
v4.6.0-beta1
v4.6.0-beta2
v4.6.0-beta3
v4.6.1
v4.6.2
v4.6.3
v4.6.4
v4.6.5
v5.,2.4
v5.0.0
v5.0.0-beta1
v5.0.0-beta2
v5.0.0-beta3
v5.0.0-beta4
v5.0.0-beta5
v5.0.1
v5.0.2
v5.0.3
v5.0.4
v5.1.0
v5.1.0-beta1
v5.1.1
v5.1.2
v5.1.3
v5.1.4
v5.1.5
v5.2.0
v5.2.0-beta1
v5.2.0-beta2
v5.2.0-beta3
v5.2.1
v5.2.2
v5.2.3
v5.2.4
v5.2.5
v5.3.0
v5.3.0-beta1
v5.3.0-beta2
v5.3.0-beta3
v5.3.1
v5.3.2
v5.3.3
v5.3.4
v5.4.0
v5.4.0-beta1
v5.4.1
v5.4.2
v5.4.3
v5.4.4
v5.4.4_private
v5.4.5
v6.0.0
v6.0.0-beta1
v6.0.0-beta2
v6.0.0-beta3
v6.0.1
v6.0.2
v6.1.0
v6.1.0-beta1
v6.1.1
v6.1.2
v6.1.3
v6.1.4
v6.1.6
v6.2.0
v6.2.0-beta1
v6.2.0-beta2
v6.2.1
v6.2.2
v6.2.3
v6.2.4
v6.2.5
v6.3.0
v6.3.0-alpha.30
v6.3.0-beta.0
v6.3.0-beta1
v6.3.0-beta2
v6.3.0-beta3
v6.3.0-beta4
v6.3.1
v6.3.2
v6.3.3
v6.3.4
v6.3.5
v6.3.6
v6.3.7
v6.4.0
v6.4.0-beta1
v6.4.0-beta2
v6.4.1
v6.4.2
v6.4.3
v6.4.4
v6.4.5
v6.5
v6.5.0
v6.5.0-beta1
v6.5.1
v6.5.2
v6.5.3
v6.6.0
v6.6.0-beta1
v6.6.1
v6.6.2
v6.7.0
v6.7.0-beta1
v6.7.1
v6.7.2
v6.7.3
v6.7.4
v6.7.5
v6.7.6
v7.0.0
v7.0.0-beta1
v7.0.0-beta2
v7.0.0-beta3
v7.0.1
v7.0.2
v7.0.3
v7.0.4
v7.0.5
v7.0.6
v7.1.0
v7.1.0-beta1
v7.1.0-beta2
v7.1.0-beta3
v7.1.1
v7.1.2
v7.1.3
v7.1.4
v7.1.5
v7.2.0
v7.2.0-beta1
v7.2.0-beta2
v7.2.1
v7.2.2
v7.2.3
v7.3.0
v7.3.0-beta1
v7.3.0-beta2
v7.3.1
v7.3.10
v7.3.2
v7.3.3
v7.3.4
v7.3.5
v7.3.6
v7.3.7
v7.3.8
v7.4.0
v7.4.0-beta1
v7.4.1
v7.4.2
v7.4.3
v7.4.4
v7.4.5
v7.5.0
v7.5.0-beta1
v7.5.0-beta2
v7.5.1
v7.5.10
v7.5.11
v7.5.12
v7.5.13
v7.5.15
v7.5.16
v7.5.17
v7.5.2
v7.5.3
v7.5.4
v7.5.5
v7.5.6
v7.5.7
v7.5.8
v7.5.9
v8.0.0
v8.0.0-beta1
v8.0.0-beta2
v8.0.0-beta3
v8.0.1
v8.0.2
v8.0.3
v8.0.4
v8.0.5
v8.0.6
v8.0.7
v8.1.0
v8.1.0-beta1
v8.1.0-beta2
v8.1.0-beta3
v8.1.1
v8.1.2
v8.1.3
v8.1.4
v8.1.5
v8.1.6
v8.1.7
v8.1.8
v8.2.0
v8.2.0-beta1
v8.2.0-beta2
v8.2.1
v8.2.2
v8.2.3
v8.2.4
v8.2.5
v8.2.6
v8.2.7
v8.3.0
v8.3.0-beta1
v8.3.0-beta2
v8.3.1
v8.3.10
v8.3.11
v8.3.2
v8.3.3
v8.3.4
v8.3.5
v8.3.6
v8.3.7
v8.4.0
v8.4.0-beta1
v8.4.1
v8.4.10
v8.4.11
v8.4.2
v8.4.3
v8.4.4
v8.4.5
v8.4.6
v8.4.7
v8.5.0
v8.5.0-beta1
v8.5.1
v8.5.10
v8.5.11
v8.5.13
v8.5.14
v8.5.15
v8.5.16
v8.5.2
v8.5.20
v8.5.21
v8.5.22
v8.5.24
v8.5.26
v8.5.27
v8.5.3
v8.5.4
v8.5.5
v8.5.6
v8.5.9
v9.0.0
v9.0.0-beta1
v9.0.0-beta2
v9.0.0-beta3
v9.0.1
v9.0.2
v9.0.3
v9.0.4
v9.0.5
v9.0.6
v9.0.7
v9.0.8
v9.0.9
v9.1.0
v9.1.0-beta1
v9.1.1
v9.1.2
v9.1.3
v9.1.4
v9.1.5
v9.1.6
v9.1.7
v9.1.8
v9.2.0
v9.2.0-279c6c6c7d
v9.2.0-beta1
v9.2.1
v9.2.10
v9.2.13
v9.2.15
v9.2.17
v9.2.18
v9.2.19
v9.2.2
v9.2.20
v9.2.3
v9.2.4
v9.2.5
v9.2.6
v9.2.7
v9.2.8
v9.3.0
v9.3.0-beta1
v9.3.1
v9.3.11
v9.3.13
v9.3.14
v9.3.15
v9.3.16
v9.3.2
v9.3.4
v9.3.6
v9.3.8
v9.4.0
v9.4.0-beta1
v9.4.1
v9.4.10
v9.4.12
v9.4.13
v9.4.14
v9.4.15
v9.4.17
v9.4.2
v9.4.3
v9.4.7
v9.4.9
v9.5.0
v9.5.1
v9.5.10
v9.5.12
v9.5.13
v9.5.14
v9.5.15
v9.5.16
v9.5.17
v9.5.18
v9.5.19
v9.5.2
v9.5.20
v9.5.21
v9.5.3
v9.5.5
v9.5.6
v9.5.7
v9.5.8
v9.5.9
vtest-new-release-pipeline
${ item.name }
${ noResults }
1101 Commits (IfSentient/example-operator)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
8dbe15c974
|
Advisor: Explicitly skip health checks for frontend-only datasources (#124125)
|
3 days ago |
|
|
b262acddf7
|
Provisioning: Negotiate receive-pack capabilities for git pushes (#124122)
Some GitLab servers wrap receive-pack responses in side-band-64k, which caused pushes that the server actually rejected (e.g. pre-receive hook declined) to surface as silent success. Enabling nanogit's capability negotiation makes the client advertise only the intersection with what the server announces, avoiding the wrapping path on those servers and keeping the default set on servers that already advertise it. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
3 days ago |
|
|
7577cb2ec2
|
Provisioning: Honor ruleset bypass for write workflow validation (#123893)
GetRulesets returned a hard block whenever a branch had any active pull_request rule, even when the configured GitHub App was in the parent ruleset's bypass_actors with bypass_mode=always. Direct push actually succeeds at runtime in that case, so the preflight produced a false positive that blocked legitimate Repository configurations. Fetch each unique parent ruleset and consult CurrentUserCanBypass; GitHub evaluates the bypass match server-side for the calling actor, so we don't need the App installation ID. Treat only "always" and "exempt" as non-blocking — "pull_request" only bypasses on PR merge. Fail-closed when the parent fetch errors so configs that would fail at push time don't silently save. Fixes #123877 Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
3 days ago |
|
|
f2e88be480
|
Provisioning: Bump nanogit to v0.17.0 to fix pushes with repositories using git modules (#124114)
Bump nanogit v0.17.0 |
3 days ago |
|
|
48dec119ef
|
Provisioning: Scope repository uniqueness by (URL, branch, path) (#123498)
* fix(FD-009): reject duplicate repos with empty paths and scope uniqueness by branch The Repository admission validator had two related defects in the (URL, path) identity-key logic: 1. Two Repositories with the same URL and both paths empty were admitted as non-duplicates, even though empty path means "repository root" — the worst case of overlap. 2. Branch was not part of the identity key, so two Repositories pointing at the same URL and path but different branches were incorrectly rejected as duplicates. The fix changes the identity rule to (URL, branch, path) with literal equality on all three components. The empty-path exception is removed. Closes grafana/git-ui-sync-project#1080 Closes grafana/git-ui-sync-project#1081 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * different approach * updating integration tests * simplifying changes * further simplifying changeS * re-adding useful comments * updating integration test * updating integration test --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
3 days ago |
|
|
251785ed66
|
chore(deps): update grafana-app-sdk to v0.54.1 (#124079)
One notable issue is the removal of the "spec.datasource.name" field selector in the correlations app, which was previously used for filtering correlations based on the datasource name. This field selector has been removed in favor of "spec.source.name". To maintain backward compatibility, the code still checks for "spec.datasource.name" in the legacy storage implementation, but it is no longer included in the selectable fields in the schema. The selector wasn't properly working for unified storage anyways and the selectable field wasn't parsed properly. The new app-sdk code throws an error now when generating invalid paths, so it needed to be updated. |
3 days ago |
|
|
bd6a01bb88
|
Advisor: Add healthchecker init function (#123620)
|
4 days ago |
|
|
ad78fa01f4
|
fix: module is now fully tidy (#124024)
* fix: module is now fully tidy * fix: update enterprise_imports * fix: make update-workspace * fix: own the code * fix: update CI check to check for enterprise imports * fix: own dependencies |
4 days ago |
|
|
c0166d8471
|
IAM: Use continue/limit pagination for /users/{name}/teams (#123921)
* Use continue/limit pagination for /user/{name}/teams
* IAM: Address review feedback on user/{name}/teams keyset pagination
- Revert flag rename in user-teams handler (keep FlagKubernetesTeamBindings)
- URL-escape the continue token in OSS integration test helper so base64
tokens survive the query-string round-trip
- Document the SortFields contract on the legacy search adapter
* IAM: Address review feedback on user/{name}/teams keyset pagination
- Document URL-encoding requirement for the continue query param in OpenAPI
- Clarify legacy adapter cost is O(N) per page (N = membership count, not bounded by MaxListLimit)
- Add unit test locking the SortFields[0] == Key.Name continue-token contract
- Surface continue-token decode errors via span and HTTP body
- Span attribute records the cursor (search_after) instead of just a bool
- Drop redundant ListMeta selector on GetUserTeamsResponse access (staticcheck QF1008)
|
4 days ago |
|
|
2d3ddde174
|
DataLinks: Nested scope handling (#123937)
* DataLinks: Nested scope handling * e2e: test the datalink interpolation for nested and non-nested * prettier |
7 days ago |
|
|
8885d14a54
|
deps(go): bump go.opentelemetry.io/collector/pdata from 1.56.0 to 1.57.0 in the go-opentelemetry-io group across 1 directory (#123942)
* deps(go): bump go.opentelemetry.io/collector/pdata Bumps the go-opentelemetry-io group with 1 update in the / directory: [go.opentelemetry.io/collector/pdata](https://github.com/open-telemetry/opentelemetry-collector). Updates `go.opentelemetry.io/collector/pdata` from 1.56.0 to 1.57.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md) - [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.56.0...pdata/v1.57.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/collector/pdata dependency-version: 1.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-opentelemetry-io ... Signed-off-by: dependabot[bot] <support@github.com> * update --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan McKinley <ryantxu@gmail.com> |
1 week ago |
|
|
07de1c5f05
|
deps(go): bump the grafana-app-sdk group across 17 directories with 1 update (#123943)
Bumps the grafana-app-sdk group with 1 update in the / directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/advisor directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/alerting/historian directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/alerting/notifications directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/alerting/rules directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/annotation directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/correlations directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/dashboard directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/dashvalidator directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/example directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/logsdrilldown directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/plugins directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/provisioning directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/quotas directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /apps/shorturl directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /pkg/apiserver directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Bumps the grafana-app-sdk group with 1 update in the /pkg/storage/unified/resource/kv directory: [github.com/grafana/grafana-app-sdk/logging](https://github.com/grafana/grafana-app-sdk). Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) Updates `github.com/grafana/grafana-app-sdk/logging` from 0.53.2 to 0.54.0 - [Release notes](https://github.com/grafana/grafana-app-sdk/releases) - [Commits](https://github.com/grafana/grafana-app-sdk/compare/v0.53.2...v0.54.0) --- updated-dependencies: - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk - dependency-name: github.com/grafana/grafana-app-sdk/logging dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: grafana-app-sdk ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
1 week ago |
|
|
688763699a
|
Unified Storage: Vector storage adds embedders for gcp and aws (#123840)
* Unified Storage: extract dashboard embeddings * adds embedders for gcp and aws. First pass. * adds some temp integration tests to test the client implementations work against their respective model providers. Pad vertexAI vectors since theyre 768 and we store 1024. Adds some more tests for the padding and batching. * remove unused truncation code * make update-workspace * fix go mod dep owner * fix edgecase with batch process * go work sync * make update-workspace * format go mod and assign owner to dep * make update-workspace |
1 week ago |
|
|
e2a864d98f
|
Provisioning: Surface cross-manager folder conflicts as warnings (#123934)
Mirrors the depth-exceeded handling from #123726 for the case where a target folder is already managed by a different manager (another repo, plugin, etc.). Returning a typed FolderManagedByOtherError lets the sync job classify it as a user warning so the queue does not retry the unrecoverable conflict. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
1 week ago |
|
|
59f12d21dc
|
Barchart: Reuse existing panels for the e2es (#123421)
* BarChart: add e2e tests for render, no-data, tooltips, legend, and data links Closes #112986 * BarChart: update golden checksums for barchart_tests dashboard * BarChart: restore eslint-suppressions.json to main state * BarChart: regenerate dev-dashboards.libsonnet to include barchart_tests * BarChart: add e2e tests for panel options (show values, stacking, full highlight, orientation) * BarChart: update golden checksum for barchart_tests with panels 7-9 * BarChart: extract uPlot center position helper to reduce duplication * BarChart: fix stacking toggle comment to match UI label (Off not None) * BarChart: restore eslint-suppressions.json to main state * reuse existing panels for the e2es * delete the newly added dashboard * make gen-jsonnet --------- Co-authored-by: Brian Gann <bkgann@gmail.com> |
1 week ago |
|
|
1f3ddefe10
|
unified-storage: create resourcepb standalone module (#123912)
|
1 week ago |
|
|
3aafdaaf67
|
Chore: Bump promlib v0.0.11 (#123736)
* bump promlib v0.0.11 and fix other dependency issues along the way * remove memcache pin and run make update-workspace * fix compile errors * pin apimachinery to v0.35.3 * make update-workspace * run gofmt * proper tidy each module + bump azure * also need to bump tempo * fix test * fix tempo test * handle omitzero since labels became a new type * more fixes to tests and linter * fix conflicts * merge main --------- Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com> Co-authored-by: Ryan McKinley <ryantxu@gmail.com> |
1 week ago |
|
|
0dd60fda62
|
Snapshots: Add public mode and external token support to snapshot MT k8s api (#120619)
|
1 week ago |
|
|
fec689329e
|
Provisioning: Add selective resource migration via Resources field (#123890)
* Provisioning: Add selective resource migration via Resources field Mirrors the selective Export support (#123381) for the Migrate job: MigrateJobOptions now accepts a Resources []ResourceRef list. When empty the legacy "migrate everything" behavior is preserved; when non-empty the inner Export pushes only the listed dashboards (folder hierarchy is still emitted). For instance-target repos we skip the namespace cleanup phase in selective mode, since deleting every other unmanaged resource would be destructive when the user only asked to take over specific dashboards. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Add MigrateJobOptions.Resources to OpenAPI violation exceptions The codegen check expected the new slice field to be listed alongside the other list_type_missing entries (DeleteJobOptions.Resources, ExportJobOptions.Resources, MoveJobOptions.Resources, etc.). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
1 week ago |
|
|
a4faa7f6bd
|
Provisioning: Per-verb fallback for the files subresource (#123867)
The files connector handles GET/POST/PUT/DELETE in a single place but was wired with a single static fallback role (accessWithAdmin), so any role fallback was wrong for at least one verb family — reads should fall back to Viewer, writes to Editor; an Admin-only fallback over-restricts both. Introduce auth.NewVerbAwareAccessChecker(read, write AccessChecker) which dispatches Check by req.Verb (get/list/watch -> read, everything else -> write), and compose accessWithViewer + accessWithEditor for the files connector. Inner checkers retain their fallback configuration; the wrapper's WithFallbackRole is intentionally a no-op (per-verb fallbacks are decided at construction). This does not by itself resolve the customer regression where MT-side authz denies dashboards:create for Editors on non-General folders — that denial originates in the MT authz service and the role fallback is a no-op in token mode regardless. Filed separately for the I&A team. This PR removes the static-fallback-role footgun on the files connector so the eventual MT fix surfaces correctly here. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
1 week ago |
|
|
b3784aac27
|
Provisioning: Retry SQLITE_BUSY on repository status patch (#123873)
Provisioning: Retry SQLITE_BUSY on repo status patch The repository status patcher only retried K8s optimistic-concurrency conflicts. When the unified storage SQL backend bubbles a transient SQLITE_BUSY through the apiserver (as a 500 InternalError carrying the "database is locked"/"SQLITE_BUSY" text), the patch failed instead of retrying. This surfaced as flakes such as TestIntegrationProvisioning_FullSync_FolderMetadataTitle on the SQLite shards. Switch to retry.OnError with a predicate that retries both K8s conflicts and SQLite lock contention, and add a unit test for the new path. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
1 week ago |
|
|
43d601a8f6
|
deps(go): bump the k8s-io group across 2 directories with 3 updates (#123865)
* deps(go): bump the k8s-io group across 2 directories with 3 updates Bumps the k8s-io group with 1 update in the / directory: [k8s.io/kube-aggregator](https://github.com/kubernetes/kube-aggregator). Bumps the k8s-io group with 1 update in the /hack directory: [k8s.io/code-generator](https://github.com/kubernetes/code-generator). Updates `k8s.io/kube-aggregator` from 0.35.0 to 0.36.0 - [Commits](https://github.com/kubernetes/kube-aggregator/compare/v0.35.0...v0.36.0) Updates `k8s.io/code-generator` from 0.35.0 to 0.36.0 - [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.0...v0.36.0) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) Updates `k8s.io/kube-openapi` from 0.0.0-20260127142750-a19766b6e2d4 to 0.0.0-20260317180543-43fb72c5454a - [Commits](https://github.com/kubernetes/kube-openapi/commits) --- updated-dependencies: - dependency-name: k8s.io/kube-aggregator dependency-version: 0.36.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: k8s-io - dependency-name: k8s.io/code-generator dependency-version: 0.36.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io - dependency-name: k8s.io/kube-openapi dependency-version: 0.0.0-20260317180543-43fb72c5454a dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-io ... Signed-off-by: dependabot[bot] <support@github.com> * update codegen * update codegen --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan McKinley <ryantxu@gmail.com> |
1 week ago |
|
|
84a727b1f0
|
Provisioning: Surface folder uid-too-long and other validation 4xx as sync warnings (#123797)
* Provisioning: Surface folder uid-too-long as a sync warning When the folder API rejects a write because the UID exceeds 40 characters, provisioning treats it as a retryable hard error today and the sync job is requeued every 5 minutes — the same retry-loop bug that #123726 fixed for max-depth violations, just for a different validation rule. Path-derived UIDs always fit (resources.appendHashSuffix truncates to 40), so the rejection only fires when _folder.json declares a stable UID over the limit; the user must fix the repository, not wait for a retry. Mirror the FolderDepthExceeded pattern: ErrFolderUIDTooLong sentinel, FolderUIDTooLongError type, IsFolderUIDTooLongAPIError matcher (sentinel + Status.Details.UID == "folder.uid-too-long" + substring fallback for the pre-fix legacy 500 form and the post-fix bracketed message-id form). EnsureFolderExists wraps the rejection on both Create and Update/move paths. classifyWarning maps it to the new ReasonFolderUIDTooLong, so the sync surfaces as a warning instead of an error and downstream resources under the offending folder are short-circuited via the existing failedCreations machinery. Integration test in pkg/tests/apis/provisioning/foldermetadata/ (env has folder metadata enabled) writes _folder.json with a 41-char UID, runs a pull job, asserts JobStateWarning, no errors, exactly one uid-too-long warning, the dashboard under the bad folder is silently skipped, the shallow folder still gets created, condition reason is CompletedWithWarnings, and a re-run reproduces the same warning state without state corruption. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Surface generic folder validation 4xx as a sync warning Extends the depth-exceeded and uid-too-long handling to cover any folder-API validation rejection the more specific matchers don't claim (illegal-uid-chars, reserved-uid, future folder validations). Same retry-loop bug, same fix shape: typed warning, generic reason. resources.IsFolderValidationAPIError matches anything a depth or uid-too-long check would catch, plus any K8s StatusError whose code is 400 and whose Status.Details.UID has the "folder." messageID prefix. That covers every existing folder errutil sentinel post-#123709 and any new ones that follow the same pattern. Restricted to 400 (not all 4xx) so 401/403/404 stay in their existing ResourceOwnership/Unmanaged conflict territory; restricted to known message IDs so unknown 400s (likely caller bugs) keep surfacing as errors we can debug. EnsureFolderExists wraps the rejection on both Create and Update/move paths after the more specific depth/uid-too-long checks. classifyWarning maps it to the new ReasonFolderValidationFailed; the order of cases guarantees the more specific reasons (FolderDepthExceeded, FolderUIDTooLong) win when they apply. apierrors.ToFolderStatusError now preserves the structured Details (messageID) when the underlying error is an errutil.Error. Without this the JSON-only conversion stripped Status.Details.UID and the structured matcher above could only catch errors via the legacy substring path. This is also the path the folder_storage Create handler sends every admission rejection through. Integration test (folder metadata env): writes a _folder.json with an illegal-chars UID, asserts JobStateWarning, exactly one validation warning, no errors, the dashboard under the bad folder is silently skipped, the shallow folder still gets created, and re-runs reproduce the same warning state. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Allow-list folder validation message IDs (review fixes) Codex flagged a P1 on the previous commit: matching every "folder.*" message ID treats folder.ErrBadRequest ("folder.bad-request") — a 400 errutil error raised on internal/programmer faults like a missing signed-in user — as a non-fatal warning. That silently downgrades real provisioning bugs to "CompletedWithWarnings". Switch IsFolderValidationAPIError from a "folder." prefix match to an explicit allow-list of nine known user-fixable validation message IDs: title-empty, invalid-uid, invalid-uid-chars, uid-too-long, cannot-be-parent-of-itself, maximum-depth-reached, cannot-be-moved-to-k6, name-exists, circular-reference. Future folder.* errutil errors must be added to the allow-list explicitly after the team confirms the failure is user-fixable; defaulting to "warning" for the unknown is the wrong policy. Tests pin all three properties: allow-list IDs match, folder.bad-request does not match, and an unknown "folder.future-..." ID does not match. Also addresses Copilot review nits: - errors.go matcher comment referenced #123709 instead of #123843. - folders.go Create-path comment claimed a path-derived UID could overflow; appendHashSuffix always truncates to <=40, so the comment now correctly attributes the rejection to user-supplied UID sources (_folder.json today, future external sources tomorrow). - folders_test.go test comment described exercising both pre-fix 500 and post-fix 400 forms; the stub only returns BadRequest, so the comment now reflects what the test actually does (the legacy 500-form is covered by IsFolderUIDTooLongAPIError's substring fallbacks in errors_test.go instead). - Both integration tests had a `for _, e := range jobObj.Status.Errors` loop after `require.Empty(t, jobObj.Status.Errors)` — dead code. Dropped both loops; require.Empty already covers the assertion. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
1 week ago |
|
|
9aafc68be1
|
Dashboards: Tighten panel ID types in v2 schema to integers (#123139)
* Dashboards: Tighten panel ID types in v2 schema to integers Change `PanelSpec.id`, `LibraryPanelKindSpec.id`, and `AnnotationPanelFilter.ids` from CUE `number`/`uint32` to `uint16` across v2alpha1, v2beta1, and v2. Why: kube-openapi maps `uint32` to `format: int64`, and CUE `number` to `type: number, format: double`. Consumer codegens that follow the int64-as-string convention (to avoid JS precision loss past 2^53) then serialise panel IDs as strings, breaking wire compatibility with Grafana's typed Go decoders. Panel IDs are integers in practice and always have been; `uint16` narrows the advertised range to match reality and renders cleanly as `format: int32` in OpenAPI. Fixes grafana/hyperion-planning#588. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Dashboards: Widen v2 panel ID types from uint16 to int32 & >=0 uint16 caps panel IDs at 65,535. Fine for UI-created dashboards, but dashboards-as-code (Terraform, jsonnet, k8s controllers) can emit timestamps or arbitrary numerics as IDs. The v1 -> v2alpha1 converter then silently drops those. uint16 also leaves a contract mismatch: CUE uint16 emits format: int32 in OpenAPI, so the wire spec advertises int32 range while the Go decoder rejects anything > 65535. Same class of loose-contract bug as the original int64-with-string issue, just inverted. int32 & >=0 emits the same OpenAPI shape (format: int32, no string coercion), widens the range to ~2.1B, and aligns the Go runtime exactly with the wire. Migration silent-drop path tightened to MaxInt32 -- unreachable in practice. Per @kristinademeshchik's review on the original PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Dashboards: regen v2 OpenAPI snapshots and gofmt codegen Two CI-driven fixups for the int32 schema change: - OpenAPI v2 stable: regenerate dashboard.grafana.app-v2.json (snapshot + package mirror). Previous commit only updated the v2alpha1 / v2beta1 specs because the wrong gen entrypoint was used; CI's "Verify OpenAPI specs" caught the v2 stable drift. - gofmt: drop stray blank lines from v0alpha1 / v1 dashboard_object_gen.go. They were introduced by running `make generate` from apps/dashboard instead of the canonical `make gen-apps` from repo root, which CI uses. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
1 week ago |
|
|
2de04f26cf
|
chore(deps): Upgrade grafana-app-sdk to v0.54.0 (#123847)
* Upgrade grafana-app-sdk to v0.54.0 and update code and tests to fix breaking changes in resource.ClientGenerator and k8s version upgrade. * Run public/app/plugins/datasource/grafana-testdata-datasource/schema/v0alpha1.json through jq to format. * Revert changes to public/app/plugins/datasource/grafana-testdata-datasource/schema/v0alpha1.json as the change seems to be entirely formatting-related. * Remove getkin/kin-openapi replace directive in apps/plugins/go.mod, and remove yaml replace directives in go.mod as getkin/kin-openapi needs newer versions. * Regenerate OpenAPI snapshots, which now include new shardSelector query field introduced in k8s 1.36 * Run yarn generate-apis * Fix linter issues. |
1 week ago |
|
|
906c7694b6
|
Dashboards: Preserve legacy string datasources in v1 to v2 conversion (#123553)
* handle ds as a string * adjust comments * improve client side migration path * go linter * unit tests * cover variable * re-use existing helper * unit tests * fix * improve comments * improve tests * empty object usecase * improve test coverage * fix test |
1 week ago |
|
|
63a8a027e8
|
Provisioning: Add commitMessageTemplate field to Repository spec (#123166)
* Provisioning: Add commitMessageTemplate field to Repository spec
Adds an optional `commitMessageTemplate` field to the RepositorySpec and
the RepositoryView so that provisioned-resource save flows can pre-populate
the commit/comment field from a per-repo template (e.g. conventional commits).
The template supports three variables — {{action}} (create/update/delete/
move/rename), {{resource}} (dashboard/folder), and {{title}} — which the
frontend interpolates at save time. When the field is empty, existing
hardcoded fallback messages ("Save dashboard: <title>", etc.) continue to
apply, so current behaviour is preserved.
Frontend wiring lives in a follow-up PR.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Provisioning: Nest commit options under CommitOptions struct
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Provisioning: Re-attach RepositoryView.commit ref in PostProcessOpenAPI
* Provisioning: Regenerate v1beta1 OpenAPI snapshot
* Provisioning: Regenerate OpenAPI client artifacts
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
1 week ago |
|
|
ea6875089f
|
Secrets: add kmsKeyId to AWSConfig (#123387)
|
1 week ago |
|
|
e375a40a0f
|
Unified Storage: Vector storage db setup and migrations (#122751)
* feat(unified-storage): add vector-storage database config section
* feat(unified-storage): add VectorBackend interface and types
* feat(unified-storage): add pgvector schema DDL and init
* feat(unified-storage): add vector SQL templates and request structs
Add 5 SQL template files (upsert, delete, search, get_latest_rv,
create_partition) and queries.go with typed request/response structs
following the sqltemplate pattern used in unified storage.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test(unified-storage): add vector SQL template snapshot tests
Add snapshot tests for all 5 SQL templates (upsert, delete, search,
get_latest_rv, create_partition) using PostgreSQL dialect only via the
mocks.CheckQuerySnapshots framework.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(unified-storage): add pgvectorBackend implementation
Implements the VectorBackend interface using pgvector-go for half-vector
similarity search, the Grafana db.DB/db.Tx abstractions for dbutil
compatibility, and a sync.Map partition cache for idempotent DDL.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test(unified-storage): add pgvectorBackend unit tests
Tests cover sanitizePartitionName, Upsert no-op with empty/nil slice,
Delete (all and stale), and GetLatestRV (value and no-rows cases)
using the existing sqlmock test infrastructure.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(unified-storage): make vector search metadata filters generic
Replace hardcoded datasource_uids/query_languages filters with a generic
MetadataFilterEntry that works for any JSONB key. The SQL template now
uses {{ range .MetadataFilters }} instead of dashboard-specific conditionals.
* refactor(unified-storage): use migrator pattern for vector schema
Replace raw schema.sql DDL with Grafana's migrator pattern (same as
MigrateResourceStore). Each DDL statement is a tracked migration against
the separate vector database, enabling incremental schema evolution.
* devenv: add pgvector docker block for vector search integration tests
PostgreSQL with pgvector extension on port 5433. Usage:
make devenv sources=pgvector
* feat(unified-storage): add vector database provider wiring
ProvideVectorBackend connects [database_vector] config to a working
pgvectorBackend: builds connection string, creates xorm engine, runs
migrations, wraps as db.DB. Returns (nil, nil) if not configured.
* test(unified-storage): add pgvector integration tests
Tests run against real PostgreSQL+pgvector via devenv block:
make devenv sources=pgvector
PGVECTOR_TEST_DB="..." go test -run TestIntegration ...
Covers: upsert, search with filters, GetLatestRV, delete stale,
upsert overwrite. Skips when PGVECTOR_TEST_DB is not set.
* chore: remove planning docs from repo
* chore: remove trivial vector config tests
* get tests passing
* partition on namespace + model so we dont mix embeddings
* wire up VectorBackend and feature flag
* fix wiring
* gofmt and provider func name change
* docs: spec for tenant watcher/deleter tracing
Performance-oriented tracing design: spans around labelling and
deletion to identify slow tenants/group-resources.
* chore: remove superpowers spec accidentally merged from local main
The docs/superpowers/specs/2026-04-20-tenant-tracing-design.md was
committed to local main and came along during a merge-back into this
branch. Per repo convention, superpowers planning docs stay outside
the repo.
* gofmt
* fix codeowners for pgvector docker block
* fix CI make gen-apps
* make update-workspace
* fix bad comment and modowners
* fix linter errors
* rename ff to vector_backend
* shard by table. Create tables on write. Remove rv dep for embeddings and track it globally in one table until we have a persistent queue
* use halfvec(1024) for embeddings to match what GA uses. Fix some comments.
* add some vector validation
* gofmt
* update partitioning strategy... again. One table per resource, tenants with many resources get their own dedicated partition created dynamically that has hnsw index, all other tenants share a single partition with no hnsw index
* add gin index to metadata when creating new partition
* move promoter into vector backend
* make gen-jsonnet
* use partitioning for resource tables instead. Makes things simpler and makes cross resource search easier
* remove top level default partition - not used
* add some comments
* promoter uses partial index instead of partitions
* shortens hnsw index name so theres more room for resource name since theres a 63 char max
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
1 week ago |
|
|
cbf6bd6c00
|
Provisioning: Folder max depth problems should be surface as warnings (#123726)
* bug: folder too depth problems should be a job warning
* bug: add integration test for max depth and other integration test
* Provisioning: Detect folder depth violations on Update/move path
The previous matcher only recognized the Create-path error string
("folder max depth exceeded"). Folder move/update validation in
pkg/registry/apis/folders/validate.go returns folder.ErrMaximumDepthReached
("Maximum nested folder depth reached"), so a managed folder being moved
deeper than the limit surfaced as a hard error and triggered the same
retry loop the warning was meant to prevent.
Broaden detection to also match the structured errutil sentinel, the K8s
status details message ID, and the public-message substring. Apply the
same FolderDepthExceededError wrapping on the Update path of
EnsureFolderExists so moves into too-deep paths are surfaced as warnings
too.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
|
1 week ago |
|
|
e66c549145
|
Provisioning: Return test results instead of HTTP 500 when GetDefaultBranch fails (#123725)
Provisioning: Surface GetDefaultBranch failures via TestResults instead of HTTP 500 When the test endpoint built a temporary GitHub repository whose branch was empty, a failure in GetDefaultBranch (e.g. GitHub returning 404 for an unreachable repo or 401/403 for a token without access) propagated as a Go error and was returned to the client as "failed to get repository metadata: file not found" with HTTP 500. This is the onboarding entry point, so the user has no way to act on the message. Classify the underlying repository error and return a TestResults with a field-targeted ErrorDetails, mirroring the existing URL-parse and branch-protection handling. The connector remains responsible for serializing the result. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
1 week ago |
|
|
85ba958a6a
|
Secrets: include status.active in keeper list/read http responses (#123627)
* Secrets: include status.active in keeper list/read http responses * typo |
1 week ago |
|
|
2db345e0cc
|
Deps: Update authlib to latest (#123708)
|
1 week ago |
|
|
89b1bc060f
|
Alerting: Update alerting module to abd9b421dc12c885ef6410ece3a92c96e2b8c127 (#123549)
[create-pull-request] automated change Co-authored-by: yuri-tceretian <25988953+yuri-tceretian@users.noreply.github.com> |
2 weeks ago |
|
|
f417fd1a4f
|
Schema: Preserve 'inControlsMenu' variable hide property in v1 to v2 conversion (#123482)
Schema: Preserve 'inControlsMenu' properly in v1 to v2 conversion |
2 weeks ago |
|
|
e97a104b5a
|
Provisioning: Add selective dashboard export via Resources field (#123381)
* Provisioning: Add selective dashboard export via Resources field Adds an optional Resources []ResourceRef field to ExportJobOptions so an export job can target a specific list of dashboards instead of the full instance. An empty Resources list preserves the existing whole-namespace export behavior. The admission validator rejects refs missing Name/Kind, non-Dashboard kinds, and non-dashboard.grafana.app groups so a misconfigured request fails fast. The worker resolves each ref via ForKind+Get, reuses the shared exportItem helper so the conversion shim and UID regeneration stay in lockstep with the bulk path, and records a per-resource warning when an explicitly named dashboard is skipped because it is managed by another repository. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Use constants for dashboard kind/group in selective export Replaces the string literals "Dashboard" and "dashboard.grafana.app" in the admission validator and the ExportSpecificResources worker with package constants so a rename or GVK change only has to land in one place. Adds a DashboardResourceKind/DashboardResourceGroup constant pair to the provisioning API package (apps/provisioning cannot import apps/dashboard across module boundaries) and a DashboardKind GVK to the existing pkg/registry/apis/provisioning/resources var block alongside FolderKind. Also adds admission integration cases for non-Dashboard kind, non- dashboard group, and missing resource name, plus a worker-path integration test covering the not-found warning scenario where a present dashboard is exported while an absent sibling is recorded as a warning. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Expand admission integration cases for selective export Adds five more push-with-resources validation cases: resource missing kind, empty ref, index reporting for a mixed valid/invalid list, lowercase dashboard kind, and LibraryPanel kind. These nail down the boundary behavior of the new ResourceRef validation so regressions in the field-path indices or the case-sensitivity of the Dashboard kind check surface as a test failure rather than a runtime surprise. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Move dashboard kind/group constants into apps/provisioning/pkg/resources The Dashboard kind and group strings were parked in the v0alpha1 API package next to ResourceRef as a short-term shim. Promotes them into a dedicated resources package at apps/provisioning/pkg/resources where future provisioning-owned resource identifiers can live alongside them. The typed GVR/GVK vars stay in pkg/registry/apis/provisioning/resources because they depend on apps/dashboard/apps/folder/apps/iam, which apps/provisioning does not import. A pointer comment in client.go documents the intentional split so future readers see why the same strings appear in both places. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Use typed dashboard GVR/GVK and fail explicit export misses Pull apps/dashboard into apps/provisioning so apps/provisioning/pkg/resources can re-derive Dashboard GVR/GVK directly from DashboardResourceInfo instead of mirroring strings. pkg/registry/apis/provisioning/resources now re-exports those vars so there is a single source of truth. When ExportSpecificResources cannot fulfil a caller-named ref — wrong kind, already managed by another repository, or not found — record the result as an error rather than a warning so the job surfaces the failure. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Cover v2 stable and v2beta1 in selective export integration test Extend TestIntegrationProvisioning_ExportSpecificResources to select dashboards across every supported stored version (v0, v1, v2, v2beta1). v2alpha1 becomes the non-selected case that proves filtering still excludes unnamed dashboards. Add DashboardsV2 to the provisioning test helper and DashboardResourceV2 to apps/provisioning/pkg/resources so the typed GVR is available alongside the existing v2alpha1 and v2beta1 entries. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Provisioning: Escalate explicit-export failures to job-level error state jobProgressRecorder.Record silently drops per-resource errors when the result carries FileActionIgnored (progress.go:94), so the previous selective-export error paths were local-only and the job finished as success even when the caller-named dashboard could not be exported. Clear the action on the explicit-request failure paths (wrong kind, managed, not-found, get-error) so the recorder counts the error, appends it to JobStatus.Errors, and escalates the final state to Error. The bulk-export path keeps the Ignored action since encountering managed or write-skipped resources there is expected and shouldn't fail the job. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
2 weeks ago |
|
|
da7ecca99b
|
Trend: Add E2E test coverage (#123170)
|
2 weeks ago |
|
|
9986fa76a5
|
deps(go): bump github.com/hashicorp/go-secure-stdlib/plugincontainer to v0.5.0 (#123552)
Signed-off-by: Dave Henderson <dave.henderson@grafana.com> |
2 weeks ago |
|
|
e7e1a7a79b
|
BarChart: add e2e tests (#123284)
* BarChart: add e2e tests for render, no-data, tooltips, legend, and data links Ref #112986 * BarChart: update golden checksums for barchart_tests dashboard * BarChart: regenerate dev-dashboards.libsonnet to include barchart_tests * BarChart: add e2e tests for panel options (show values, stacking, full highlight, orientation) * BarChart: update golden checksum for barchart_tests with panels 7-9 * BarChart: extract uPlot center position helper to reduce duplication * BarChart: fix stacking toggle comment to match UI label (Off not None) |
2 weeks ago |
|
|
ffb4fea402
|
IAM: Persist team members on the Team resource (step 1) (#123468)
* IAM: Persist team members on the Team resource (step 1)
* Add shared CUE TeamMember + TeamPermission types and expose
TeamSpec.Members as a list of those.
* team LegacyStore: hydrate spec.members on Get/List and reconcile
add/update/delete deltas on Create/Update against the legacy team
tables. Reconciliation runs in the same SQL transaction as the team
row update; team-internal-ID resolution happens before BEGIN to avoid
a SQLite self-deadlock when the write tx holds the file lock.
* Admission rejects duplicate members and flips of the immutable
`external` flag so the error is consistent regardless of dual-write
mode.
* Legacy CreateTeam now returns apierrors.NewAlreadyExists on a unique
constraint violation so clients see a proper 409 instead of a 500
wrapping the raw SQL error.
* Index member UIDs on the Team search document.
* Integration tests cover CRUD with members, hydration, and the new
admission rules.
Scope of this commit is the data model + legacy store + index path.
The user-teams / team-members subresources, the enterprise team-group
synchronizer, and the legacy member-search adapter land in follow-up
steps on this branch.
* Regenerate openapi spec
* IAM: fix testdata path in team integration subtests
The team integration test file lives in `pkg/tests/apis/iam/team/`
while the shared testdata fixtures live one level up in
`pkg/tests/apis/iam/testdata/`. The new members/AlreadyExists subtests
referenced `testdata/…` instead of `../testdata/…`, so CI failed with
"no such file or directory" when loading the fixture. Use the correct
relative path and switch the helper deletions from `defer` to
`t.Cleanup` for consistency with the rest of the file.
* Fix frontend
* IAM: address review on team members path
* Create is now transactional. CreateTeamCommand gained MemberCreates
and legacy.CreateTeam inserts the team row and all seed members in
one WithTransaction; a failing member rolls back the team too,
matching Update's atomicity.
* Update now maps team.ErrTeamMemberAlreadyAdded → apierrors.NewConflict
so the concurrent-add race returns 409 instead of 500, matching the
Create path.
* buildCreateCommand / buildUpdateCommand translate GetUserInternalID
failures into apierrors.NewBadRequest so an unknown user UID in
spec.members returns 400 rather than a 500.
* Replace the per-team hydration on List with a single bulk query via
a new ListTeamBindingsQuery.TeamUIDs + ArgList in team_bindings_query.sql,
backed by listTeamMembersForTeams. Drops the N+1.
* mapTeamPermission / toLegacyPermission use explicit switches with a
default panic so adding a new permission variant upstream without
updating the mapping fails loud instead of silently collapsing to
"member".
* Clarify comments on CreateTeamCommand.MemberCreates and
UpdateTeamCommand.Member{Deletes,Updates,Creates} to spell out the
atomicity guarantee and which fields the caller must pre-resolve.
* Document the remaining TOCTOU gap between listAllTeamMembers and the
write tx in Update, and why the race that matters (add-add) is
covered by the unique-constraint → 409 path.
* IAM: integration test for Update 409 on concurrent member adds
Exercises the ErrTeamMemberAlreadyAdded → apierrors.NewConflict mapping
on the team Update path by racing 10 goroutines that each add the same
user to an empty team. The test asserts no goroutine ever receives a
500 (the pre-fix failure mode), at least one succeeds, and the final
team state contains the user exactly once — i.e. the race converges
through the 409/retry path rather than duplicating or corrupting rows.
* IAM: propagate permission-mapping errors and bulk team-member writes
* mapTeamPermission / toLegacyPermission / mapToTeamMember / toTeamObject
now return (value, error) instead of panicking on unknown variants.
diffMembers, buildCreateCommand, buildUpdateCommand, and the Get /
List / Create / Update flows in team/store.go propagate the error so
a corrupt SQL row or a new upstream variant surfaces as a 500 at the
HTTP boundary instead of crashing the apiserver.
* legacy.CreateTeam and legacy.UpdateTeam now issue one bulk INSERT
(multi-row VALUES) for MemberCreates and one bulk DELETE (… WHERE
uid IN (...)) for MemberDeletes, replacing the per-row loops.
DeleteTeamMembersBulkCommand is scoped by OrgID so a UID collision
across orgs cannot remove the wrong row. Permission UPDATEs stay as
one statement per row — each has a distinct target value and a
CASE-WHEN bulk isn't worth the complexity today.
* New golden-SQL tests (single + many variants) cover the two bulk
templates across mysql/postgres/sqlite.
|
2 weeks ago |
|
|
9ab6c3c467
|
Provisioning: retry Repository patches on RV conflict (#123497)
The unified storage layer translates every JSON Patch into a
read-modify-write with PreviousRV set to the value it just read, so
concurrent writes legitimately race with our patches and surface as
"Operation cannot be fulfilled on repositories.provisioning.grafana.app
...: requested RV does not match current RV". Two call sites on the
repository object have no retry and fail outright today:
- RepositoryStatusPatcher.Patch — shared helper behind every status
patch (status patch operations, post-hook status updates, delete-
status writes).
- handleDelete — the JSON Patch that strips /metadata/finalizers
after finalizer processing completes.
Wrap both in retry.RetryOnConflict with the default backoff (5 steps,
~50ms). Conflicts are transient by nature here, so a re-read + re-apply
will succeed on the next attempt in almost every real case, and the
retry budget is bounded so persistent conflicts still surface.
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
|
2 weeks ago |
|
|
541eb02a6e
|
Transformations: Add smoke tests for dashboard transformations (#123390)
* chore(transformations): add smoke tests for dashboard transformations * chore: regenerate golden files for transforms smoke fixture * chore(transformations): assert no ErrorBoundaryAlert inside transformation editor |
2 weeks ago |
|
|
840291c51a
|
Plugins: Drop `public/` prefix for core plugins meta (#123478)
* drop public/ prefix for core plugins meta * add comment details |
2 weeks ago |
|
|
8536aa4f20
|
Stat: E2E tests (#123276)
* wip: e2e stat * working * datalink test * regenerate golden checksums * tighter scope for uplot selectors * added assertions |
2 weeks ago |
|
|
b8fd1b6c6b
|
Chore: use go 1.26.2 (#123379)
* golang 1.26 * bump all modules and docker file * fix plugins test --------- Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com> |
2 weeks ago |
|
|
ca8051a806
|
Provisioning: Rotate webhook secret periodically (#122797)
* Provisioning: add mechanism for automatic webhook secret rotation * fix unit tests * generating apis * generating openapi * generating openapi * adding integration tests * fixing integration tests * removing healthcheck on webhook integration tests * updating integration tests * Provisioning: Simplify webhook secret rotation patch ops Match the token rotation pattern in the connection controller: a plain "replace" on /secure/webhookSecret rather than a three-way switch over Secure.IsZero / WebhookSecret.IsZero / default. RotateWebhookSecret only runs after Status.Webhook.ID is populated by OnCreate, which also populates /secure/webhookSecret, so the defensive branches were guarding a state that cannot occur in practice. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
2 weeks ago |
|
|
c3cc462c37
|
Chore: Upgrade github.com/grafana/grafana-aws-sdk from 1.4.3 to 1.4.4 (#123299)
|
2 weeks ago |
|
|
2c48987405
|
Dependencies: Update some otlp packages (#123368)
|
2 weeks ago |
|
|
1996aee8e8
|
deps(go): Bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 (#123305)
* deps(go): Bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.9.1 to 5.9.2. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.9.1...v5.9.2) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-version: 5.9.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * make 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: Matheus Macabu <macabu.matheus@gmail.com> |
2 weeks ago |
|
|
5edb668a2f
|
DataSources: allow extending schema for each datasource (#110216)
|
2 weeks ago |