Contexthandler: Add uname as response header (#59930)

Signed-off-by: bergquist <carl.bergquist@gmail.com>
This commit is contained in:
Carl Bergquist 2022-12-07 13:14:53 +01:00 committed by GitHub
parent 7b58fb3a20
commit 1b676d0d49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 0 deletions

View File

@ -53,6 +53,7 @@ Alpha features might be changed or removed without prior notice.
| Feature toggle name | Description |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `returnUnameHeader` | Return user login as header for authenticated requests |
| `alertingBigTransactions` | Use big transactions for alerting database writes |
| `dashboardPreviews` | Create and show thumbnails for dashboard search results |
| `live-config` | Save Grafana Live configuration in SQL tables |

View File

@ -16,6 +16,7 @@
export interface FeatureToggles {
[name: string]: boolean | undefined; // support any string value
returnUnameHeader?: boolean;
alertingBigTransactions?: boolean;
promQueryBuilder?: boolean;
trimDefaults?: boolean;

View File

@ -186,6 +186,11 @@ func (h *ContextHandler) Middleware(next http.Handler) http.Handler {
}
}
// this can be used by proxies to identify certain users
if h.features.IsEnabled(featuremgmt.FlagReturnUnameHeader) {
w.Header().Add("grafana-uname", reqContext.Login)
}
next.ServeHTTP(w, r)
})
}

View File

@ -9,6 +9,11 @@ package featuremgmt
var (
// Register each toggle here
standardFeatureFlags = []FeatureFlag{
{
Name: "returnUnameHeader",
Description: "Return user login as header for authenticated requests",
State: FeatureStateAlpha,
},
{
Name: "alertingBigTransactions",
Description: "Use big transactions for alerting database writes",

View File

@ -7,6 +7,10 @@
package featuremgmt
const (
// FlagReturnUnameHeader
// Return user login as header for authenticated requests
FlagReturnUnameHeader = "returnUnameHeader"
// FlagAlertingBigTransactions
// Use big transactions for alerting database writes
FlagAlertingBigTransactions = "alertingBigTransactions"