Skip to content

Commit b98ed1c

Browse files
committed
MK8S-197 - Add PrometheusAuthProvider
1 parent 0c90d1a commit b98ed1c

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

ui/src/FederableApp.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { applyMiddleware, compose, createStore, Store } from 'redux';
66
import createSagaMiddleware from 'redux-saga';
77
import 'regenerator-runtime/runtime';
88
import App from './containers/App';
9+
import PrometheusAuthProvider from './containers/PrometheusAuthProvider';
910
import { authErrorAction } from './ducks/app/authError';
1011
import { setApiConfigAction } from './ducks/config';
1112
import { setHistory as setReduxHistory } from './ducks/history';
@@ -125,11 +126,13 @@ export default function FederableApp(props: FederatedAppProps) {
125126
>
126127
<Provider store={store}>
127128
<AppConfigProvider>
128-
<ToastProvider>
129-
<RouterWithBaseName>
130-
<App />
131-
</RouterWithBaseName>
132-
</ToastProvider>
129+
<PrometheusAuthProvider>
130+
<ToastProvider>
131+
<RouterWithBaseName>
132+
<App />
133+
</RouterWithBaseName>
134+
</ToastProvider>
135+
</PrometheusAuthProvider>
133136
</AppConfigProvider>
134137
</Provider>
135138
</ShellHooksProvider>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { ReactNode, useEffect } from 'react';
2+
import { useAuth } from './PrivateRoute';
3+
import { setHeaders } from '../services/prometheus/api';
4+
5+
export default function PrometheusAuthProvider({
6+
children,
7+
}: {
8+
children: ReactNode;
9+
}) {
10+
const { userData } = useAuth();
11+
12+
useEffect(() => {
13+
if (userData?.token) {
14+
setHeaders({ Authorization: `Bearer ${userData.token}` });
15+
}
16+
}, [userData?.token]);
17+
18+
return <>{children}</>;
19+
}

ui/src/services/ApiClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ApiClient {
1212

1313
setHeaders = (headers) => {
1414
// @ts-expect-error - FIXME when you are working on it
15-
this.headers = headers;
15+
this.headers = { ...this.headers, ...headers };
1616
};
1717

1818
async get(endpoint, params = {}, opts = {}) {

ui/src/services/prometheus/api.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ export function initialize(apiUrl: string) {
5151
prometheusApiClient = new ApiClient({ apiUrl });
5252
}
5353

54+
export function setHeaders(headers: Record<string, string>) {
55+
if (prometheusApiClient) {
56+
prometheusApiClient.setHeaders(headers);
57+
}
58+
}
59+
5460
export function getAlerts() {
5561
if (prometheusApiClient) {
5662
return prometheusApiClient.get('/api/v1/alerts');

0 commit comments

Comments
 (0)