mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Make token to be a string or a function
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
This commit is contained in:
parent
fbc130fdfd
commit
dd0ba16d45
@ -22,6 +22,7 @@
|
|||||||
// Base class for building all kubernetes apis
|
// Base class for building all kubernetes apis
|
||||||
|
|
||||||
import merge from "lodash/merge";
|
import merge from "lodash/merge";
|
||||||
|
import isFunction from "lodash/isfunction";
|
||||||
import { stringify } from "querystring";
|
import { stringify } from "querystring";
|
||||||
import { apiKubePrefix, isDevelopment } from "../../common/vars";
|
import { apiKubePrefix, isDevelopment } from "../../common/vars";
|
||||||
import logger from "../../main/logger";
|
import logger from "../../main/logger";
|
||||||
@ -108,8 +109,7 @@ export interface IRemoteKubeApiConfig {
|
|||||||
skipTLSVerify?: boolean;
|
skipTLSVerify?: boolean;
|
||||||
}
|
}
|
||||||
user: {
|
user: {
|
||||||
token?: string;
|
token?: string | (() => string);
|
||||||
getToken?: () => string;
|
|
||||||
clientCertificateData?: string;
|
clientCertificateData?: string;
|
||||||
clientKeyData?: string;
|
clientKeyData?: string;
|
||||||
}
|
}
|
||||||
@ -133,16 +133,14 @@ export function forCluster<T extends KubeObject>(cluster: ILocalKubeApiConfig, k
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getToken = (token: string | (() => string)) => isFunction(token) ? token() : token;
|
||||||
|
|
||||||
export function forRemoteCluster<T extends KubeObject>(config: IRemoteKubeApiConfig, kubeClass: KubeObjectConstructor<T>): KubeApi<T> {
|
export function forRemoteCluster<T extends KubeObject>(config: IRemoteKubeApiConfig, kubeClass: KubeObjectConstructor<T>): KubeApi<T> {
|
||||||
const reqInit: RequestInit = {};
|
const reqInit: RequestInit = {};
|
||||||
|
|
||||||
if (config.user.token && config.user.getToken) {
|
if (config.user.token) {
|
||||||
throw new Error("Provide either user.token or user.getToken");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config.user.token || config.user.getToken) {
|
|
||||||
reqInit.headers = {
|
reqInit.headers = {
|
||||||
"Authorization": `Bearer ${config.user.token ?? config.user.getToken()}`
|
"Authorization": `Bearer ${getToken(config.user.token)}`
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,10 +170,10 @@ export function forRemoteCluster<T extends KubeObject>(config: IRemoteKubeApiCon
|
|||||||
serverAddress: config.cluster.server,
|
serverAddress: config.cluster.server,
|
||||||
apiBase: "",
|
apiBase: "",
|
||||||
debug: isDevelopment,
|
debug: isDevelopment,
|
||||||
...(config.user.getToken ? {
|
...(config.user.token ? {
|
||||||
getRequestOptions: () => ({
|
getRequestOptions: () => ({
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${config.user.getToken()}`
|
"Authorization": `Bearer ${getToken(config.user.token)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} : {})
|
} : {})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user