Compare commits

...

4 Commits

Author SHA1 Message Date
Grot (@grafanabot)
409e9bc9a5 "Release: Updated versions in package to 8.5.3" (#336) 2022-05-04 13:50:11 +01:00
Dimitris Sotirakis
553720f212 Request interceptor: block redirects backport to v8.5.x #334 (#335)
* Request interceptor: block redirects

(cherry picked from commit 77865143a3)
(cherry picked from commit 8e431c40a99669e1c9f52758d1c2e17ed0a51950)

* handle location missing

(cherry picked from commit fa93edf698)
(cherry picked from commit 4dea307274b415d9ae00ae0c908c7ca5b30be7f1)

* Update pkg/infra/httpclient/httpclientprovider/host_redirect_validation_middleware.go

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
(cherry picked from commit 801b0b77110d1f366e2f692eb2c77537f8834879)

* Update pkg/infra/httpclient/httpclientprovider/host_redirect_validation_middleware.go

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
(cherry picked from commit 8e1545f104f9f934ebce32ce6ed00f22adb25f38)

* linter

(cherry picked from commit 0e065f0f78e30901ac01b0cf1a9b31944ca4b12c)

* fixes tests

(cherry picked from commit a91a849df1)
(cherry picked from commit aea9009f8a7e155a17e9e89d090451f191cf1b30)

Co-authored-by: Leonard Gram <leo@xlson.com>
2022-05-04 13:47:36 +01:00
Gábor Farkas
90701be19c Merge pull request #329 from grafana/bump-version-8.5.2
Release: Bump version to 8.5.2
2022-05-03 09:44:14 +02:00
grafanabot
8e8e7f621b "Release: Updated versions in package to 8.5.2" 2022-05-03 07:16:48 +00:00
15 changed files with 94 additions and 52 deletions

View File

@@ -4,5 +4,5 @@
"packages": [
"packages/*"
],
"version": "8.5.1"
"version": "8.5.3"
}

View File

