* Introduce PluginRequestValidator abstraction with a NoOp implementation
* Update PluginRequestValidator abstraction to use the dsURL instead
* Inject PluginRequestValidator into the HTTPServer and validate requests going through data source proxy
* Inject PluginRequestValidator into the BackendPluginManager and validate requests going through it
* Validate requests going through QueryMetrics & QueryMetricsV2
* Validate BackendPluginManager health requests
* Fix backend plugins manager tests
* Validate requests going through alerting service
* Fix tests
* fix tests
* goimports
Co-authored-by: Leonard Gram <leo@xlson.com>
* CDN: Initial poc support for serving assets over a CDN
* Minor fix
* added build path and test
* fix lint error
* Added edition to cdn path
* Move master builds to a separate path
* Added error handling for the url parsing, changed setting name, and added docs
* Updated sample.ini
* Some property renames
* updated
* Minor update to html
* index template improvements
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update docs/sources/administration/configuration.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Added ContentDeliveryPrefix to Licence service
* updated docs
* Updated test mock
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Usage Stats: Remove unused method for getting user stats
This was used in enterprise codebase, but is not longer in use, thus can be safely removed.
* Force refresh user stats in tests
* Auth: add error for expired token
* Auth: save token error into context data
* Auth: send full user and req context to CreateToken
* Auth: add token ID in context
* add TokenExpiredError struct
* update auth tests
* remove most of the changes to CreateToken func
* clean up
* Login: add requestURI in CreateToken ctx
* update RequestURIKey comment
Replace hard-coded `GF_ENTERPRISE_LICENSE_TEXT` with a
`map[string]string` to allow the licensing service to allow sending any
environment variable through to the plugins for licensing purposes.
* Auth: Add Content-Type to SigV4 header allowlist
* add MT headers to permitted headers
* add Kibana API header to allowlist
* add Content-Length header to allow list
* SQLStore: customise the limit of retrieved datasources per organisation
* update all suggestions regarding nil or 0 as default
* Apply suggestions from code review
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* correct default.ini description + adding unittest
* Apply suggestions from code review
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* modify unittest name
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
* Add fake TeamSyncService
* Change SyncTeams dispatch to direct method call
* Remove SyncTeamsCommand struct
* Move TeamSyncService to a separate package
* Remove context from SyncTeams args
* Add comments to teamsyncgroup package
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Replace TeamSyncService with TeamSyncFunc
* Remove unnecessary error check
* Add a test
* Fix test input
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* middleware: Move context handler to own service
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Emil Tullsted <sakjur@users.noreply.github.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* DataSourceSettings: Add servername field to DataSource TLS config
A DNS lookup URL can be provided in the DataSource URL field in order
to dynamically load balance between multiple instances of a DataSource.
When using mutual TLS, Golang's TLS config implementation checks that
the certificate's common name (< 1.15) or subject alternative name
(>= 1.15) has the same value as the domain being accessed. If the DNS
entry is dynamically generated for a specific environment, the
certificate cannot be generated with a name matching the dynamic
DNS URL. As such, Golang offers a servername field that can be set to
overwrite what value is used when checking against the certificate's
common name (or subject alternative name). Without this change, Skip
TLS Verify must be set to true in order for the DataSource to work,
removing some of the benefits gained by using mutual TLS.
This commit adds the ability to set Grafana's internal Golang TLS config
servername field from the UI or a provisioned DataSource.
The servername field is optional and the existing behavior is retained if
the field is not set.
Co-authored-by: Dana Pruitt <dpruitt@vmware.com>
Co-authored-by: Jeremy Alvis <jalvis@pivotal.io>
* Update docs with PR review changes
Co-authored-by: Jeremy Alvis <jalvis@pivotal.io>
Co-authored-by: Dana Pruitt <dpruitt@vmware.com>
* Update with additional PR requested changes
* Minor updates based on PR change requests
Co-authored-by: Dana Pruitt <dpruitt@vmware.com>
* Add an option to hide certain users in the UI
* revert changes for admin users routes
* fix sqlstore function name
* Improve slice management
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Hidden users: convert slice to map
* filter with user logins instead of IDs
* put HiddenUsers in Cfg struct
* hide hidden users from dashboards/folders permissions list
* Update conf/defaults.ini
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* fix params order
* fix tests
* fix dashboard/folder update with hidden user
* add team tests
* add dashboard and folder permissions tests
* fixes after merge
* fix tests
* API: add test for org users endpoints
* update hidden users management for dashboard / folder permissions
* improve dashboard / folder permissions tests
* fixes after merge
* Guardian: add hidden acl tests
* API: add team members tests
* fix team sql syntax for postgres
* api tests update
* fix linter error
* fix tests errors after merge
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
* improve reduce transformer
* add measurment classes
* sync with new grafana measure format
* use address for live
* use plural in URL
* set the field name
* fix build
* find changes
* POST http to channel
* Yarn: Update lock file (#28014)
* Loki: Run instant query only in Explore (#27974)
* Run instant query only in Explore
* Replace forEach with for loop
* don't cast
* Docs: Fixed row display in table (#28031)
* Plugins: Let descendant plugins inherit their root's signature (#27970)
* plugins: Let descendant plugins inherit their root's signature
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Registry: Fix service shutdown mode trigger location (#28025)
* Add Alex Khomenko as member (#28032)
* show history
* fix confirm
* fix confirm
* add tests
* fix lint
* add more errors
* set values
* remove unrelated changes
* unrelated changes
* Update pkg/models/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/models/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/pluginHandler.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/pluginHandler.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/services/live/pluginHandler.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* use measurments for testdata endpoints
* add live to testdata
* add live to testdata
* Update pkg/services/live/channel.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Apply suggestions from code review
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* update comment formats
* uprevert testdata
* Apply suggestions from code review
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
* Apply suggestions from code review
* CloudWatch: Add EC2CapacityReservations Namespace (#28309)
* API: Fix short URLs (#28300)
* API: Fix short URLs
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: Add cloud-middleware as code owners (#28310)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* SQLStore: Run tests as integration tests (#28265)
* sqlstore: Run tests as integration tests
* Truncate database instead of re-creating it on each test
* Fix test description
See https://github.com/grafana/grafana/pull/12129
* Fix lint issues
* Fix postgres dialect after review suggestion
* Rename and document functions after review suggestion
* Add periods
* Fix auto-increment value for mysql dialect
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Drone: Fix grafana-mixin linting (#28308)
* Drone: Fix Starlark script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* grafana-mixin: Move build logic to scripts
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Use mixin scripts
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* CI build image: Install jsonnetfmt and mixtool
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Makefile: Print commands
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* should only ignore the file in the grafana mixin root folder (#28306)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
* fix: for graph size not taking up full height or width
* Graph NG: fix toggling queries and extract Graph component from graph3 panel (#28290)
* Fix issue when data and config is not in sync
* Extract GraphNG component from graph panel and add some tests coverage
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Update packages/grafana-ui/src/components/uPlot/hooks.test.ts
* Fix grid color and annotations refresh
* Drone: Use ${DRONE_TAG} in release pipelines, since it should work (#28299)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Explore: respect min_refresh_interval (#27988)
* Explore: respect min_refresh_interval
Fixes#27494
* fixup! Explore: respect min_refresh_interval
* fixup! Explore: respect min_refresh_interval
* UI: export defaultIntervals from refresh picker
* fixup! Explore: respect min_refresh_interval
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Loki: Base maxDataPoints limits on query type (#28298)
* Base maxLines and maxDataPoints based on query type
* Allow overriding the limit to higher value
* Bump tree-kill from 1.2.1 to 1.2.2 (#27405)
Bumps [tree-kill](https://github.com/pkrumins/node-tree-kill) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/pkrumins/node-tree-kill/releases)
- [Commits](https://github.com/pkrumins/node-tree-kill/compare/v1.2.1...v1.2.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump handlebars from 4.4.3 to 4.7.6 (#27416)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.4.3 to 4.7.6.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.3...v4.7.6)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Build(deps): Bump http-proxy from 1.18.0 to 1.18.1 (#27507)
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Automation: Add backport github action (#28318)
* BackendSrv: Fixes queue countdown when unsubscribe is before response (#28323)
* GraphNG: Use AxisSide enum (#28320)
* IssueTriage: Needs more info automation and messages (#28137)
* IssueTriage: Needs more info automation and messages
* Updated
* Updated
* Updated wording
* SAML: IdP-initiated SSO docs (#28280)
* SAML: IdP-initiated SSO docs
* Update docs/sources/enterprise/saml.md
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Apply suggestions from code review
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* Loki: Run instant query only when doing metric query (#28325)
* Run instant query only when doing metric query
* Update public/app/plugins/datasource/loki/datasource.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Automation: Tweaks to more info message (#28332)
* AlertingNG: remove warn/crit from eval prototype (#28334)
and misc cleanup
* area/grafana/toolkit: update e2e docker image (#28335)
* add xvfb to image
* comment out toolkit inclusion
* add latest tag
* update packages for cypress
* cleanup script
* Update auth-proxy.md (#28339)
Fix a minor grammar mistake: 'handling' to 'handle'.
* Git: Create .gitattributes for windows line endings (#28340)
With this set, Windows users will have text files converted from Windows style line endings (\r\n) to Unix style line endings (\n) when they’re added to the repository.
https://www.edwardthomson.com/blog/git_for_windows_line_endings.html
* Docs: Add docs for valuepicker (#28327)
* Templating: Replace all '$tag' in tag values query (#28343)
* Docs: Add missing records from grafana-ui 7.2.1 CHANGELOG (#28302)
* Dashboard links: Places drop down list so it's always visible (#28330)
* calculating whether to place the list on the right or left edge of the parent
* change naming and add import of createRef
* Automation: Update backport github action trigger (#28352)
It seems like GitHub has solved the problem of running github actions on PRs from forks with access to secrets.
https://github.blog/2020-08-03-github-actions-improvements-for-fork-and-pull-request-workflows/#improvements-for-public-repository-forks
If I change the event that triggers it to pull_request_target the action is run in the context of the base instead of the merged PR branch
* ColorSchemes: Adds more color schemes and text colors that depend on the background (#28305)
* Adding more color modes and text colors that depend on the background color
* Updates
* Updated
* Another big value fix
* Fixing unit tests
* Updated
* Updated test
* Update
* Updated
* Updated
* Updated
* Updated
* Added new demo dashboard
* Updated
* updated
* Updated
* Updateed
* added beta notice
* Fixed e2e test
* Fix typos
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* revert pseduo code
* apply feedback
* remove HTTP for now
* fix backend test
* change to datasource
* clear input for streams
* fix docs?
* consistent measure vs measurements
* better jsdocs
* fix a few jsdoc errors
* fix comment style
* Remove commented out code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Clean up code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Update pkg/models/live.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix build
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* set the stringField
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: ozhuang <ozhuang.95@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Amos Law <ahlaw.dev@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: The Rock Guy <fabian.bracco@gvcgroup.com.au>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Elliot Pryde <elliot.pryde@elliotpryde.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Brian Gann <briangann@users.noreply.github.com>
Co-authored-by: J-F-Far <joel.f.farthing@gmail.com>
Co-authored-by: acoder77 <73009264+acoder77@users.noreply.github.com>
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Krzysztof Dąbrowski <krzysdabro@live.com>
Co-authored-by: maknik <mooniczkam@gmail.com>
* Alerting: Return proper status code when trying to create an Alert Notification where the name or UID already exists.
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* intial frontend resolution/redirection logic
* backend scaffolding
* enough of the frontend to actually test end to end
* bugfixes
* add tests
* cleanup
* explore too hard for now
* fix build
* Docs: add docs
* FE test
* redirect directly from backend
* validate incoming uids
* add last_seen_at
* format documentation
* more documentation feedback
* very shaky migration of get route to middleware
* persist unix timestamps
* add id, orgId to table
* fixes for orgId scoping
* whoops forgot the middleware
* only redirect to absolute URLs under the AppUrl domain
* move lookup route to /goto/:uid, stop manually setting 404 response code
* renaming things according to PR feedback
* tricky deletion
* sneaky readd
* fix test
* more BE renaming
* FE updates -- no more @ts-ignore hacking :) and accounting for subpath
* Simplify code
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Short URLs: Drop usage of bus
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* ShortURLService: Make injectable
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Rename file
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add handling of url parsing and creating of full shortURL to backend
* Update test, remove unused imports
* Update pkg/api/short_urls.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add correct import
* Pass context to short url service
* Remove not needed error log
* Rename dto and field to denote URL rather than path
* Update api docs based on feedback/suggestion
* Rename files to singular
* Revert to send relative path to backend
* Fixes after review
* Return dto when creating short URL that includes the full url
Use full url to provide shorten URL to the user
* Fix after review
* Fix relative url path when creating new short url
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Ivana <ivana.huckova@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* expire with existng cleanup service
* expire with new temp user service
* make Drone happy :)
* add expiry status
* remove other approach
* cleanup
* add test for idempotency
* add migration from datetime to unix ts
* update cmd names
* change lifetime config to duration
* remove unnecessart formatting
* add comment
* update docs
* remove max bound and introduce min error
* simplify sql
* remove comment
* allow any outstanding to exist for at least 24 hours
* revert created ts change
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* add extra state check to cleanup step
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
* end 2 end
* fix import
* refactor
* introduce securedata
* check err
* use testify instead of convey
* cleanup test
* cleanup test
* blob time
* rename funcs