* Playing around
* This is getting interesting
* Updates
* Updated
* Observable experiments
* This is tricky
* VizPanel panel renderer
* New model progress
* Maybe this could be something
* Updated
* Rename
* updates
* Updated
* Query runners? not sure
* Updated
* updates
* flex box layout starting to work
* Testing
* Tested an action
* Parent context sort of working
* Progress
* Progress
* Updated
* Starting to work
* Things are working
* Scene list, nested scene demo
* Progress on repeats
* Moving things
* Pretty big progress
* More things working
* Great progress
* Progress
* Name changing
* Minor tweaks
* Simplified sizing
* Move toggleDirection to SceneFlexLayout
* add feature flag (#50990)
* removed new useObservable hook
* Rename folder and feature toggle to scenes
* Caching scenes so you can go back to another scene without having to re-query data
* Fix issue with subs on re-mount
* Fixing test
* Added SceneCanvasText to play around with layout elements with size based on content
* Scene: Edit mode and component edit wrapper that handles selection (#51078)
* First step for scene variables
* Started playing around with a scene edit mode
* Better way to set component
* Progress on edit mode
* Update
* Progress on edit mode
* Progress on editor
* Progress on editor
* Updates
* More working
* Progress
* Minor update
* removed unnessary file
* Moving things around
* Updated
* Making time range separate from time picker
* minor rename of methods
* The most basic variable start
* Minor renames
* Fixed interpolate issue if not found at closest level
* An embryo of event model and url sync handling
* Update url sync types
* Removed unnessary any type arg
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* passes id and uid to PublicDashboardDatasource
* betterer results
* If for a public dashboard, return the PublicDashboardDataSource first or else getDatasourceSrv.get() will fail bc of no authed user.
Added some unit tests for resolving the uid from the many possible datasource types.
* updates betterer
* Exports DashboardService. Adds method to DashboardService to build anonymous user for use with public dashboards where there is no authed user. Adds method on dashboard_queries to get all dashboard uids from a dashboard.
* refactors to get unique datasource uids
* Adds tests for getting all unique datasource uids off a dashboard
* adds test for building anonymous user with read and query actions that are scoped to each datasource uid in the dashboard
* updates casing of DashboardService
* updates test case to have additional panel with a different datasource
* gives default interval to public dashboard data source
* First stab at new page layouts behind feature toggle
* Simplifying PageHeader
* Progress on a new model that can more easily support new and old page layouts
* Progress
* rename folder
* Progress
* Minor change
* fixes
* Fixing tests
* Make breadcrumbs work
* Add tests for old Page component
* Adding tests for new Page component and behavior
* fixing page header test
* Fixed test
* AppChrome outside route
* Renaming folder
* Minor fix
* Updated
* Fixing StoragePage
* Fix for banners
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Ensure resource name is appended to URI
* Add storage account check to ensure default subresource is appended
* Update storage dashboard
* Bump storage version
* Remove ADX StreamingIngestRequestRate panel as the metric is unavailable
* Refactor condition for storage namespaces
* Add more tests for URI builder
* Do not migrate resource URI if resource name or metric definition uses template variables
* Revert change to metricNamespace
* Revert "Serviceaccounts: #48995
Do not display service accounts assigned to team (#48995)"
This reverts commit cbf71fbd7f.
* fix: test to not include more actions than necessary
* adding service accounts to teams - backend and frontend changes
* also support SA addition through the old team membership endpoints
* fix tests
* tests
* serviceaccounts permission tests
* serviceaccounts permission service tests run
* added back test that was removed by accident
* lint
* refactor: add testoptionsTeams
* fix a bug
* service account picker change
* explicitly set SA managed permissions to false for dash and folders
* lint
* allow team creator to list service accounts
Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
* Add SpanBarSettings
* Add SpanBarSettings to Jaeger
* Add SpanBarSettings to Zipkin
* Updated title
* Add dropdown to select identifer and make duration a default option
* Show duration by default
* Add option to hide
* Move identifers into constants
* Add process
* Update text
* Update placeholders
* Text/meta data updates
* Added tests
* Added docs
* Update find
* Merge tag and prcoess options
* Update docs
* Updated tests
* Update betterer results and trace view to match
* Updated docs
* MegaMenu: Add mega menu to new top nav design
* Copy NavBar in order to make changes more cleanly
* Adding tests
* whoops, forgot to resolve conflicts...
* Review fixes
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Convert QueryOperationRow test to RTL
* Convert QueryOperationRow test to RTL
* Convert QueryOperationRow test to RTL
* Convert QueryOperationRow test to RTL
* Update QueryOperationRow.test.tsx
* update betterer
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* WIP: Enable annotations display and annotations editor in State timeline panel
* Note support for annotations in module file
* Lint fix
* Post review
Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com>
A bug introduced by #49259 would crash the annotations view of a panel with a linked alert rule. States are now normalized so crashes won't occur and the base state is used instead.
* add special handling on the plugin gathering side to check whether secrets manager plugins are enabled or not
* show disabled badge in front end if the plugin is not enabled
* Only show error in disabled badge hover if one is present (otherwise it shows "undefined")
* refactor to make use of fields already available in the DTO
* fix typo
* if there is no error returned for the plugin, just show 'disabled'
* fix typo
* Update public/app/features/plugins/admin/components/Badges/PluginDisabledBadge.tsx
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update frontendsettings.go
add clarifying comment
* fix unit test
* rework task to use new frontend property combined with plugin type to determine if the plugin should be disabled
* Update helpers.test.ts
revert test change
* fix unit test
* show custom uninstall message if the plugin is a secrets manager
* bogus commit to trigger precommit
* undo commit
* run precommit manually
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* add special handling on the plugin gathering side to check whether secrets manager plugins are enabled or not
* show disabled badge in front end if the plugin is not enabled
* Only show error in disabled badge hover if one is present (otherwise it shows "undefined")
* refactor to make use of fields already available in the DTO
* fix typo
* if there is no error returned for the plugin, just show 'disabled'
* fix typo
* Update public/app/features/plugins/admin/components/Badges/PluginDisabledBadge.tsx
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update frontendsettings.go
add clarifying comment
* fix unit test
* rework task to use new frontend property combined with plugin type to determine if the plugin should be disabled
* Update helpers.test.ts
revert test change
* fix unit test
* bogus commit to trigger precommit
* undo commit
* run precommit manually
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* on a text panel first interpolate, then markdown, then sanitize;
* update devenv dashboard + e2e tests
* fix typo and undo changes in grafana/data
* handling of config option disableSanitizeHtml more readable when preparing markdown in text panel
* betterer
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Loki: Add e2e test for query builder
* Update
* Update test
* Update test
* Update test
* Update test
* Add more checks in test
* Update betterer
* Update betterer
* Add topnav in Route
* TopBar: Good progress on a approach that looks promising
* Added some elements to top level
* Get page nav from route
* Progress
* Making breadcrumbs slightly more real
* Updates
* Memoize selector
* Removed some console.log
* correctly type iconName
* betterer updates
* Change setting to hideNav
* Rename again
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* remove feature toggle, add empty state and fix bug with initial starring
* Extract empty message into lingui
* remove full stop
* add empty message in the backend
* remove unused import
* translate starred + empty starred states
* betterer changes
* piechart: support series override for hiding legend item
* piechart: add support for hiding values in multi tooltip
* tidy up variable names
* piechart: typing for hideFrom variable
* betterer fixes
* Table panel: Support multiple data links in default cell
* Table panel: Show data links for Image and JSONView cells
* Simplify DataLinksContextMenu api
* Betterer
* improve performance of transformMetricFindResponse
* use lodash uniqBy for postgres
* use lodash uniqBy for mysql
* use lodash uniqBy for mssql
* hopefully conform to import linting rules
* Added .betterer.results
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* Convert DataSourceDashboards test to RTL
* Convert DataSourceDashboards test to RTL
* Convert DataSourceDashboards test to RTL
* Update public/app/features/datasources/DataSourceDashboards.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Convert DataSourceDashboards test to RTL
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
This PR completes public dashboards v1 functionality and simplifies public dashboard conventions. It exists as a large PR so that we are not making constant changes to the database schema.
models.PublicDashboardConfig model replaced with models.PublicDashboard directly
dashboard_public_config table renamed to dashboard_public
models.Dashboard.IsPublic removed from the dashboard and replaced with models.PublicDashboard.isEnabled
Routing now uses a uuid v4 as an access token for viewing a public dashboard anonymously, PublicDashboard.Uid only used as database identifier
Frontend utilizes uuid for auth'd operations and access token for anonymous access
Default to time range defined on dashboard when viewing public dashboard
Add audit fields to public dashboard
Co-authored-by: Owen Smallwood <owen.smallwood@grafana.com>, Ezequiel Victorero <ezequiel.victorero@grafana.com>, Jesse Weaver <jesse.weaver@grafana.com>
Migrations:
* add a new column alert_group_idx to alert_rule table
* add a new column alert_group_idx to alert_rule_version table
* re-index existing rules during migration
API:
* set group index on update. Use the natural order of items in the array as group index
* sort rules in the group on GET
* update the version of all rules of all affected groups. This will make optimistic lock work in the case of multiple concurrent request touching the same groups.
UI:
* update UI to keep the order of alerts in a group
* RBAC: Add access control metadata to Folder dto
* Add access control metadata to folder dto response
* Add test to verify that access control metadata is attached
* Attach access control metadata to multiple folders
* Add access control metadata to frontend folder dto
* Add a test assertion function to make testing a little bit easier
* Add tests for SharedPreferences
* Remove some tests from UserProfileEditPage because we're testing SharedPreferences directly now
* rename yZeroDisplay -> yMinDisplay
* remove heatmap-cells-sparse frame type
* parse x bucket size to millis
* take into account hideLE & hideGE filters to auto-range color scale
* extract cell value range scanning to heatmapData
Any Prometheus datasources that contained URL unsafe characters would crash the application since it fails to find the datasource from the Grafana bootData.
* Cloud Monitoring: Update GroupBy fields to use experimental UI components
* let group by field grow horizontally
* remove fixed width constants from inputs
* add test
* Cloud Monitoring: Update GraphPeriod to use experimental UI components (#50545)
* Cloud Monitoring: Update GraphPeriod to use experimental UI components
* Cloud Monitoring: Update Preprocessing to use experimental UI components (#50548)
* Cloud Monitoring: Update Preprocessing to use experimental UI components
* add tests
* make overrides optional
* move preprocessor back into its own row
* export props
* Convert PanelHeaderCorner test to RTL
* Update public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderCorner.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Add check health functions for each datasource and generic checkHealth function
* Log backend errors
* Update testDatasource function
- Remove unused testDatasource functions from pseudo datasources
* Switch datasource to extend DataSourceWithBackend
* Improve errors and responses from health endpoint
* Fix backend lint issues
* Remove unneeded frontend tests
* Remove unused/unnecessary datasource methods
* Update types
* Improve message construction
* Stubbing out checkHealth tests
* Update tests
- Remove comments
- Simplify structure
* Update log analytics health check to query data rather than retrieve workspace metadata
* Fix lint issue
* Fix frontend lint issues
* Update pkg/tsdb/azuremonitor/azuremonitor.go
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Updates based on PR comments
- Don't use deprecated default workspace field
- Handle situation if no workspace is found by notifying user
- Correctly handle health responses
* Remove debug line
* Make use of defined api versions
* Remove field validation functions
* Expose errors in frontend
* Update errors and tests
* Remove instanceSettings
* Update error handling
* Improve error handling and presentation
* Update tests and correctly check error type
* Refactor AzureHealthCheckError and update tests
* Fix lint errors
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Refactor 'Basic Settings' test to RTL from Enzyme
* Update public/app/features/datasources/settings/BasicSettings.test.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Refactor 'Basic Settings' test to RTL from Enzyme
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Use nullInsertThreshold and nullToValue in time series
* Allow for undefined timeRange to support certain candlestick uses of prepareGraphableFields
* Make sure null to value doesn't modify initial data
* Do a shallow values copy and avoid Array.push()
* Clean up null to value transformation.
* Add basic tests
* Remove redunant null threshold application flagging
* set nullThresholdApplied flag even when no null inserts were done
* Include nullThresholdApplied in test snapshot
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* unit test scaffolding for FolderSection
* remove redundant spinner + more test scaffolding
* more test experimentation
* clear localStorage between test runs
* more tests + add back spinner when renderStandaloneBody
* bit of tidy up
* update Spinner data-testid
* fix import ordering
* make it possible to set default query
* set default query in cloudwatch ds
* remove cloudwatch example code
* apply feedback
* Update public/app/features/explore/state/query.ts
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update public/app/features/query/components/QueryGroup.tsx
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* add alpha tag to method definiton
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Add service variable
* Interpolate vars in query
* Add var in service select if it exists
* Add var in operation select if it exists
* Interpolate tags and serivce in operation query
* Interpolate vars for explore
* Add/update tests
* Tests
* Update format for tags that do not have vars
* ServiceAccounts: able to get upgrade status
* Banner with API keys migration info
* Show API keys migration info on Service accounts page
* Migrate individual API keys
* Use transaction for key migration
* Migrate all api keys to service accounts
* Hide api keys after migration
* Migrate API keys separately for each org
* Revert API key
* Revert key API method
* Rename migration actions and reducers
* Fix linter errors
* Tests for migrating single API key
* Tests for migrating all api keys
* More tests
* Fix reverting tokens
* API: rename convert to migrate
* Add api route descriptions to methods
* rearrange methods in api.go
* Refactor: rename and move some methods
* Prevent assigning tokens to non-existing service accounts
* Refactor: ID TO Id
* Refactor: fix error message
* Delete service account if migration failed
* Fix linter errors
* backend/api: refactor PlaylistId to PlaylistUid
* Add org_id to Get and Update playlist functions
Fix migration - no longer pad the uid; fix mysql syntax
The relevant tests are passing using postgres, mysql and the default sqllite backends, but there are a number of other failing tests when using postgres and myself so I'm not entirely confident with those results.
* fix bad query in GetPlaylistItem and add a test that would have caught the mistake in the first place. Reverted the playlist_uid column addition in playlist_item; it became unnecessary after this PR.
Added default value to the new UID column based on PR feedback.
* break this PRs migration into its own function
* Playlists: Update UI to use the updated API
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
In case we didn't set a `basePath`, `<AppPluginLoader>` would always use the current path as a `basePath`.
This can get problematic in case the Cloud Onboarding app tries to handle it's own sub-routes.
* Public dashboard query API
* Create new API on service for building metric request
* Flesh out testing, implement BuildPublicDashboardMetricRequest
* Test for errors and missing panels
* WIP: Test for multiple datasources
* Refactor tests, add supporting code for multiple datasources
* Gets the panel data from the pubdash query api
* Adds tests to make sure we get the correct api url from retrieving panel data
* Public dashboard query API
* Create new API on service for building metric request
* Flesh out testing, implement BuildPublicDashboardMetricRequest
* Test for errors and missing panels
* WIP: Test for multiple datasources
* Refactor tests, add supporting code for multiple datasources
* Handle queries from multiple datasources
* Replace dashboard time range with pubdash time range settings
* Fix comments from review, build failure
* removes changes to DataSourceWithBackend.ts regarding getting the pubdash panel query url. Going to do this in a new class, PublicDashboardDataSource.ts
* Include pubdash Uid in dashboard meta
* Creates new PublicDashboardDataSource.ts and adds test
* Passes pubdash uid down to PanelQueryRunner.ts to a PublicDashboardDatasource can be chosen when were looking at a public dashboard
* removes comment
* checks for error when unmarshalling json
* Only replace dashboard time settings with pubdash time settings when pubdash time settings exist
* formatting and added comment
Co-authored-by: Jesse Weaver <jesse.weaver@grafana.com>
Co-authored-by: Jeff Levin <jeff@levinology.com>
* GeomapPanel: Add base types to data layer options
Removed isBaseMap check from data layer filter, which used to remove
base layer types from data layer options. For layer editor, slider to
control opacity is added.
* GeomapPanel: Reorder data layer options
For data layer selection, present user with data layer types first,
before base map layer types. Refactored to consolidate layer options
into a single exported function in registry with a base map boolean.
* GeomapPanel: Add descriptions to base map types
* GeomapPanel: add hideOpacity and apply to markers
* GeomapPanel: update descriptions for map types
Closes#47812