Commit Graph

195 Commits

Author SHA1 Message Date
Arve Knudsen
0a2d5e16dd
pkg/api: Check errors (#19657)
* pkg/api: Check errors
* pkg/api: Remove unused function HashEmail
2019-10-08 18:57:53 +02:00
Oleg Gaidarenko
caa1314f44
Build: use golangci-lint as a make command (#17739)
* Build: use golangci-lint as a make command

* Since gometalinter was deprecated in favor of golangci-lint so it was
  replaced by it. Responsibilities held by the gometalinter was moved to
  golangci-lint

* There was some changes in implementation (that was also mentioned in
  the code comment) between the tools, which uncovered couple errors
  in the code. Those issues were either solved or disabled by
  the inline comments

* Introduce the golangci-lint config, to make their
  configuration more manageable

* Build: replace backend-lint.sh script with make
2019-07-02 16:06:59 +03:00
Maxim Ivanov
151fe240fc OAuth: Fix for wrong user token updated on OAuth refresh in DS proxy (#17541) 2019-06-12 13:47:38 +02:00
Mario Trangoni
87760d4fde Codestyle: Fix govet issues (#17178)
ref #10381

Signed-off-by: Mario Trangoni <mjtrangoni@gmail.com>
2019-06-04 22:00:05 +02:00
zhulongcheng
2fff8f77dc move log package to /infra (#17023)
ref #14679

Signed-off-by: zhulongcheng <zhulongcheng.me@gmail.com>
2019-05-13 08:45:54 +02:00
Brian Gann
b07d0b1026 Plugins: Support templated urls in routes (#16599)
This adds support for using templated/dynamic urls in routes.
* refactor interpolateString into utils and add interpolation support for app plugin routes.
* cleanup and add error check for url parse failure
* add docs for interpolated route urls

Closes #16835
2019-05-07 18:55:39 +02:00
Marcus Efraimsson
e210725d3d
DataProxy: Restore Set-Cookie header after proxy request (#16838)
If Grafana rotates the user's auth token during a request to the data 
source proxy it will set the Set-Cookie header with new auth token in 
response before proxying the request to the datasource.
Before this fix the Set-Cookie response header was cleared after the 
proxied request was finished to make sure that proxied datasources 
cannot affect cookies in users browsers. This had the consequence 
of accidentally also clearing the new auth token set in Set-Cookie 
header.
With this fix the original Set-Cookie value in response header is now 
restored after the proxied datasource request is finished. The existing
logic of clearing Set-Cookie response header from proxied request 
have been left intact.

Fixes #16757
2019-05-01 16:32:03 +02:00
Andrej Ocenas
66f6e16916
Security: Store datasource passwords encrypted in secureJsonData (#16175)
* Store passwords in secureJsonData

* Revert unnecessary refactors

* Fix for nil jsonSecureData value

* Remove copied encryption code from migration

* Fix wrong field reference

* Remove migration and provisioning changes

* Use password getters in datasource proxy

* Refactor password handling in datasource configs

* Add provisioning warnings

* Update documentation

* Remove migration command, moved to separate PR

* Remove unused code

* Set the upgrade version

* Remove unused code

* Remove double reference
2019-04-15 11:11:17 +02:00
Sean Lafferty
b696492891 Rename dispatched commands to make them easy to grok 2019-03-20 14:32:41 -04:00
Sean Lafferty
3f9a19dcd5 Merge branch 'master' into 12556-oauth-pass-thru 2019-03-14 13:18:00 -04:00
Andrej Ocenas
697a87b7b2 Add check so that header is not sent for anonymous users 2019-03-14 16:33:21 +01:00
Andrej Ocenas
bbdc1c0e64 Add custom header with grafana user and a config switch for it 2019-03-14 16:33:19 +01:00
Sean Lafferty
fcc18d8121 Change import path for social in the tests 2019-03-13 14:55:22 -04:00
Sean Lafferty
8d8119aa98 Change import path for social since it has moved 2019-03-13 14:34:55 -04:00
Sean Lafferty
8d19ca005f Merge branch 'master' into 12556-oauth-pass-thru 2019-03-13 14:25:43 -04:00
Sean Lafferty
7e62394d01 Add function in ds_proxy to handle oauthPassThru headers 2019-03-13 13:45:32 -04:00
Sean Lafferty
4324a7f51a Remove auth module from ds_proxy oauth test 2019-03-13 13:28:49 -04:00
Sean Lafferty
3b15e110a5 Get most recent oauth token from db, rather than lookup by auth_module 2019-03-13 13:22:22 -04:00
Marcus Efraimsson
a1cd550df4
revert ds_proxy timeout and implement dataproxy timeout correctly 2019-02-11 13:42:05 +01:00
Sean Lafferty
5a59cdf0ef Add oauth pass-thru option for datasources 2019-02-01 19:40:57 -05:00
Mario Trangoni
8261613b51 pkg/util/{ip.go,url.go}: Fix some golint issues
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=golint  ./...
ip.go:8:6⚠️ func SplitIpPort should be SplitIPPort (golint)
url.go:14:6⚠️ func NewUrlQueryReader should be NewURLQueryReader (golint)
url.go:9:6⚠️ type UrlQueryReader should be URLQueryReader (golint)
url.go:37:6⚠️ func JoinUrlFragments should be JoinURLFragments (golint)
2019-01-28 22:29:20 +01:00
Benjamin Reed
9108fd1b9d add global datasource proxy timeout setting
closes grafana#5699
2019-01-24 14:06:48 -05:00
Brian Gann
02365514f9 redact value for plugin proxy routes 2018-12-04 22:35:00 -06:00
Kornelijus Survila
0cafd9a663 dataproxy: Override incoming Authorization header 2018-11-30 12:12:55 -07:00
Julien Pivotto
62417ca69f Remove Origin and Referer headers while proxying requests
Fix #13949
Fix #13328

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2018-11-08 14:57:47 +01:00
Erik Sundell
b02a8127ff stackdriver: remove debug comments 2018-10-22 16:11:17 +02:00
Erik Sundell
afe0b4b8db stackdriver: fix typo 2018-10-22 16:11:17 +02:00
Erik Sundell
b2c6c743ce stackdriver: add debug logging 2018-10-22 16:11:17 +02:00
Erik Sundell
cd7b454e25 stackdriver: add default value for authentication type 2018-10-22 16:03:14 +02:00
Erik Sundell
823838a839 stackdriver: wip - remove debug code 2018-10-22 16:03:14 +02:00
Erik Sundell
2b1709b875 stackdriver: only get default token from metadata server when applying route 2018-10-22 16:03:13 +02:00
Erik Sundell
ff5f281508 stackdriver: wip - get metric descriptors in the backend 2018-10-22 16:03:13 +02:00
Erik Sundell
60617d0bf7 stackdriver: wip - add logic for retrieving token from gce metadata server in the auth provider 2018-10-22 16:03:13 +02:00
Erik Sundell
3f9ed2efaa stackdriver: wip - temp remove jwt token auth 2018-10-22 16:03:12 +02:00
Erik Sundell
b2de0d8c3e stackdriver: wip - always use gce default account for stackdriver 2018-10-22 16:03:12 +02:00
Erik Sundell
2002162073 stackdriver: wip - add scope and remove debug code 2018-10-22 16:03:12 +02:00
Erik Sundell
df215d9d09 stackdriver: WIP - test retrieving project id from gce metadata 2018-10-22 16:03:12 +02:00
Mitsuhiro Tanda
fbe0ffd10b skip jwt token auth if privateKey is empty 2018-10-22 16:03:12 +02:00
Mitsuhiro Tanda
43aa6603a3 fetch token from GCE metadata server 2018-10-22 16:03:12 +02:00
Marcus Efraimsson
2b1e4d001a
Merge pull request #13326 from ryantxu/proxy-slash
Keep trailing slash for datasource proxy requests
2018-10-04 14:38:34 +02:00
Marcus Efraimsson
8bf4d68035
add datasource proxy test to verify trailing slashes are forwarded 2018-10-03 12:28:30 +02:00
Daniel Lee
d11f67eb25 stackdriver: change info logging to debug logging 2018-09-28 16:16:27 +02:00
Torkel Ödegaard
6db0880fd8 invalidate access token cache after datasource is updated 2018-09-21 14:24:44 +02:00
Ryan McKinley
7c6227c061 remove the test that does not do anything 2018-09-18 11:18:55 -07:00
Ryan McKinley
71dfeff782 add a test 2018-09-17 12:28:36 -07:00
Daniel Lee
982e095f85 dsproxy: add mutex protection to the token caches 2018-09-14 11:13:09 +02:00
Erik Sundell
56e8e50497 Stackdriver: Use ds_auth_provider in stackdriver. This will make sure the token is renewed when it has exporired 2018-09-14 09:38:16 +02:00
Erik Sundell
db170845b0 Stackdriver: Restructured ds proxy tests 2018-09-14 09:38:16 +02:00
Daniel Lee
05f6710454 stackdriver: fix test 2018-09-14 09:38:16 +02:00
Erik Sundell
1725940ab9 Stackdriver: Add new file 2018-09-14 09:38:16 +02:00
Erik Sundell
6a610558c4 Stackdriver: Start breaking out apply route to its own file 2018-09-14 09:38:16 +02:00
Erik Sundell
23339e4322 Stackdriver: Use new access token API 2018-09-14 09:35:28 +02:00
Erik Sundell
71af62e741 Stackdriver: Temporary exporting token lookup 2018-09-14 09:35:28 +02:00
Erik Sundell
92d631986f Stackdriver: Removed debug logging 2018-09-14 09:35:27 +02:00
Daniel Lee
e7648c4070 dsproxy: implements support for plugin routes with jwt file
Google Cloud service accounts use a JWT token to get an
oauth access token. This adds support for that.
2018-09-14 09:35:27 +02:00
Erik Sundell
a4ef4792bc Stackdriver: Add scope for google resource manager 2018-09-14 09:35:26 +02:00
Erik Sundell
350bcf4f56 Fixed broken if statement 2018-09-14 09:35:26 +02:00
Erik Sundell
7197a4c17f Adds jwt token signing google auth 2018-09-14 09:35:26 +02:00
Erik Sundell
ef3beb1f0e Adds poc code for retrieving google auth accesstoken 2018-09-14 09:33:50 +02:00
Daniel Lee
c75e071213 dsproxy: interpolate route url
Allows for dynamic urls for plugin routes. There are a few plugins
where the route url should be configurable and this change allows
using jsonData fields in the url field for a route in the
plugin.json file for a plugin.
2018-08-18 16:02:49 +02:00
Marcus Efraimsson
13921902b5
Set User-Agent header in all proxied datasource requests
Header value will be Grafana/%version%, i.e. Grafana/5.3.0
2018-08-15 09:46:59 +02:00
Torkel Ödegaard
4f704cec53 fix: ds_proxy test not initiating header 2018-08-14 09:18:23 +02:00
Torkel Ödegaard
2459b177f9 change: Set User-Agent to Grafana/%Version% Proxied-DS-Request %DS-Type% in all proxied ds requests 2018-08-13 18:09:01 +02:00
Carl Bergquist
828fb39ee2
Merge pull request #11643 from mrsiano/generic_oauth
Pass configured/auth headers to a Datasource.
2018-06-21 14:21:59 +02:00
mrsiano
cc1e3a0e3c Pass configured/auth headers to a Datasource.
In some setups (ex openshift), the Datasource will require Grafana
to pass oauth token as header when sending queries.
Also, this PR allow to send any header which is something
Grafana currently does not support.
2018-06-21 14:58:05 +03:00
Daniel Lee
10d30f0b73 dsproxy: move http client variable back
After refactoring to be able to mock the client in
a test, the client wasn't a global variable anymore.
This change moves the client back to being a package-
level variable.
2018-06-14 13:39:46 +02:00
Daniel Lee
719ebdc24d dsproxy: allow multiple access tokens per datasource
Changes the cache key for tokens to cache on datasource id +
route path + http method instead of just datasource id.
2018-06-12 17:39:38 +02:00
Daniel Lee
9413ce5ef6
Merge pull request #8096 from ryantxu/influx-db-query2
let the influxdb API set a database
2018-04-13 18:22:12 +02:00
Carl Bergquist
980e078222
Merge pull request #11326 from bergquist/more_traces
dataproxy: adds dashboardid and panelid as tags
2018-03-23 17:13:15 +01:00
Julian Kornberger
0a415c50d0 Make golint happier 2018-03-22 22:38:44 +01:00
bergquist
f142548969 dataproxy: adds dashboardid and panelid as tags
closes #11315
2018-03-20 22:23:28 +01:00
ryan
a04c4ba454 allow any database for influx proxy 2018-03-15 13:01:17 +01:00
ryan
ad88e5398c remove 2018-03-15 12:57:09 +01:00
ryan
4f8ee9f5a7 merge with master 2018-03-14 23:52:24 +01:00
Mitsuhiro Tanda
a83ede0193 support POST for query and query_range 2018-03-12 13:25:05 +09:00
Dan Cech
c0ecdee375
rename Context to ReqContext 2018-03-07 11:54:50 -05:00
Dan Cech
338655dd37
move Context and session out of middleware 2018-03-06 18:16:49 -05:00
Robin Gustafsson
cf7a49977f proxyds: delete cookies except those listed in keepCookies 2017-12-14 11:46:44 +01:00
Daniel Lee
f1aa7dcd52 proxyds: failing test for keepCookies
If the cookies are specified in the keepCookies property then they
should not be deleted from proxied requests for data sources
2017-12-14 11:46:44 +01:00
ryan
fb9c714a9a run go fmt 2017-10-18 23:49:33 +02:00
ryan
4440133f4d Add a setting to allow DB queries 2017-10-18 23:33:10 +02:00
Mitsuhiro Tanda
4f5f38f41b remove old handler 2017-09-29 13:45:11 +09:00
bergquist
ee2e4c6567 add trace headers for outgoing requests 2017-09-18 11:08:58 +02:00
bergquist
3c8133aa4b add traces for datasource reverse proxy requests 2017-09-18 11:08:58 +02:00
Torkel Ödegaard
71c22fdbff dataproxy: removed some logging, closes #9078 2017-08-24 11:18:06 +02:00
Torkel Ödegaard
71c9582944 data source with token auth is starting to work, #9078 2017-08-24 11:07:37 +02:00
Torkel Ödegaard
3c9798bec9 datasource-proxy: token exchange 2017-08-23 17:18:43 +02:00
Torkel Ödegaard
8bf49c51b9 dataproxy: refactoring data source proxy to support route templates and wrote more tests for data proxy code, #9078 2017-08-23 10:52:31 +02:00
Torkel Ödegaard
63d6ab476a feat: data source proxy refactoring and route handling, #9078 2017-08-22 17:14:15 +02:00
Dan Cech
007c08f2a8 remove X-Forwarded-* headers added by nginx when proxying data source & plugin requests (#8418)
* remove X-Forwarded-* headers added by nginx when proxying data source & plugin requests

* properly handle X-Forwarded-For
2017-05-24 13:39:40 +02:00
Dan Cech
b489e93d94 Config Array Syntax (#8204)
* refactor util encryption library so it doesn't have to import log

* add util.SplitString to handle space and/or comma-separated config lines

* go fmt
2017-04-25 09:14:29 +02:00
Torkel Ödegaard
43ba563a1c fix(logging): change log level to trace for plugin proxy logging call, fixes #5126 2016-05-23 07:55:55 +02:00
Torkel Ödegaard
bd2e1ef67e feat(plugins): fixed failing api test 2016-02-26 20:27:29 +01:00
Torkel Ödegaard
8db7cf49a6 feat(plugins): began refactoring AppSettings -> PluginSettings, and have the plugins list view and plugin edit view be common for all plugins 2016-02-25 14:55:31 +01:00
Torkel Ödegaard
37c6a1ddf0 feat(app routes): worked on app routes, added unit test, changed Grafana-Context header to start with X to be standard compliant, got cloud saas queries to work via app route feature and header template 2016-02-10 16:43:35 +01:00