* 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>
* chore(gdev-dashboard): reproduce CSS layout bug in a panel
* fix(table-legend): tweak CSS for right oriented table legend in piechart
* chore(gdev-dashboard): update migrated dashboard file to match
* refactor: change GetReceiver to get by UID
to avoid conversions of name to uid back an forth
* refactor: consolidate all encrypt\decrypt functions
* move error from temporary location
Implements support for the defaultPath field in Scope specifications
* Faster performance: Batch API call (fetchMultipleScopeNodes) replaces N sequential calls
* Instant selector opening: Pre-fetches all path nodes when applying scopes
* Consistent resolution: Single source of truth for scopeNodeId and parentNodeId across UI and URLs
* Correct URL syncing: scope_node parameter always reflects the canonical defaultPath
* Backwards compatible: Gracefully falls back when defaultPath is unavailable
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
* Add awareness of a parent when toggletip is rendered to work inside other modals
* switch modal + drawer to use floating-ui's focus trapping
* remove outdated docs
* fix some unit tests
* fix scopes tests
* remove duplicate aria-label
* kick CI
* fix e2e tests
---------
Co-authored-by: tdbishop <thomas.bishop@grafana.com>
* fix(unified): default index path to ephemeral storage mount path
Signed-off-by: Rafael Paulovic <rafael.paulovic@grafana.com>
* Revert "fix: use memory index if index file already open (#115720)"
This reverts commit dc4c106e91.
* fix(unified): set index_path for tests
* chore(unified): re-add bolt open timeout and test for error handling
* chore(unified): return err on timeout
* chore(unified): revert changes to default, use DataPath if index_path not set
* chore(unified): add defaults.ini entry for unified_storage
This is needed to override using env. vars
* chore: revert unrelated diff
* chore: address code review comments
- reduce bolt timeout to 1s
- remove errIndexLocked err type
- add more information about index_path in defaults.ini
---------
Signed-off-by: Rafael Paulovic <rafael.paulovic@grafana.com>
* Add connection operator with health check updates
- Add ConnectionController to watch and reconcile Connection resources
- Add ConnectionStatusPatcher for updating connection status
- Add connection_operator.go entry point for standalone operator
- Register connection operator in pkg/operators/register.go
- Add connection controller to in-process setup in register.go
- Add unit tests for connection controller
- Add integration tests for health check updates
* Fix integration test: get latest version before update to avoid conflicts
* refactor: move repoFactory to operator-specific configs
- Remove repoFactory from shared provisioningControllerConfig
- Add repoFactory to repoControllerConfig and jobsControllerConfig
- This allows connection operator to run without repository setup
* Remove unneccesary comments
- Add containsTabsLayout helper function to check if child layouts contain tabs
- Update DashboardLayoutSelector to disable tabs option when children contain tabs
- Show different tooltip message for parent vs child tabs nesting scenarios
- Add tests for the new functionality
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.