* added org dropdown to topnav
* render icon and dropdown for mobile screen
* remove switch org from profile node
* adjust styles to be mobile first
* add test for select
* hide profile node only when topnav is on
* replace margin with gap instead
* improve tests
* add aria labels
* fix broken test
* Flamegraph
* Updated flame graph width/height values
* Fix top table rendering issue
* Add feature toggle for flamegraph in explore
* Update tests
* Hide flamegraph from dash panel viz list if feature toggle not enabled
* Show table if no flameGraphFrames
* Add flame graph to testdata ds
* Minor improvement
* Switch from lingui from i18next
* Change lingui messages to i18next messages
* Change lingui messages to i18next messages (grafana-ui)
* Init i18n for tests
* loki: switch to a monaco-based query field, step 1 (#46291)
* loki: use monaco-logql (#46318)
* loki: use monaco-logql
* updated monaco-logql
* fix all the tests (#46327)
* loki: recommend parser (#46362)
* loki: recommend parser
* additional improvements
* more improvements
* type and lint fixes
* more improvements
* trigger autocomplete on focus
* rename
* loki: more smart features (#46414)
* loki: more smart features
* loki: updated syntax-highlight version
* better explanation (#46443)
* better explanation
* improved help-text
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Fix label
* feat(loki-monaco-editor): add monaco-logql as a dependency
* feat(loki-monaco-editor): add back range function removed during merge
* feat(loki-monaco-editor): sync imports with recent changes
* feat(loki-monaco-editor): add missing lang provider functions
* feat(loki-monaco-editor): fix imports
* feat(loki-monaco-editor): display monaco editor by default
Temporarily
* Chore: remove commented code
* Chore: minor refactor to NeverCaseError
* Chore: minor code cleanups
* feat(loki-monaco-editor): add history implementation
Will see how it behaves and base the history slicing on tangible feedback
* feat(loki-monaco-editor): turn completion data provider into a class
* Chore: fix missing imports
* feat(loki-monaco-editor): refactor data provider methods
Move complexity scattered everywhere to the provider
* Chore: clean up redundant code
* Chore: minor comments cleanup
* Chore: simplify override services
* Chore: rename callback
* feat(loki-monaco-editor): use query hints implementation to parse expression
* feat(loki-monaco-editor): improve function name
* Chore: remove superfluous variable in favor of destructuring
* Chore: remove unused imports
* Chore: make method async
* feat(loki-monaco-editor): fix deprecations and errors in situation
* feat(loki-monaco-editor): comment failing test case
* Chore: remove comment from test
* Chore: remove duplicated completion item
* Chore: fix linting issues
* Chore: update language provider test
* Chore: update datasource test
* feat(loki-monaco-editor): create feature flag
* feat(loki-monaco-editor): place the editor under a feature flag
* Chore: add completion unit test
* Chore: add completion data provider test
* Chore: remove unwanted export
* Chore: remove unused export
* Chore(loki-query-field): destructure all props
* chore(loki-completions): remove odd string
* fix(loki-completions): remove rate_interval
Not supported
* fix(loki-completions): remove line filters for after pipe case
We shouldn't offer line filters if we are after first pipe.
* refactor(loki-datasource): update default parameter
* fix(loki-syntax): remove outdated documentation
* Update capitalization in pkg/services/featuremgmt/registry.go
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* refactor(situation): use node types instead of names
* Chore: comment line filters pending implementation
It's breaking the build due to a linting error.
* Chore: update feature flag test after capitalization change
* Revert "fix(loki-completions): remove line filters for after pipe case"
This reverts commit 3d003ca4bc.
* Revert "Chore: comment line filters pending implementation"
This reverts commit 84bfe76a6a.
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
Prior to this change, all alert instance writes and deletes happened
individually, in their own database transaction. This change batches up
writes or deletes for a given rule's evaluation loop into a single
transaction before applying it.
These new transactions are off by default, guarded by the feature toggle "alertingBigTransactions"
Before:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8 398 2991381 ns/op 1133537 B/op 27703 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
util.go:127: alert definition: {orgID: 1, UID: FovKXiRVzm} with title: "an alert definition FTvFXmRVkz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: foDFXmRVkm} with title: "an alert definition fovFXmRVkz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: VQvFuigVkm} with title: "an alert definition VwDKXmR4kz" interval: 60 created
PASS
ok github.com/grafana/grafana/pkg/services/ngalert/store 1.619s
```
After:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8 1440 816484 ns/op 352297 B/op 6529 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
util.go:127: alert definition: {orgID: 1, UID: 302r_igVzm} with title: "an alert definition q0h9lmR4zz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: 71hrlmR4km} with title: "an alert definition nJ29_mR4zz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: Cahr_mR4zm} with title: "an alert definition ja2rlmg4zz" interval: 60 created
PASS
ok github.com/grafana/grafana/pkg/services/ngalert/store 1.383s
```
So we cut time by about 75% and memory allocations by about 60% when
storing and deleting 100 instances.
* feat(sass): introduce font-file-path var to define where to load fonts from
* feat(storybook): introduce storybook sass theme styles to set font file paths
* chore(sass): change imports so treated as sass rather than css
* feat(storybook): filter assets so builds dont contain thousands of files
* playlist: Split PlaylistItem into standalone TS type
* update playlist model
* actually set the title
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* chore(grafana-ui): don't bundle emotionPerfTest
* chore(grafana-ui): fix circular dependencies that cause esm chunks to not match up
* chore(grafana-ui): prevent bundling all css properties in package types
* Revert "Explore: Prevent panes from disappearing when resizing window in split view (#55696)"
This reverts commit 0a5aa19ca2.
* Revert "Explore: Add resize to split view, with Min/Max button (#54420)"
This reverts commit c3e4f1f876.
* add navid and pagenav to edit/add/view alert rules
* move ruleeditor smaller component to its own file
* fix form alignments with new layout
* fixed broken test
* reuse AlertingPageWrapper
* feat: make it possible to pass in `options` to `.get()`, `.post()`, etc methods
* feat(Datasource): make it possible to specify `optinos` for `getResource()` and `postResource()`
* fix(BackendSrv): use partial `BackendSrvRequest`
* feat(Datasource): make it possible to set `options` for resource requests
* refactor(BackendSrv): remove internal usage of `.request()`
* fix(GettingStarted): remove unnecessary import
* fix: fix type issues by typing the delete dashboard response
* refactor: use more strict types for `params`
By reusing the type of `BackendSrvRequest.params`
* refactor: make the options paramater partial
* fix: extract `data` from the fetch response
* docs: update the deprecation notice or `BackendSrv.request()`
* refactor: use `.request()` as if it was private
* refactor: remove unnecessary change
* Mark component:create as deprecated
* Update message
* Update packages/grafana-toolkit/src/cli/index.ts
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Add alternative message
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Update Storybook updates to v6.5.6
* refactor(storybook): fix up dependencies and webpack configs
* chore(storybook): bump to 6.5.7
* chore(yarn): refresh lock file
* chore(storybook): bump storybook to 6.5.10
* refactor(storybook): update configuration to use babel, tidy webpack config, clean dependencies
* chore(storybook): bump to 6.5.12
* chore(storybook): bump storybook-dark-mode to 1.1.2
* chore(storybook): workaround resolving storybook-docs addon for yarn pnp
* refactor(storybook): remove preview-head.html in favour of global theme styles
* chore(storybook): patch storybook-dark-mode to work with SB 6.5.x and yarn PnP
* feat(storybook): move to using MDXv2
* fix(icon): make sure icon story doesn't disappear offscreen and is scrollable
* chore(grafana-ui): clean up dependencies related to storybook
* feat(storybook): enable webpack5 filesystem cache
* feat(storybook): replace babel with esbuild
* fix(emotionperftest): fix jsx pragma for esbuild
* fix(emotionperftest): force jsxRuntime to classic so esbuild and babel compile without error
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* added news feed component
* move button to news component
* create newsfeed hooks and conver NewsPanel to functional component
* added news_feed_enabled and news_feed_url to server settings ini
* add default value in defaults.ini
* set news drawer settings value to true by default
* remove server settings config
* use useToggle hook
* fix newsitem render
* support drawer on mobile screen
* use media query utility
* fix(toolkit): package without dist folder so config file paths are correct
* chore(packages): make sure to bundle readme, changelog and apache2 license
* refactor(packages): recursively copy src when prepacking toolkit
* chore(toolkit): lock down babel dependencies. use grafana-eslint-config@5 for TS4.8 support
* NewIA: Plugin nav config
* progress
* Progress
* Things are working
* Add monitoring node
* Add alerts and incidents
* added experiment with standalone page
* Refactoring by adding a type for navtree root
* First test working
* More tests
* more tests
* Progress on richer config and sorting
* Sort weight working
* Path config
* Improving logic for not including admin or cfg nodes, making it the last step so that enterprise can add admin nodes without having to worry about the section not existing
* fixed index routes
* removed file
* Fixes
* Fixing tests
* Fixing more tests and adding support for weight config
* Updates
* Remove unused fake
* More fixes
* Minor tweak
* Minor fix
* Can now control position using sortweight even when existing items have no sortweight
* Added tests for frontend standalone page logic
* more tests
* Remove unused fake and fixed lint issue
* Moving reading settings to navtree impl package
* remove nav_id setting prefix
* Remove old test file
* Fix trailing newline
* Fixed bug with adding nil node
* fixing lint issue
* remove some code we have to rethink
* move read settings to PrivideService and switch to util.SplitString
* Split all named types out into defs, etc.
* Use latest cuetsy, refactor generators accordingly
* Return AST type from plugin TS generator
* Near-complete checkin of TS veneer code generator
* First full completed pass
* Improve the attribute name
* Defer use of the dashboard veneer type to follow-up
* Remove dummy index, prettier on veneer
* Fix merge errors in gen.go
* Add match field to SpecialValueMap
* Fix backend lint errors
* PluginDetails: Make plugin details page look good in topnav
* Minor style tweak aligning things
* minor refactoring where I moved the logic to decide the default tab into its own hook.
* refactor(plugindetails): first pass at using navmodel for usePluginDetailsTabs hook
* refactor(plugindetails): move "reset page when uninstalling plugin" to installcontrols
this prevents a user from seeing a blank page if they uninstall an app plugin whilst viewing a
config page
* refactor(plugindetails): remove usage of toIconName and reduce nested if
* Trying to fix tests
* minor fix
* test(plugindetails): update selectors causing failing tests
* chore(plugindetails): remove commented out test code
* test(plugindetails): clean up - remove unnecesary usage of waitFor
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Add split resize to Explore without keeping width in state
* debug commit
* ugly hack around split lib only supporting one child
* Use SplitView to accomodate one or two elements, remove debug code, fix test
* More cleanup, fix state action
* Fix even split from manual size scenario
* cleanup
* Add new state elements to test
* Handle scrollable on internal element for virtualized lists
* Left align overflow button for explore
* Change min/max buttons
* Apply suggestions from code review
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Add more suggestions from the code review
* Fix problems tests found
* commit broken test with debug info
* Add test, remove debug code
* Remove second get of panes
* Remove second get of panes
Co-authored-by: Elfo404 <me@giordanoricci.com>
* Add type='button' in button used in Heading component to prevent having the default value ='submit'
* Add type='button' for buttons used in form when grafana-managed alert type is selected
* Add type='button' for buttons used in form when mimir-or-loki alert type is selected
* add help menu to top search bar
* fixes
* handle preventDefault in node graph specifically
* use icon prop of MenuItem
* undo changes to ContextMenuPlugin/DataLinksContextMenu
* remove unused component
* revert storybook changes
* Tweaks
* remove unused style
* stop propagation on the header so version can be highlighted
* make sure useContextMenu has the exact same logic as before
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* feat: use styles on #root div instead of additionnal div wrapper
* Update packages/grafana-ui/src/utils/storybook/withTheme.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Hide Correlations Page behind a toggle
* Remove redundant defaults
* Ensure top nav is rendered when correlations are disabled
This is for the case when:
[feature_toggles]
topnav = true
* add context button to right side of log row
* add context button to right side of log row
* add context button to right side of log row
* add context button to right side of log row
* add show-context icon
Co-authored-by: Sven Grossmann <svennergr@gmail.com>
* Refactor towards template/codegen framework
* Add templates for plugin gen
* Add Go codegen for plugins; overhaul framework, too
* Add new codegen output; assorted framework fixes
* Regenerate after merge
* Remove accidental commit file, update templates
* Export the pfs.Tree loader from plugin types
* Print details from cuetsy errors
* Generate loaders for all plugins and list in registry
* Use pfs_gen.go over lineage_gen.go
* Un-un-ignore main file
* Introduce simple List static registry for plugins
* Last tweaks to codegen
* remove unused tvars
* Ensure loop-local instances for both vars
* Generate pfs parsing in-place in registry
* Stop generating pfs_gen.go
* Move Tree into pfs, rename subdir
* Change package name to match dir
* Ignore gocyclo on HTTPServer.getNavTree
* Design tweaks
* Updated
* Fixing unit tests
* Review fixes
* Text primary on active sections, and change home icon to text
* spacing fix
* More fix
* Fixes
* Updates
* Progress
* Progress
* Things are working
* More tweaks
* Fixing unit test
* Tweaks and fixing e2e tests
* Remove ... in Save as
* Fixing unit test
* Fixing e2e test
* Fixes
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Use colors array from position 0 for span colors
* Update/add tests
* Use service name hex to get color
* getTheme
* Only add colors that have a contrast ratio >= 3 for the current theme
* Add new tests
* update data-testids
* update data-testids
* Convert TimelineHeaderRow test to RTL
* update data-testids
* Convert TimelineHeaderRow test to RTL
* Convert TimelineHeaderRow test to RTL
* modify TraceView test
* revert test
* Update packages/jaeger-ui-components/src/TraceTimelineViewer/TimelineRow.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Ran yarn betterer
* update selector
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Hamas Shafiq <hamas.shafiq@grafana.com>
* Update dependency @react-aria/button to v3.6.1
* bump @react-aria/menu at the same time
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Change nav structure when topnav is enable to do initial tests with new information architecture
* Support for nested sections
* Updated
* sentance case
* Progress on plugin challange
* Rewrite to functional component
* Progress
* Updates
* Progress
* Progress on things
* missing file
* Fixing issue with runtime, need to use setter way to set component exposed via runtime
* Move PageLayoutType to grafana/data
* Fixing breadcrumb issue, adding more tests
* reverted backend change
* fix recursive issue with cleanup
* Toggle on the mixed mode option
* Ensure switching to mixed gives existing query prev datasource
* WIP - Populate datasource when switching between mixed and not
* WIP - handle change from mixed
* Remove preimport filter, refine filter to work for queries
* WIP debugging datasource transition
* Ensure creating a new query gets target data source if switching with no matches between
* Add mixed datasource to rich history display
* Cleanup console logs, add relevant comments
* Add feature toggle for mixed datasource
* Fix Wrapper tests
* Fix tests!
* Fix test types and add feature tracking
* Remove unnecessary default, remove explore/mixed workarounds for D2E
* Move display text logic to mixed datasource file
* Add in the default query parameters to a generated empty query
* Condense some code
* Apply suggestions from code review
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Add more logic around mixed datasource being off for explore
* Build out logic to handle different datasource scenarios
* Add tests
* Finalize last test
* Fix mixed URL with mixed ds off, and relevant test
* Fix datasource to explore workflow
* Add datasource change function, call import queries if needed
* add logic for changing single query ds
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update dependency @testing-library/user-event to v14.4.3
* use ReturnType instead of using a nested import
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* First working version of the TraceQL editor with syntax highlighting and autocomplete
* Add feature flag around the new editor option
* Fix tests and cleanup
* Fix misspelling
* Scenes: Support new top nav
* Page: Make Page component support new and old dashboard page layouts
* Pass scrollbar props
* Fixing flex layout for dashboard
* Progress on dashboard settings working with topnav
* Updated
* Annotations working
* Starting to work fully
* Fix merge issue
* Fixed tests
* Added buttons to annotations editor
* Updating tests
* Move Page component to each page
* fixed general settings page
* Fixed versions
* Fixed annotation item page
* Variables section working
* Fixed tests
* Minor fixes to versions
* Update
* Fixing unit tests
* Adding add variable button
* Restore annotations edit form so it's the same as before
* Fixed semicolon in dashboard permissions
* Fixing unit tests
* Fixing tests
* Minor test update
* Fixing unit test
* Fixing e2e tests
* fix for e2e test
* fix a11y issues
* Changing places Settings -> General
* Trying to fix a11y
* I hope this fixes the e2e test
* Fixing merge issue
* tweak
* hacky first attempt
* slightly cleaner...
* behaviour mostly working...
* remove unnecessary wrapper
* css tweaks
* much cleaner implementation with intersectionobserver
* set style props directly on children
* separate story, integrate when toggle is off
* improve story, integrate when toggle is on
* remove styles from DashNavTimeControls
* mock IntersectionObserver for all unit tests
* prettier
* don't use dropdown anymore
* add some basic documentation
* add right alignment to scenes toolbarbuttonrow
* just use the react children api to prevent duplicating children
* coremodels: Convert plugin-metadata schema to a coremodel
* Newer cuetsy; try quoting field name
* Add slot definitions
* Start sketching out pfs package
* Rerun codegen with fixes, new cuetsy
* Catch up dashboard with new cuetsy
* Update to go1.18
* Use new vmuxers in thema
* Add slot system in Go
* Draft finished implementation of pfs
* Collapse slot pkg into coremodel dir; add PluginInfo
* Add the mux type on top of kernel
* Refactor plugin generator for extensibility
* Change models.cue package, numerous debugs
* Bring new output to parity with old
* Remove old plugin generation logic
* Misc tweaking
* Reintroduce generation of shared schemas
* Drop back to go1.17
* Add globbing to tsconfig exclude
* Introduce pfs test on existing testdata
* Make most existing testdata tests pass with pfs
* coremodels: Convert plugin-metadata schema to a coremodel
* Newer cuetsy; try quoting field name
* Add APIType control concept, regen pluginmeta
* Use proper numeric types for schema fields
* Make pluginmeta schema follow Go type breakdown
* More decomposition into distinct types
* Add test case for no plugin.json file
* Fix missing ref to #Dependencies
* Remove generated TS for pluginmeta
* Update dependencies, rearrange go.mod
* Regenerate without Model prefix
* Use updated thema loader; this is now runnable
* Skip app plugin with weird include
* Make plugin tree extractor reusable
* Split out slot lineage load/validate logic
* Add myriad tests for new plugin validation failures
* Add test for zip fixtures
* One last run of codegen
* Proper delinting
* Ensure validation order is deterministic
* Let there actually be sorting
* Undo reliance on builtIn field (#54009)
* undo builtIn reliance
* fix tests
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Add fixture-factories for all variable types
* clean up variable guards
* add tests for isMulti, hasCurrent, and hasOptions variable type guards
* create VariableSupport type to try and work around ts wonkiness
* TimeSeries: Don't show y axis when visualisation is hidden
* Update snapshot
* make scale ranger return nulls for minMax when no visible data exists on scale
* drop unneeded change
* remove explicit axis.show
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Relocate dashboards test so it runs
* Cover newer schema versions in stripnulls
* Strip nulls and remove iteration fields
* Fix fiscalYearStartMonth bounds
* Fix up and format dashboard schema
* Update thema, tidy Go dependencies
* Geomap: add measuring tools
* Add measure type selection
* Add controls and state to measure overlay
* Override tooltip mouse events when menu active
* Move measure tools to top right
* Lay groundwork for units and consolidate measuring
* Create measure vector layer class
* Improve styling to match other overlay controls
* Consolidate styling and use theme2
* Update unit language and add km2
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Revert "Chore: Bump terser to fix security vulnerability (#53052)"
This reverts commit 7ae74d2a18.
* feat: use tsc and rollup directly with esbuild and publishConfig, files props
* refactor(grafana-data): fix isolatedModules re-export type error
* refactor(grafana-data): import paths from src not package name
* refactor(rollup): fix dts output.file
* chore(grafana-schema): delete dashboard_experimental.gen.ts - cannot work with isolatedModules
* refactor(grafana-e2e-selectors): fix export types isolatedModules error
* refactor(grafana-runtime): fix isolatedModules re-export type error
* refactor(grafana-ui): fix isolatedModules re-export type error
* feat(grafana-ui): use named imports for treeshaking
* refactor(grafana-ui): use named imports for treeshaking
* feat: react and react-dom as peerDeps for packages
* feat(grafana-ui): emotion packages as peerDeps
* feat(grafana-e2e): use tsc, rollup, esbuild for bundling
* chore(packages): clean up redundant dependencies
* chore(toolkit): deprecate unused package:build task
* chore(schema): put back dashboard_experimental and exclude to prevent isolatedModules error
* docs(packages): update readme
* chore(storybook): disable isolatedModules for builds
* chore: relax peerDeps for emotion and react
* revert(grafana-ui): put @emotion dependencies back
* refactor: replace relative package imports with package name
* build(packages): set emitDeclaration false for typecheck scripts to work
* test(publicdashboarddatasource): move test next to implementation. try to appease the betterer gods
* chore(storybook): override ts-node config for storybook compilation
* refactor(grafana-data): use ternary so babel doesnt complain about expecting flow types
* chore(toolkit): prefer files and publishConfig package.json props over copying
* build(npm): remove --contents dist arg from publishing commands
* chore(packages): introduce sideEffects prop to package.json to hint package can be treeshaken
* chore(packages): remove redundant index.js files
* feat(packages): set publishConfig.access to public
* feat(packages): use yarn berry and npm for packaging and publishing
* refactor(packages): simplify rollup configs
* chore(schema): add comment explaining need to exclude dashboard_experimental
* revert(toolkit): put back clean to prevent cli failures
* ci(packages): run packages:pack before a canary publish
* chore(gitignore): add npm-artifacts directory to ignore list
* test(publicdashboarddatasource): fix module mocking
* chore(packages): delete package.tgz when running clean
* chore(grafana-data): move dependencies from devDeps to prevent build resolution errors
* fix datalinks for state and status panels
* Add close button on tooltip
* fix links from all series displayed in tooltip
* Allow annotations creation, tweak UI
* Nits
* Remove unused property
* fix returns made from review
* setupUPlotConfig renamed to addTooltipSupport
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* remove UseState + add support for controls in TimeOfDayPicker story
* remove UseState + add controls support in TimeRangeInput story
* Add documentation + fix error when clearing
* properly type range
* wip
* make diff easier to read
* Update template_srv getVariables to return new TypedVariableModel
* update VariableType to use the type from TypedVariableModel
* tidy things up
* prevent recursion blowup in redux, attempt to reintroduce import e2e test
* try importing json like this instead?
* need the panel validation
* Update text so it finds Panel data instead of Dataframe JSON
* skip test for now
* Add new pill-shaped Indicator component
* Use indicator for clipboard button success
* show just check icon during success state
* expose Indicator
* move animation and positioning into Indicator component
* update stories
* update stories
* Annotations: replaced dashboardId with dashboardUID when fetching annotations
* Annotations: Replaced dashboardID with dashboardUID when adding and updating annotations
* Annotations: Used dashboardUID for PanelChrome related methods
* Annotations: Used dashboarduid in annolistpanel
* Annotations: Used dashboardUID in graph plugin
* used boolean in canEditDashboard
* Toggle on the mixed mode option
* Ensure switching to mixed gives existing query prev datasource
* WIP - Populate datasource when switching between mixed and not
* WIP - handle change from mixed
* Remove preimport filter, refine filter to work for queries
* WIP debugging datasource transition
* Ensure creating a new query gets target data source if switching with no matches between
* Add mixed datasource to rich history display
* Cleanup console logs, add relevant comments
* Add feature toggle for mixed datasource
* Fix Wrapper tests
* Fix tests!
* Fix test types and add feature tracking
* Remove unnecessary default, remove explore/mixed workarounds for D2E
* Move display text logic to mixed datasource file
* Add in the default query parameters to a generated empty query
* Condense some code
* Apply suggestions from code review
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Auth: check of auth_token in url and resolve user if present
* check if auth_token is passed in url
* Auth: Pass auth_token for request if present in path
* no need to decode token in index
* temp
* use loadURLToken and set authorization header
* cache token in memory and strip it from url
* Use loadURLToken
* Keep token in url
* strip sensitive query strings from url used by context logger
* adapt login by url to jwt token
* add jwt iframe devenv
* add jwt iframe devenv instructions
* add access note
* add test for cleaning request
* ensure jwt token is not carried into handlers
* do not reshuffle queries, might be important
* add correct db dump location
* prefer set token instead of cached token
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Fix comment lines
* Introduce graphite variable editor
* Render results differently based on queryType
* Add comments and fallback values
* Unit tests for different type of graphite queries
* Use metrics/expand endpoint to retrieve metric names
* Progress
* Example usage in application
* Add FocusScope
* REmove unused type
* simplify it by removing trigger property
* Use new Menu.Item way to access component
* First pass at using datasource UID when appropriate
* Fix tests
* be more lenient with lookup to accomodate different URLs
* Make test setup get mock work like real datasource get
* Fix the typing issue and remaining tests
* Fix PR feedback
* Update dependency moment to v2.29.4 [SECURITY]
* chore(moment): make sure nested moment deps resolve to moment@2.29.4
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* User Experience: apply the same pattern feedback for all copy to clipboard buttons
* add copy icon to all ClipboardButton use cases
* Change primary color for copy to clipboard in create token
* Add success button variant
* Remove copy confirmation from TableCellInspectModal because it's in the base component now
* Design tweaks to copy confirmation
- Only change the icon to tick to avoid the button changing size
- Change button to success green
- Only show copy confirmation state for 2 seconds
* revert TabelCellInspectModal text button back
* revert accidental change to ShareLink
Co-authored-by: joshhunt <josh@trtr.co>
* move sanitize test to its own test file
* add a test for renderTextPanelMarkdown to always sanitize
* setup TextPanel tests
* add tests to always sanitize Text Panel contents and always convert correctly to html/markdown
* Initial work on new toolbar button
* Minor step
* Small progress
* Minor progress
* Minor fix
* removed console.log
* Removing stuff we don't need yet
* feat: make azure experimental the default
* feat: combine metrics query editor rows
fix: linter errors
* chore: remove test loop for DimensionFields test
* Implement disableSecretsCompatibility flag
* Allow secret deletion right after migration
* Use dialect.Quote for secure_json_data on secret deletion
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Set secure_json_data to NULL instead of empty json
* Run toggles_gen_test and use generated flag variable
* Add ID to delete data source secrets command on function call
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Remove extra query to get datasource on secret deletion
* Fix linting issues with CHANGELOG.md
* Use empty json string when deleting secure json data
* Implement secret migration as a background process
* Refactor secret migration as a background service
* Refactor migration to be inside secret store
* Re-add secret deletion function removed on merge
* Try using transaction to fix db lock during tests
* Disable migration for pipeline debugging
* Try adding sleep to fix database lock
* Remove unecessary time sleep from migration
* Fix merge issue, replace models with datasources
* Try event listener approach
* Fix merge issue, replace models with datasources
* Fix linting issues with unchecked error
* Remove unecessary trainling new line
* Increase wait interval on background secret migration
* Rename secret store migration folder for consistency
* Convert background migration to blocking
* Fix number of arguments on server tests
* Check error value of secret migration provider
* Fix linting issue with method varaible
* Revert unintended change on background services
* Move secret migration service provider to wire.go
* Remove unecessary else from datasource service
* Move transaction inside loop on secret migration
* Remove unecessary GetServices function
* Remove unecessary interface after method removal
* Rename Run to Migrate on secret migration interface
* Rename secret migrations service variable on server
* Use MustBool on datasource secret migration
* Revert changes to GetDataSources
* Implement GetAllDataSources function
* Remove DeleteDataSourceSecrets function
* Move datasource secret migration to datasource service
* Remove unecessary properties from datasource secret migration
* Make DecryptLegacySecrets a private method
* Remove context canceled check on secret migrator
* Log error when fail to unmarshal datasource secret
* Add necessary fields to update command on migration
* Handle high availability on secret migration
* Use kvstore for datasource secret migration status
* Add error check for migration status set on kvstore
* Remove NewSecretMigrationService from server tests
* Use const for strings on datasource secrets migration
* Test all cases for datasources secret migrations
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* 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>
* 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
* Import the mdx documentation file to PluginSignatureBadge.story.tsx and add to its export defaul
* Create the mdx file of PluginSignatureBadge with its information
* Fix signed PluginSignatureBadge status
* Modify text according to reviewer suggestions
* betterer
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Added mdx file for secret input
* Chore: Improve SecretInput story
* review related changes in docs
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.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>
* adds copy icon while hovering over log value, copys value to clipboard on click
* Show copy icon while hovering over single log value
* Add test to check for -> render of copy-icon while hovering a single log value
* Show copy icon while hovering over single log value
* refactor: remove commented out code
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.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>
* Convert AccordianReferences test to RTL
* Convert AccordianReferences test to RTL
* Convert AccordianReferences test to RTL
* Convert AccordianReferences tests to RTL
* Convert AccordianReferences test to RTL
* fix betterer
* Convert AccordianReferences test to RTL
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
* Table panel: Support multiple data links in default cell
* Table panel: Show data links for Image and JSONView cells
* Simplify DataLinksContextMenu api
* Betterer
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>
* 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
* 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>