Ryan McKinley
680e6bc1f8
Authlib: Use types package rather than claims ( #99243 )
2025-01-21 12:06:55 +03:00
Misi
84b8296ffb
OAuth: Use the attached external session data in OAuthToken and OAuthTokenSync ( #96655 )
...
* wip
* wip + tests
* wip
* wip opt2
* Use authn.Identity struct's SessionToken
* Merge fixes
* Handle disabling the feature flag correctly
* Fix test
* Cleanup
* Remove HasOAuthEntry from the OAuthTokenService interface
* Remove unused function
2024-11-27 11:06:39 +01:00
Gábor Farkas
1dbbbd9ca7
query: handle the x-rule-uid header ( #95223 )
2024-10-23 10:49:54 +02:00
Gábor Farkas
3a719a2cfd
api: use alerting headers ( #95118 )
...
* api: use alerting headers
* improve code, add integration test
* better comment
* fixed test
* merged tests
2024-10-23 09:39:22 +02:00
Marcus Efraimsson
b28085110d
Plugins: Auto instrumentation improvements ( #94193 )
2024-10-15 14:02:34 +02:00
Marcus Efraimsson
b7a7f2bd62
Plugins: Use handler middleware from the SDK ( #93445 )
...
updates sdk to v0.251.0
2024-09-30 16:33:15 +02:00
Gábor Farkas
c48caf0921
logging: log plugin request start ( #92925 )
...
log plugin request start
2024-09-10 13:25:50 +02:00
Sven Grossmann
5ad7c47816
Plugin Instrumentation: Add target property to request logs ( #91946 )
...
* Plugin Instrumentation: Add `target` property to request logs
* remove comment
* remove error
2024-09-02 17:41:26 +02:00
Ryan McKinley
2e60f28044
Auth: remove id token flag ( #92209 )
2024-08-21 16:30:17 +03:00
Will Browne
d35e9264bb
Plugins: Use plugins SDK constants for OAuth header names ( #90892 )
...
use SDK consts
2024-08-20 13:29:41 +01:00
Todd Treece
e60b0aef83
Plugins: Add support for ResourceConversion ( #91977 )
2024-08-15 16:02:21 -04:00
Karl Persson
8bcd9c2594
Identity: Remove typed id ( #91801 )
...
* Refactor identity struct to store type in separate field
* Update ResolveIdentity to take string representation of typedID
* Add IsIdentityType to requester interface
* Use IsIdentityType from interface
* Remove usage of TypedID
* Remote typedID struct
* fix GetInternalID
2024-08-13 10:18:28 +02:00
Ryan McKinley
21d4a4f49e
Auth: use IdentityType from authlib ( #91763 )
2024-08-12 09:26:53 +03:00
Karl Persson
bcfb66b416
Identity: remove GetTypedID ( #91745 )
2024-08-09 18:20:24 +03:00
Ryan McKinley
9db3bc926e
Identity: Rename "namespace" to "type" in the requester interface ( #90567 )
2024-07-25 12:52:14 +03:00
Marcus Efraimsson
c8af659f02
Plugins: Enhanced plugin instrumentation ( #90199 )
...
* Plugins: Enhanced plugin instrumentation
* use backend.CallResourceResponseSenderFunc
* sdk v0.237.0
* support admission control
* cover all handlers in log and metrics middlewares
* fix after review
2024-07-09 15:03:46 +02:00
Ryan McKinley
99d8025829
Chore: Move identity and errutil to apimachinery module ( #89116 )
2024-06-13 07:11:35 +03:00
Marcus Efraimsson
0af2931672
Plugins: Don't forward cookies for app plugins ( #88663 )
2024-06-04 16:55:54 +02:00
Ryan McKinley
ffc2702552
Plugins: Support Admission validation hooks ( #87718 )
2024-05-24 18:45:16 +03:00
Ryan McKinley
62d326cf04
Plugins: Add baseMiddleware support ( #87799 )
2024-05-14 16:27:40 +03:00
Marcus Efraimsson
488bbaacab
Chore: Remove unused dependenices in plugin client middlewares ( #84624 )
...
* Chore: Remove unused dependenices in plugin client middlewares
* refactor logger middleware to remove cfg dependency
* hack to make tracing work in api group builders
2024-03-22 12:54:35 +01:00
Ieva
2c5b72e844
AuthZ: add headers for IP range AC checks for data source proxy requests ( #81662 )
...
* add a middleware that appens headers for IP range AC to data source proxy requests
* update code
* add tests
* fix a mistake
* add logging
* refactor to reuse code
* small cleanup
* skip the plugins middleware if the header is already set
* skip the plugins middleware if the header is already set
2024-03-06 12:40:48 +00:00
Ieva
19b1e71fee
IP range AC for data sources: compare the base of the URL only ( #83305 )
...
* compare the base of the URL and ignore the path
* change the logic to compare scheme and host explicitly
* fix the test
2024-02-23 18:13:21 +02:00
Giuseppe Guerra
68fe045ec7
Plugins: Remove pluginsInstrumentationStatusSource feature toggle ( #83067 )
...
* Plugins: Remove pluginsInstrumentationStatusSource feature toggle
* update tests
* Inline pluginRequestDurationWithLabels, pluginRequestCounterWithLabels, pluginRequestDurationSecondsWithLabels
2024-02-21 12:57:40 +01:00
Torkel Ödegaard
64e0a4282e
DataQuery: Track panel plugin id not type ( #83091 )
2024-02-21 09:38:42 +01:00
Ieva
7c44dd713a
IP range AC: Add X-Real-IP header ( #82390 )
...
add X-Real-IP header
2024-02-14 11:45:55 +00:00
Will Browne
788b9afda3
Plugins: Make it possible to support multiple plugin versions ( #82116 )
...
* first pass
* use version in more places
* add comment
* update installer
* fix wire
* fix tests
* tidy
* simplify changes
* fix in mem
* remove unused step
* fix step dupe logic for child plugins + add tests
2024-02-12 12:47:49 +01:00
Gabriel MABILLE
4af5aef417
id forwarding: transfer Grafana id token to app plugins ( #81967 )
...
* id forwarding: allow for app plugins as well
* Add test
2024-02-06 16:26:17 +01:00
Ieva
c310a20966
AuthZ: add headers for IP range AC checks for cloud data sources ( #80208 )
...
* add feature toggle
* add a middleware that appens headers for IP range AC
* sort imports
* sign IP range header and only append it if the request is going to allow listed data sources
* sign a random generated string instead of IP, also change the name of the middleware to make it more generic
* remove the DS IP range AC options from the config file; remove unwanted change
* add test
* sanitize the URLs when comparing
* cleanup and fixes
* check if X-Real-Ip is present, and set the internal request header if it is not present
* use split string function from the util package
2024-01-31 18:09:24 +01:00
Dominik Prokop
f77c831e3f
Data query: Allow logging panel plugin id when executing queries ( #81164 )
...
* Data query: Allo logging panel plugin id when executing queries
* Update tracing header middleware
* Test fix
* Add panelPluginType to query analytics
* Cleanup
2024-01-30 00:06:31 -08:00
Karl Persson
147bf01745
IDForwarding: Always forward id tokens to plugins ( #81041 )
...
* Always forward id tokens to plugins
2024-01-23 12:12:32 +01:00
Ryan McKinley
1caaa56de0
FeatureFlags: Use interface rather than manager ( #80000 )
2024-01-09 10:38:06 -08:00
Andreas Christou
f26ad881ed
Plugins: Only set non-existing headers for core plugin requests ( #78633 )
...
* Only set non-existing headers
- Add test scenario
* Fix test
2023-11-30 11:51:40 +00:00
Ryan McKinley
f69fd3726b
FeatureToggles: Add context and and an explicit global check ( #78081 )
2023-11-14 12:50:27 -08:00
Jo
580477bf8e
NGAlerting: Use identity.Requester interface instead of SignedInUser ( #76360 )
...
* unfurl SignedInUserAttrs services
* replace signedInUser with Requester
replace signedInUser with requester
* fix tests
* linting
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com >
2023-11-14 14:47:34 +00:00
Giuseppe Guerra
ab4fc07cc7
Plugins: Add statusSource to partial data response error log ( #78057 )
...
* Plugins: Add statusSource to partial data response error log
* Introduce DefaultStatusSource
* Add StatusSourceFromPluginErrorSource
* Moved StatusSourceFromPluginErrorSource
* Update pkg/services/pluginsintegration/clientmiddleware/logger_middleware.go
2023-11-14 16:27:48 +02:00
Marcus Efraimsson
c7442c0fd2
Instrumentation: Check embedded errors in query data response for plugin metrics/logs status label ( #77613 )
...
Check embedded errors in query data response for plugin metrics/logs status label.
Plugin Request Completed log messages are now logged with info level if status=ok,
otherwise error level.
Fixes #76769
2023-11-10 16:55:01 +01:00
Giuseppe Guerra
46261de32d
Plugins: Fix status_source always being "plugin" in plugin request logs ( #77433 )
...
* Plugins: Fix status_source always being "plugin" in plugin logs
* add tests
* Fix TestInstrumentationMiddlewareStatusSource
2023-10-31 13:42:39 +01:00
Karl Persson
bc9fab6f30
IDForwarding: Update settings name ( #77257 )
...
Update settings name
2023-10-27 10:20:49 +02:00
Karl Persson
1b6d39f823
IDForwarding: Require that id forwarding is enabled for data source ( #77131 )
...
* Require that id forwarding is enabled for data source
* Address feedback
2023-10-27 08:30:33 +02:00
Alexander Zobnin
cad3c43bb1
Team LBAC: Move middleware to enterprise ( #76969 )
...
* Team LBAC: Move middleware to enterprise
* Remove ds proxy part
* Move utils to enterprise
2023-10-24 14:06:18 +03:00
Giuseppe Guerra
48a1dae834
Plugins: Add contextual logger to streaming methods in ContextualLoggerMiddleware ( #76761 )
2023-10-19 11:52:50 +02:00
Marcus Efraimsson
872386b427
Instrumentation: Log errors embedded within query data responses ( #76285 )
...
Fixes #76140
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com >
2023-10-18 11:59:36 +02:00
Eric Leijonmarck
be5ba68132
Team LBAC: Add teamHeaders for datasource proxy requests ( #76339 )
...
* Add teamHeaders for datasource proxy requests
* adds validation for the teamHeaders
* added tests for applying teamHeaders
* remove previous implementation
* validation for header values being set to authproxy
* removed unnecessary checks
* newline
* Add middleware for injecting headers on the data source backend
* renamed feature toggle
* Get user teams from context
* Fix feature toggle name
* added test for validation of the auth headers and fixed evaluation to cover headers
* renaming of teamHeaders to teamHTTPHeaders
* use of header set for non-existing header and add for existing headers
* moves types into datasources
* fixed unchecked errors
* Refactor
* Add tests for data model
* Update pkg/api/datasources.go
Co-authored-by: Victor Cinaglia <victor@grafana.com >
* Update pkg/api/datasources.go
Co-authored-by: Victor Cinaglia <victor@grafana.com >
---------
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com >
Co-authored-by: Victor Cinaglia <victor@grafana.com >
2023-10-17 11:23:54 +01:00
Giuseppe Guerra
c4fefd8da9
Plugins: Add status_source label to plugin request logs ( #76676 )
2023-10-17 11:09:01 +02:00
Giuseppe Guerra
f5076d1868
Plugins: Add status_source label to plugin request metrics ( #76236 )
...
* Plugins: Chore: Renamed instrumentation middleware to metrics middleware
* Removed repeated logger attributes in middleware and contextual logger
* renamed loggerParams to logParams
* PR review suggestion
* Add pluginsInstrumentationStatusSource feature toggle
* Plugin error source prometheus metrics
* Add error_source to logs
* re-generate feature toggles
* fix compilation issues
* remove unwanted changes
* Removed logger middleware changes, implement error source using context
* Renamed pluginmeta to pluginrequestmeta, changed some method names
* Fix comment
* pluginrequestmeta.go -> plugin_request_meta.go
* Replaced plugin request meta with status source
* Add tests for pluginrequestmeta status source
* Fix potential nil pointer dereference in instrmentation middleware
* Add metrics middleware tests
* Sort imports in clienttest.go
* Add StatusSourceFromContext test
* Add error_source label to plugin_request_duration_seconds
* Re-generate feature flags
* lint
* Use StatusSourcePlugin by default
* re-generate feature flags
2023-10-17 10:27:45 +02:00
Giuseppe Guerra
50504ba008
Plugins: Chore: Renamed instrumentation middleware to metrics middleware ( #76186 )
...
* Plugins: Chore: Renamed instrumentation middleware to metrics middleware
* Removed repeated logger attributes in middleware and contextual logger
* renamed loggerParams to logParams
* PR review suggestion
* Add contextual logger middleware
* Removed unused params from logRequest
* Removed unwanted changes
* Safer FromContext method
* Removed traceID from logParams
2023-10-11 12:42:32 +02:00
Giuseppe Guerra
cfcfbe4aaa
Plugins: Refactoring: Implement plugin instrumentation as a middleware ( #76011 )
...
* Plugins: Refactor instrumentation as plugin client middleware
* Simplify repeated code
* Fix compilation error
* Add comments
* Moved status and endpoint consts to utils.go
* Fix wrong endpoint name in CheckHealth InstrumentationMiddleware
* Add tests
* Fix wrong endpoint value in instrumentPluginRequestSize
* removed todo
* PR review feedback: use MustRegister
* PR review feedback: move tracing middleware before instrumentation middleware
* PR review feedback: removed decommissioned check
* PR review feedback: extract prometheus metrics into separate variables
2023-10-09 14:12:57 +02:00
Marcus Efraimsson
e4c1a7a141
Tracing: Standardize on otel tracing ( #75528 )
2023-10-03 14:54:20 +02:00
Giuseppe Guerra
cc9a4aa203
Plugins: Logger middleware: Fix wrong endpoint name for CheckHealth ( #75873 )
...
Plugins: Logger middleware: fix wrong endpoint name for CheckHealth
2023-10-03 13:13:06 +03:00