* unset the default predefined acl
* add comment
* add cleanup step
* use gcloud storage instead
* reenable on push to main
* sort for latest as well
* get release tag in env instead
* always run deploy on release
* set minStep value as final step value when set explicitly.
* enhance it with tests
* improve function readability
* a bit more improvement for readability
* add GetClientRegistry to user in integration tests to be able to create resource clients
* replace client in alerting notification api tests to generated by app-sdk
* docs(time-range): document panel level time range pan feature
* docs(time-range-pan): include panel time range in panel viz docs pages
* docs(fix): correct "x" which was probably a placeholder
* Docs: Add pan panel time range (#115102)
* Added content to panel-zoom shared file from panel-pan.md and deleted panel-pan.md
* Renamed file
* Updated overview page and shared file reference in candlestick
* Updated shared file refs in other pages
* Fixed a couple typos
* docs(time-range-pan): reverence only one video of time range panning
* docs(dashboard): amend dashboard common time range controls section
---------
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
* unified-storage: save `previous_resource_version` as microsecond timestamp in compat mode
* debug test
* fix test
* fix typo
* Fix misleading var name.
`ms` is typically the abbreviation for millisecond, not microsecond.
* Alerting: Fix and stabilize saved searches E2E tests
Stabilizes the saved searches E2E tests by ensuring correct feature
toggles are enabled and improving the data cleanup logic.
Previously, `clearSavedSearches` relied on clearing localStorage, which
was insufficient as saved searches are persisted server-side via the
UserStorage API. The cleanup now correctly invokes the UserStorage API.
Changes:
- Add `alerting` project to Playwright configuration with authentication
- Enable `alertingListViewV2`, `alertingFilterV2`, and `alertingSavedSearches` toggles in tests
- Update `clearSavedSearches` helper to use UserStorage API for reliable cleanup
- Improve test selectors to use more robust `getByRole` and `getByText` queries
- Update `SavedSearchItem` to merge `aria-label` into `tooltip` for consistency
* Fix saved searchers unit tests
* Show different badge for converted prometheus provisioned resource
* Update contact points and templates to populate provenance
* Update notification policies
* Handle non k8s contact point in ContactPointHeader
* Fix provenance check in enhanceContactPointsWithMetadata
* Update translations
* Fix unused import
* Refactor provenance enum
* Derive provisioned status from provenance in Route type
* Remove unused imports
* Treat PROVENANCE_NONE as no provenance in isRouteProvisione
* Rename KnownProvenance.None to .Empty to avoid confusion
* Change copy text for resources with converted_prometheus provenance
* Derive provisioned status from provenance in GrafanaManagedContactPoint
* Fix linter errors
* Extract helper method to check if contact point is provisioned
* Replace string literal with constant
* Refactor KnownProvenance enum values
Refactored the KnownProvenance enum to better reflect the known provenances defined by the backend.
Also refactored the methods where we assert if a resource is provisioned to better reflect the cases for which a provenance value reflects no provisioning.
A resource is considered not provisioned when the provenance is equal to '', 'none' or undefined.
* Use provenance to infer provenance status for Templates
Refactored useNotificationTemplateMetadata to use only provenance value, and extracted method used to assert if resource is provisioned or not to k8s/utils in order to be more resource agnostic.
* Replace empty string with 'none' for KnownProvenance enum
The empty string valye for provenance gets mapped to the string literal 'none' before being passed down in the api response, therefore we can use only 'none'
* Replace PROVENANCE_NONE with KnownProvenance.None
Replaced the constant PROVENANCE_NONE with the KnownProvenance.None enum value since the values where duplicated
* Fix JSDoc
* Change copy text for ProvisioningBadge
* Add missing tooltip in notification policy badge
* Add missing tooltip in TemplatesTable badge
* fix conflicts
---------
Co-authored-by: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* feat(cloud-monitoring): add support for Google Cloud universe_domain (#110083)
This change introduces support for Google Cloud's `universe_domain`, enabling connections to sovereign cloud environments with custom API endpoints.
- Adds an optional "Universe Domain" field in the Google Cloud Monitoring data source configuration (frontend and backend).
- Allows specifying a custom API domain (e.g., `s3nsapis.fr`) for use in sovereign environments.
- Defaults to `googleapis.com` to ensure backward compatibility for existing configurations.
Signed-off-by: Andreas Christou <andreas.christou@grafana.com>
* Minor docs update
* Doc updates
* Update editor
* Update docs/sources/datasources/google-cloud-monitoring/_index.md
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Lint
* Review
---------
Signed-off-by: Andreas Christou <andreas.christou@grafana.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* fix(grafana-data): copy theme schema json to types so declaration resolves
* refactor(grafana-data): move node scripts out of source code
* feat(grafana-data): generate types for theme schema
* chore(codeowners): update for grafana-data/scripts file move
* feat(grafana-data): put back copy plugin for theme json files
* revert(grafana-data): remove definition output
* feat(grafana-data): make builds great again
* minor tidy up
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* feat(unified): add bm25 index scoring model
We want try BM25 scoring model since they have global scoring which we can probably re-use for fan-in/fan-out logic
32d98823c4/docs/scoring.md (global-scoring)
* fix(plugins): update plugin test data
* Extensons: Make links use openInNewTab API
* Use openInNewTab api correctly in the UI
* Bump scenes
* Fx circular dep
* test
* Revert "test"
This reverts commit 8784a7992c.
- add new feature flag to support enabling the dispatcher sync timer on the alertmanager
- this attempts to synchronize the flushes across HA nodes to decrease amount of duplicate notifications
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* Alerting: Support backend filtering for folder search
Updates the Grafana managed rules API and filter logic to support
server-side filtering by folder (namespace).
Changes:
- Add `searchFolder` parameter to `getGrafanaGroups` API endpoint
- Map filter state `namespace` to `searchFolder` in backend filter
- Disable client-side namespace filtering when backend filtering is enabled
- Update tests to verify correct behavior for folder search with backend filters
* Add missing property in filter options
* Update tests
* POC ssingle AM
* wip
* add query param ?version=2
* wip2
* wip3
* Update logic
* update badges and tests
* remove unsused import
* fix: update NewReceiverView snapshots to include version field
* update translations
* fix: delegate version determination to backend for new integrations
- Remove hardcoded version: 'v1' from defaultChannelValues
- Reset version to undefined when integration type changes
- Backend uses GetCurrentVersion() when no version is provided
- Update snapshots to reflect version handling changes
- Remove unused getDefaultVersionForNotifier function
* update snapshot
* fix(alerting): fix contact point form issues
- Fix empty info alert showing when notifier.dto.info is undefined
- Fix options not loading for new contact points by using default creatable version
* fix(alerting): only show version badge for legacy integrations
* update tests for version badge and getOptionsForVersion changes
* docs: add comment explaining currentVersion field in NotifierDTO
* Show user-friendly 'Legacy' label for legacy integrations
- Replace technical version strings (v0mimir1, v0mimir2) with user-friendly labels
- v0mimir1 -> 'Legacy', v0mimir2 -> 'Legacy v2', etc.
- Technical version is still shown in tooltip for reference
- Add getLegacyVersionLabel() utility function
- Update tests for badge display and utility function
* Add v0mimir2 to test mock for Legacy v2 badge test
* hasLegacyIntegrations now uses isLegacyVersion
- Accept notifiers array to properly check canCreate: false
- No longer relies on version string comparison (v1 check)
- Uses isLegacyVersion for consistent legacy detection
- Update tests to pass notifiers and test correct behavior
* update translations
* GrafanaBootData: decouple `config.apps` from boot data IV
* chore: changed to openfeature flags eval
* chore: updates after PR feedback
* chore: updates after PR feedback
* chore: copy types to runtime package
* chore: add code ownership
* chore: deprecate in interface too
* chore: add important notice to comments
* chore: deprecate the whole interface
* Chore: set -e line in packaging/docker/run.sh
* Chore: fix ShellCheck SC2188 in packaging/docker/run.sh
* Chore: fix ShellCheck SC2166 in packaging/docker/run.sh
* docs: improve RBAC and role creation documentation
- Clarify that file-based RBAC provisioning is for self-managed instances only
- Distinguish between Grafana Admin (Server Admin) and Org Admin
- Remove incorrect UI instructions for custom role creation
- Add Terraform example for creating custom roles and assignments
* Apply suggestions from code review
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
---------
Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
* descritpion and transformations
* add fieldMinMax to schema
* add nullValueMode to schema
* convert actions
* disabled prop in transformations
* update
* fix
* gauge
* remove index (deprecated) and decimals as strings
* gofmt
* codegen
* lint
* open api
* convert all theme files to json
* automatically discover extra themes in go backend
* use zod
* error tidy up
* error tidy up p2
* generate theme json schema from zod
* generate theme list at build time, don't do it at runtime
* make name and id required in the theme schema
Fixes the issue where typing in the label value dropdown would display
all values instead of filtering them based on the search input.
The bug was in `createAsyncValuesLoader` which was ignoring the
`valueQuery` parameter and returning all combined values instead of
the filtered subset.
Changes:
- Rename `_inputValue` parameter to `valueQuery` to indicate it should be used
- Filter combined values based on case-insensitive search query
- Return only filtered values instead of all values
Tests:
- Add test to verify correct values are shown for each label key
- Add test to verify search filtering works correctly
- Improve test infrastructure with proper portal container and element mocking
for virtualized dropdown rendering
chore: remove unifiedStorageSearchSprinkles feature flag
The feature flag is no longer needed because:
- OSS: usageinsights code doesn't exist in OSS builds
- Enterprise On-Prem: uses local SQL storage when enable_search=true
- Cloud: explicitly configures sprinkles_api_server URL
The sprinkles functionality now works automatically based on:
- enable_search config (enforced true for unified storage mode 5)
- sprinkles_api_server config (empty = local storage, set = remote API)
fix: handle resource version conflicts in connection CRUDL test
After updating a connection resource, the controller may update the
resource status, changing the resource version. This causes the delete
operation to fail with a resource version conflict.
Add retry logic to handle conflicts gracefully by retrying the delete
operation when encountering resource version conflicts.
Dashboard Outline: Fix navigation to repeated panels and lazy-loaded repeats
- Remove cursor: not-allowed styling from repeated panels in outline
- Add RepeatsUpdatedEvent to notify when panel repeats are populated
- Subscribe to RepeatsUpdatedEvent in DashboardEditPane to refresh outline
- Remove memoization from visibleChildren to ensure outline updates on re-render
* initial commit
* add support of integerts
* finialise the static provider
* minor refactoring
* the rest
* revert: the rest
* add new thiongs
* more tests added
* add ff parsing tests to check if types are handled correctly
* update tests according to recent changes
* address golint issues
* Update pkg/setting/setting_feature_toggles.go
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
* fix rebase issues
* addressing review comments
* add test cases for enterprise
* handle enterprise cases
* minor refactoring to make api a bit easier to debug
* make test names a bit more precise
* fix linter
* add openfeature sdk to goleak ignore in testutil
* Remove only boolean check in ff gen tests
* add non-boolean types top the doc in default.ini and doc string in FeatureFlag type
* apply remarks, add docs to sample.ini
* reflect changes in feature flags in the public grafana configuration doc
* fix doc formatting
* apply suggestions to the doc file
---------
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
* WIP: mutator added, start working on validator
* first validator iteration
* second validator iteration
* wip: working on integration tests
* re-working mutation and validation, using Connection interface
* fixing some rebase things
* fixing integration tests
* formatting
* fixing unit tests
* k8s codegen
* linting
* moving tests which are available only for enterprise
* addressing comments: using repo config for connections, updating tests
* addressing comments: adding some more info in the app and installation
* fixing app data
* addressing comments: updating connection implementation
* addressing comments
* formatting
* fixing tests
* added troubleshooting guide
* cleaned up the intro doc
* cleaned up the before you begin section in the configure doc
* changed a note to a tip
* changed to troubleshooting for cohesion
* final edits
* minor clean up item
* added note about Kerberos not being supported in Cloud
* punctuation fixes
* Provisioning: Add fieldSelector for Repository by spec.connection.name
This change adds the ability to filter repositories by their connection
name using Kubernetes field selectors, enabling queries like:
kubectl get repositories --field-selector spec.connection.name=my-connection
Implementation:
- Add RepositoryGetAttrs and RepositoryToSelectableFields functions
- Register field label conversion for spec.connection.name in InstallSchema
- Extend generic storage to support custom selectable fields via
NewRegistryStoreWithSelectableFields
- Add unit tests for repository field functions
- Add integration tests for field selector functionality
* Simplify predicateFunc handling with custom attrFunc
Remove unnecessary custom predicateFunc wrapper when using a custom
GetAttrs function. When attrFunc is provided via StoreOptions, passing
nil for predicateFunc allows the default behavior to create the
appropriate SelectionPredicate automatically.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* Implement hierarchical error handling for folder creation failures
This commit implements hierarchical error handling to improve sync robustness
when folder creation fails. Instead of failing the entire sync, the system now:
1. Tracks failed folder creations and automatically skips nested resources
2. Records skipped resources with FileActionIgnored (doesn't count toward error limits)
3. Allows other folder hierarchies to continue processing
4. Prevents folder deletion when child resource deletions fail
Key Changes:
- Add PathCreationError type to track which folder path failed
- Modify progress recorder to automatically detect and track failures via Record()
- Add IsNestedUnderFailedCreation() and HasFailedDeletionsUnder() checks
- Update full and incremental sync to skip nested resources after folder failures
- Deletions proceed even if parent folder creation failed (resource may exist from previous sync)
- FileActionIgnored results don't count toward error limits
Example behavior improvement:
Before: /monitoring folder creation fails → all nested resources fail → other folders never processed
After: /monitoring folder creation fails → nested resources ignored → /applications folder succeeds
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* provisioning: refactor hierarchical errors in folder management.
* Move test to the corresponding package
* Refactor timeout handling in applyChanges functions
- Introduced wrapWithTimeout function to streamline timeout context management for applyChange calls.
- Updated applyFoldersSerially and applyIncrementalChanges to utilize the new timeout wrapper.
- Removed redundant logging and error handling code related to timeout in favor of centralized handling in wrapWithTimeout.
- Adjusted test expectations to reflect changes in error reporting for context deadlines.
---------
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Description:"How null values should be handled when calculating field stats \"null\" - Include null values, \"connected\" - Ignore nulls, \"null as zero\" - Treat nulls as zero",
Description:"How null values should be handled when calculating field stats \"null\" - Include null values, \"connected\" - Ignore nulls, \"null as zero\" - Treat nulls as zero",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.