@@ -3,7 +3,7 @@
"license": "AGPL-3.0-only",
"private": true,
"name": "grafana",
"version": "8.5.1",
"version": "8.5.3",
"repository": "github:grafana/grafana",
"scripts": {
"api-tests": "jest --notify --watch --config=devenv/e2e-api-tests/jest.js",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/data",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana Data Library",
"keywords": [
"typescript"
@@ -22,7 +22,7 @@
},
"dependencies": {
"@braintree/sanitize-url": "6.0.0",
"@grafana/schema": "8.5.1",
"@grafana/schema": "8.5.3",
"@types/d3-interpolate": "^1.4.0",
"d3-interpolate": "1.4.0",
"date-fns": "2.28.0",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/e2e-selectors",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana End-to-End Test Selectors Library",
"keywords": [
"cli",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/e2e",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana End-to-End Test Library",
"keywords": [
"cli",
@@ -48,7 +48,7 @@
"@babel/core": "7.17.8",
"@babel/preset-env": "7.16.11",
"@cypress/webpack-preprocessor": "5.11.1",
"@grafana/e2e-selectors": "8.5.1",
"@grafana/e2e-selectors": "8.5.3",
"@grafana/tsconfig": "^1.2.0-rc1",
"@mochajs/json-file-reporter": "^1.2.0",
"babel-loader": "8.2.4",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/runtime",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana Runtime Library",
"keywords": [
"grafana",
@@ -22,9 +22,9 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@grafana/data": "8.5.1",
"@grafana/e2e-selectors": "8.5.1",
"@grafana/ui": "8.5.1",
"@grafana/data": "8.5.3",
"@grafana/e2e-selectors": "8.5.3",
"@grafana/ui": "8.5.3",
"@sentry/browser": "6.19.1",
"history": "4.10.1",
"lodash": "4.17.21",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/schema",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana Schema Library",
"keywords": [
"typescript"

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/toolkit",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana Toolkit",
"keywords": [
"grafana",
@@ -28,10 +28,10 @@
"dependencies": {
"@babel/core": "7.13.14",
"@babel/preset-env": "7.13.12",
"@grafana/data": "8.5.1",
"@grafana/data": "8.5.3",
"@grafana/eslint-config": "2.5.2",
"@grafana/tsconfig": "^1.2.0-rc1",
"@grafana/ui": "8.5.1",
"@grafana/ui": "8.5.3",
"@jest/core": "26.6.3",
"@rushstack/eslint-patch": "1.0.6",
"@types/command-exists": "^1.2.0",

View File

@@ -2,7 +2,7 @@
"author": "Grafana Labs",
"license": "Apache-2.0",
"name": "@grafana/ui",
"version": "8.5.1",
"version": "8.5.3",
"description": "Grafana Components Library",
"keywords": [
"grafana",
@@ -33,9 +33,9 @@
"@emotion/css": "11.7.1",
"@emotion/react": "11.8.2",
"@grafana/aws-sdk": "0.0.35",
"@grafana/data": "8.5.1",
"@grafana/e2e-selectors": "8.5.1",
"@grafana/schema": "8.5.1",
"@grafana/data": "8.5.3",
"@grafana/e2e-selectors": "8.5.3",
"@grafana/schema": "8.5.3",
"@grafana/slate-react": "0.22.10-grafana",
"@monaco-editor/react": "4.3.1",
"@popperjs/core": "2.11.4",

View File

@@ -1,6 +1,6 @@
{
"name": "@jaegertracing/jaeger-ui-components",
"version": "8.5.1",
"version": "8.5.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -26,8 +26,8 @@
},
"dependencies": {
"@emotion/css": "11.7.1",
"@grafana/data": "8.5.1",
"@grafana/ui": "8.5.1",
"@grafana/data": "8.5.3",
"@grafana/ui": "8.5.3",
"chance": "^1.0.10",
"classnames": "^2.2.5",
"combokeys": "^3.0.0",

View File

@@ -0,0 +1,37 @@
package httpclientprovider
import (
"errors"
"net/http"
"github.com/grafana/grafana/pkg/models"
sdkhttpclient "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
)
const HostRedirectValidationMiddlewareName = "host-redirect-validation"
func RedirectLimitMiddleware(reqValidator models.PluginRequestValidator) sdkhttpclient.Middleware {
return sdkhttpclient.NamedMiddlewareFunc(HostRedirectValidationMiddlewareName, func(opts sdkhttpclient.Options, next http.RoundTripper) http.RoundTripper {
return sdkhttpclient.RoundTripperFunc(func(req *http.Request) (*http.Response, error) {
res, err := next.RoundTrip(req)
if err != nil {
return nil, err
}
if res.StatusCode >= 300 && res.StatusCode < 400 {
location, locationErr := res.Location()
if errors.Is(locationErr, http.ErrNoLocation) {
return res, nil
}
if locationErr != nil {
return nil, locationErr
}
if validationErr := reqValidator.Validate(location.String(), nil); validationErr != nil {
return nil, validationErr
}
}
return res, nil
})
})
}

View File

@@ -5,6 +5,8 @@ import (
"net/http"
"time"
"github.com/grafana/grafana/pkg/models"
sdkhttpclient "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/metrics/metricutil"
@@ -16,7 +18,7 @@ import (
var newProviderFunc = sdkhttpclient.NewProvider
// New creates a new HTTP client provider with pre-configured middlewares.
func New(cfg *setting.Cfg, tracer tracing.Tracer) *sdkhttpclient.Provider {
func New(cfg *setting.Cfg, validator models.PluginRequestValidator, tracer tracing.Tracer) *sdkhttpclient.Provider {
logger := log.New("httpclient")
userAgent := fmt.Sprintf("Grafana/%s", cfg.BuildVersion)
@@ -27,6 +29,7 @@ func New(cfg *setting.Cfg, tracer tracing.Tracer) *sdkhttpclient.Provider {
sdkhttpclient.BasicAuthenticationMiddleware(),
sdkhttpclient.CustomHeadersMiddleware(),
ResponseLimitMiddleware(cfg.ResponseLimit),
RedirectLimitMiddleware(validator),
}
if cfg.SigV4AuthEnabled {

View File

@@ -3,6 +3,8 @@ package httpclientprovider
import (
"testing"
"github.com/grafana/grafana/pkg/services/validations"
sdkhttpclient "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/setting"
@@ -22,10 +24,10 @@ func TestHTTPClientProvider(t *testing.T) {
})
tracer, err := tracing.InitializeTracerForTest()
require.NoError(t, err)
_ = New(&setting.Cfg{SigV4AuthEnabled: false}, tracer)
_ = New(&setting.Cfg{SigV4AuthEnabled: false}, &validations.OSSPluginRequestValidator{}, tracer)
require.Len(t, providerOpts, 1)
o := providerOpts[0]
require.Len(t, o.Middlewares, 6)
require.Len(t, o.Middlewares, 7)
require.Equal(t, TracingMiddlewareName, o.Middlewares[0].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, DataSourceMetricsMiddlewareName, o.Middlewares[1].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, SetUserAgentMiddlewareName, o.Middlewares[2].(sdkhttpclient.MiddlewareName).MiddlewareName())
@@ -46,16 +48,16 @@ func TestHTTPClientProvider(t *testing.T) {
})
tracer, err := tracing.InitializeTracerForTest()
require.NoError(t, err)
_ = New(&setting.Cfg{SigV4AuthEnabled: true}, tracer)
_ = New(&setting.Cfg{SigV4AuthEnabled: true}, &validations.OSSPluginRequestValidator{}, tracer)
require.Len(t, providerOpts, 1)
o := providerOpts[0]
require.Len(t, o.Middlewares, 7)
require.Len(t, o.Middlewares, 8)
require.Equal(t, TracingMiddlewareName, o.Middlewares[0].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, DataSourceMetricsMiddlewareName, o.Middlewares[1].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, SetUserAgentMiddlewareName, o.Middlewares[2].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, sdkhttpclient.BasicAuthenticationMiddlewareName, o.Middlewares[3].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, sdkhttpclient.CustomHeadersMiddlewareName, o.Middlewares[4].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, ResponseLimitMiddlewareName, o.Middlewares[5].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, SigV4MiddlewareName, o.Middlewares[6].(sdkhttpclient.MiddlewareName).MiddlewareName())
require.Equal(t, SigV4MiddlewareName, o.Middlewares[7].(sdkhttpclient.MiddlewareName).MiddlewareName())
})
}

View File

@@ -1,6 +1,6 @@
{
"name": "@grafana-plugins/input-datasource",
"version": "8.5.1",
"version": "8.5.3",
"description": "Input Datasource",
"private": true,
"repository": {
@@ -24,9 +24,9 @@
"webpack": "5.58.1"
},
"dependencies": {
"@grafana/data": "8.5.1",
"@grafana/toolkit": "8.5.1",
"@grafana/ui": "8.5.1",
"@grafana/data": "8.5.3",
"@grafana/toolkit": "8.5.3",
"@grafana/ui": "8.5.3",
"jquery": "3.5.1",
"react": "17.0.1",
"react-dom": "17.0.1",

View File

@@ -3939,9 +3939,9 @@ __metadata:
version: 0.0.0-use.local
resolution: "@grafana-plugins/input-datasource@workspace:plugins-bundled/internal/input-datasource"
dependencies:
"@grafana/data": 8.5.1
"@grafana/toolkit": 8.5.1
"@grafana/ui": 8.5.1
"@grafana/data": 8.5.3
"@grafana/toolkit": 8.5.3
"@grafana/ui": 8.5.3
"@types/jest": 26.0.15
"@types/lodash": 4.14.149
"@types/react": 17.0.30
@@ -3982,12 +3982,12 @@ __metadata:
languageName: node
linkType: hard
"@grafana/data@8.5.1, @grafana/data@workspace:*, @grafana/data@workspace:packages/grafana-data":
"@grafana/data@8.5.3, @grafana/data@workspace:*, @grafana/data@workspace:packages/grafana-data":
version: 0.0.0-use.local
resolution: "@grafana/data@workspace:packages/grafana-data"
dependencies:
"@braintree/sanitize-url": 6.0.0
"@grafana/schema": 8.5.1
"@grafana/schema": 8.5.3
"@grafana/tsconfig": ^1.2.0-rc1
"@rollup/plugin-commonjs": 21.0.2
"@rollup/plugin-json": 4.1.0
@@ -4040,7 +4040,7 @@ __metadata:
languageName: unknown
linkType: soft
"@grafana/e2e-selectors@8.5.1, @grafana/e2e-selectors@workspace:*, @grafana/e2e-selectors@workspace:packages/grafana-e2e-selectors":
"@grafana/e2e-selectors@8.5.3, @grafana/e2e-selectors@workspace:*, @grafana/e2e-selectors@workspace:packages/grafana-e2e-selectors":
version: 0.0.0-use.local
resolution: "@grafana/e2e-selectors@workspace:packages/grafana-e2e-selectors"
dependencies:
@@ -4064,7 +4064,7 @@ __metadata:
"@babel/core": 7.17.8
"@babel/preset-env": 7.16.11
"@cypress/webpack-preprocessor": 5.11.1
"@grafana/e2e-selectors": 8.5.1
"@grafana/e2e-selectors": 8.5.3
"@grafana/tsconfig": ^1.2.0-rc1
"@mochajs/json-file-reporter": ^1.2.0
"@rollup/plugin-commonjs": 21.0.2
@@ -4171,10 +4171,10 @@ __metadata:
version: 0.0.0-use.local
resolution: "@grafana/runtime@workspace:packages/grafana-runtime"
dependencies:
"@grafana/data": 8.5.1
"@grafana/e2e-selectors": 8.5.1
"@grafana/data": 8.5.3
"@grafana/e2e-selectors": 8.5.3
"@grafana/tsconfig": ^1.2.0-rc1
"@grafana/ui": 8.5.1
"@grafana/ui": 8.5.3
"@rollup/plugin-commonjs": 21.0.2
"@rollup/plugin-node-resolve": 13.1.3
"@sentry/browser": 6.19.1
@@ -4203,7 +4203,7 @@ __metadata:
languageName: unknown
linkType: soft
"@grafana/schema@8.5.1, @grafana/schema@workspace:*, @grafana/schema@workspace:packages/grafana-schema":
"@grafana/schema@8.5.3, @grafana/schema@workspace:*, @grafana/schema@workspace:packages/grafana-schema":
version: 0.0.0-use.local
resolution: "@grafana/schema@workspace:packages/grafana-schema"
dependencies:
@@ -4250,16 +4250,16 @@ __metadata:
languageName: node
linkType: hard
"@grafana/toolkit@8.5.1, @grafana/toolkit@workspace:*, @grafana/toolkit@workspace:packages/grafana-toolkit":
"@grafana/toolkit@8.5.3, @grafana/toolkit@workspace:*, @grafana/toolkit@workspace:packages/grafana-toolkit":
version: 0.0.0-use.local
resolution: "@grafana/toolkit@workspace:packages/grafana-toolkit"
dependencies:
"@babel/core": 7.13.14
"@babel/preset-env": 7.13.12
"@grafana/data": 8.5.1
"@grafana/data": 8.5.3
"@grafana/eslint-config": 2.5.2
"@grafana/tsconfig": ^1.2.0-rc1
"@grafana/ui": 8.5.1
"@grafana/ui": 8.5.3
"@jest/core": 26.6.3
"@rushstack/eslint-patch": 1.0.6
"@types/command-exists": ^1.2.0
@@ -4343,7 +4343,7 @@ __metadata:
languageName: node
linkType: hard
"@grafana/ui@8.5.1, @grafana/ui@workspace:*, @grafana/ui@workspace:packages/grafana-ui":
"@grafana/ui@8.5.3, @grafana/ui@workspace:*, @grafana/ui@workspace:packages/grafana-ui":
version: 0.0.0-use.local
resolution: "@grafana/ui@workspace:packages/grafana-ui"
dependencies:
@@ -4351,9 +4351,9 @@ __metadata:
"@emotion/css": 11.7.1
"@emotion/react": 11.8.2
"@grafana/aws-sdk": 0.0.35
"@grafana/data": 8.5.1
"@grafana/e2e-selectors": 8.5.1
"@grafana/schema": 8.5.1
"@grafana/data": 8.5.3
"@grafana/e2e-selectors": 8.5.3
"@grafana/schema": 8.5.3
"@grafana/slate-react": 0.22.10-grafana
"@grafana/tsconfig": ^1.2.0-rc1
"@mdx-js/react": 1.6.22
@@ -4589,9 +4589,9 @@ __metadata:
resolution: "@jaegertracing/jaeger-ui-components@workspace:packages/jaeger-ui-components"
dependencies:
"@emotion/css": 11.7.1
"@grafana/data": 8.5.1
"@grafana/data": 8.5.3
"@grafana/tsconfig": ^1.2.0-rc1
"@grafana/ui": 8.5.1
"@grafana/ui": 8.5.3
"@types/classnames": ^2.2.7
"@types/deep-freeze": ^0.1.1
"@types/grafana__slate-react": "npm:@types/slate-react@0.22.5"