diff --git a/src/common/certificate/lens-proxy-certificate-injection-token.ts b/src/common/certificate/lens-proxy-certificate-injection-token.ts deleted file mode 100644 index 7d64e15e3b..0000000000 --- a/src/common/certificate/lens-proxy-certificate-injection-token.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import { getInjectionToken } from "@ogre-tools/injectable"; -import type { SelfSignedCert } from "selfsigned"; - -interface LensProxyCertificateValue { - get: () => SelfSignedCert; - set: (cert: SelfSignedCert) => void; -} - -export const lensProxyCertificateInjectionToken = getInjectionToken({ - id: "lens-proxy-certificate-token", -}); diff --git a/src/main/lens-proxy/lens-proxy-certificate.global-override-for-injectable.ts b/src/common/certificate/lens-proxy-certificate.global-override-for-injectable.ts similarity index 70% rename from src/main/lens-proxy/lens-proxy-certificate.global-override-for-injectable.ts rename to src/common/certificate/lens-proxy-certificate.global-override-for-injectable.ts index 69e944ff25..d547516062 100644 --- a/src/main/lens-proxy/lens-proxy-certificate.global-override-for-injectable.ts +++ b/src/common/certificate/lens-proxy-certificate.global-override-for-injectable.ts @@ -3,8 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { SelfSignedCert } from "selfsigned"; -import { getGlobalOverride } from "../../common/test-utils/get-global-override"; +import { getGlobalOverride } from "../test-utils/get-global-override"; import lensProxyCertificateInjectable from "./lens-proxy-certificate.injectable"; export default getGlobalOverride(lensProxyCertificateInjectable, () => { @@ -13,8 +12,8 @@ export default getGlobalOverride(lensProxyCertificateInjectable, () => { public: "", private: "", cert: "", - }) as SelfSignedCert, - set: () => null, + }), + set: () => {}, }; }); diff --git a/src/renderer/certificate/lens-proxy-certificate.injectable.ts b/src/common/certificate/lens-proxy-certificate.injectable.ts similarity index 80% rename from src/renderer/certificate/lens-proxy-certificate.injectable.ts rename to src/common/certificate/lens-proxy-certificate.injectable.ts index 49489a87a5..b5e00e0094 100644 --- a/src/renderer/certificate/lens-proxy-certificate.injectable.ts +++ b/src/common/certificate/lens-proxy-certificate.injectable.ts @@ -4,7 +4,6 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import type { SelfSignedCert } from "selfsigned"; -import { lensProxyCertificateInjectionToken } from "../../common/certificate/lens-proxy-certificate-injection-token"; const lensProxyCertificateInjectable = getInjectable({ id: "lens-proxy-certificate", @@ -19,13 +18,16 @@ const lensProxyCertificateInjectable = getInjectable({ return certState; }, set: (certificate: SelfSignedCert) => { + if (certState) { + throw "certificate has already been set"; + } + certState = certificate; }, }; return cert; }, - injectionToken: lensProxyCertificateInjectionToken, }); export default lensProxyCertificateInjectable; diff --git a/src/common/k8s-api/create-json-api.injectable.ts b/src/common/k8s-api/create-json-api.injectable.ts index f1e998334c..7f8559bf3a 100644 --- a/src/common/k8s-api/create-json-api.injectable.ts +++ b/src/common/k8s-api/create-json-api.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { Agent } from "https"; import type { RequestInit } from "node-fetch"; -import { lensProxyCertificateInjectionToken } from "../certificate/lens-proxy-certificate-injection-token"; +import lensProxyCertificateInjectable from "../certificate/lens-proxy-certificate.injectable"; import fetchInjectable from "../fetch/fetch.injectable"; import loggerInjectable from "../logger.injectable"; import type { JsonApiConfig, JsonApiData, JsonApiDependencies, JsonApiParams } from "./json-api"; @@ -20,7 +20,7 @@ const createJsonApiInjectable = getInjectable({ fetch: di.inject(fetchInjectable), logger: di.inject(loggerInjectable), }; - const lensProxyCert = di.inject(lensProxyCertificateInjectionToken); + const lensProxyCert = di.inject(lensProxyCertificateInjectable); return (config, reqInit) => { if (!config.getRequestOptions) { diff --git a/src/common/k8s-api/create-kube-json-api.injectable.ts b/src/common/k8s-api/create-kube-json-api.injectable.ts index 80c05cfc7e..f7b5a152ee 100644 --- a/src/common/k8s-api/create-kube-json-api.injectable.ts +++ b/src/common/k8s-api/create-kube-json-api.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { Agent } from "https"; import type { RequestInit } from "node-fetch"; -import { lensProxyCertificateInjectionToken } from "../certificate/lens-proxy-certificate-injection-token"; +import lensProxyCertificateInjectable from "../certificate/lens-proxy-certificate.injectable"; import fetchInjectable from "../fetch/fetch.injectable"; import loggerInjectable from "../logger.injectable"; import type { JsonApiConfig, JsonApiDependencies } from "./json-api"; @@ -20,7 +20,7 @@ const createKubeJsonApiInjectable = getInjectable({ fetch: di.inject(fetchInjectable), logger: di.inject(loggerInjectable), }; - const lensProxyCert = di.inject(lensProxyCertificateInjectionToken); + const lensProxyCert = di.inject(lensProxyCertificateInjectable); return (config, reqInit) => { if (!config.getRequestOptions) { diff --git a/src/main/k8s-request.injectable.ts b/src/main/k8s-request.injectable.ts index fb9bcf1b94..c00e70ec3f 100644 --- a/src/main/k8s-request.injectable.ts +++ b/src/main/k8s-request.injectable.ts @@ -7,7 +7,7 @@ import request from "request-promise-native"; import type { Cluster } from "../common/cluster/cluster"; import { getInjectable } from "@ogre-tools/injectable"; import lensProxyPortInjectable from "./lens-proxy/lens-proxy-port.injectable"; -import lensProxyCertificateInjectable from "./lens-proxy/lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../common/certificate/lens-proxy-certificate.injectable"; export type K8sRequest = (cluster: Cluster, path: string, options?: RequestPromiseOptions) => Promise; diff --git a/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts b/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts index 42102354f1..010ec7174e 100644 --- a/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts +++ b/src/main/kubeconfig-manager/create-kubeconfig-manager.injectable.ts @@ -14,7 +14,7 @@ import getDirnameOfPathInjectable from "../../common/path/get-dirname.injectable import pathExistsInjectable from "../../common/fs/path-exists.injectable"; import writeFileInjectable from "../../common/fs/write-file.injectable"; import removePathInjectable from "../../common/fs/remove.injectable"; -import lensProxyCertificateInjectable from "../lens-proxy/lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../common/certificate/lens-proxy-certificate.injectable"; export interface KubeConfigManagerInstantiationParameter { cluster: Cluster; diff --git a/src/main/lens-proxy/lens-proxy-certificate-request-handler.injectable.ts b/src/main/lens-proxy/lens-proxy-certificate-request-handler.injectable.ts index 58ed80cf3f..c26d1ac275 100644 --- a/src/main/lens-proxy/lens-proxy-certificate-request-handler.injectable.ts +++ b/src/main/lens-proxy/lens-proxy-certificate-request-handler.injectable.ts @@ -5,7 +5,7 @@ import type { SelfSignedCert } from "selfsigned"; import { lensProxyCertificateChannel } from "../../common/certificate/lens-proxy-certificate-channel"; import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens"; -import lensProxyCertificateInjectable from "./lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../common/certificate/lens-proxy-certificate.injectable"; const lensProxyCertificateRequestHandlerInjectable = getRequestChannelListenerInjectable({ channel: lensProxyCertificateChannel, diff --git a/src/main/lens-proxy/lens-proxy-certificate.injectable.ts b/src/main/lens-proxy/lens-proxy-certificate.injectable.ts deleted file mode 100644 index 5b328cecf4..0000000000 --- a/src/main/lens-proxy/lens-proxy-certificate.injectable.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import type { SelfSignedCert } from "selfsigned"; -import { lensProxyCertificateInjectionToken } from "../../common/certificate/lens-proxy-certificate-injection-token"; - -const lensProxyCertificateInjectable = getInjectable({ - id: "lens-proxy-certificate", - instantiate: () => { - let certState: SelfSignedCert; - - return { - get: () => certState, - set: (cert: SelfSignedCert): void => { - if (certState) { - throw "cannot override cert"; - } - certState = cert; - }, - }; - }, - injectionToken: lensProxyCertificateInjectionToken, - causesSideEffects: true, -}); - -export default lensProxyCertificateInjectable; diff --git a/src/main/lens-proxy/lens-proxy.injectable.ts b/src/main/lens-proxy/lens-proxy.injectable.ts index 8f07757ea5..998312b535 100644 --- a/src/main/lens-proxy/lens-proxy.injectable.ts +++ b/src/main/lens-proxy/lens-proxy.injectable.ts @@ -13,7 +13,7 @@ import lensProxyPortInjectable from "./lens-proxy-port.injectable"; import contentSecurityPolicyInjectable from "../../common/vars/content-security-policy.injectable"; import emitAppEventInjectable from "../../common/app-event-bus/emit-event.injectable"; import loggerInjectable from "../../common/logger.injectable"; -import lensProxyCertificateInjectable from "./lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../common/certificate/lens-proxy-certificate.injectable"; const lensProxyInjectable = getInjectable({ id: "lens-proxy", diff --git a/src/main/start-main-application/lens-window/application-window/create-electron-window.injectable.ts b/src/main/start-main-application/lens-window/application-window/create-electron-window.injectable.ts index 95400ed9fe..bd84909a49 100644 --- a/src/main/start-main-application/lens-window/application-window/create-electron-window.injectable.ts +++ b/src/main/start-main-application/lens-window/application-window/create-electron-window.injectable.ts @@ -15,7 +15,7 @@ import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-d import isLinuxInjectable from "../../../../common/vars/is-linux.injectable"; import applicationInformationToken from "../../../../common/vars/application-information-token"; import pathExistsSyncInjectable from "../../../../common/fs/path-exists-sync.injectable"; -import lensProxyCertificateInjectable from "../../../lens-proxy/lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../../../common/certificate/lens-proxy-certificate.injectable"; export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover"; diff --git a/src/main/start-main-application/runnables/setup-lens-proxy-certificate.injectable.ts b/src/main/start-main-application/runnables/setup-lens-proxy-certificate.injectable.ts index 179aaed36b..9957877ab5 100644 --- a/src/main/start-main-application/runnables/setup-lens-proxy-certificate.injectable.ts +++ b/src/main/start-main-application/runnables/setup-lens-proxy-certificate.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { generate } from "selfsigned"; -import lensProxyCertificateInjectable from "../../lens-proxy/lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable"; import { beforeElectronIsReadyInjectionToken } from "../runnable-tokens/before-electron-is-ready-injection-token"; const setupLensProxyCertificateInjectable = getInjectable({ diff --git a/src/main/start-main-application/runnables/setup-lens-proxy.injectable.ts b/src/main/start-main-application/runnables/setup-lens-proxy.injectable.ts index 4148c7afa2..69184ddec2 100644 --- a/src/main/start-main-application/runnables/setup-lens-proxy.injectable.ts +++ b/src/main/start-main-application/runnables/setup-lens-proxy.injectable.ts @@ -12,7 +12,7 @@ import showErrorPopupInjectable from "../../electron-app/features/show-error-pop import { beforeApplicationIsLoadingInjectionToken } from "../runnable-tokens/before-application-is-loading-injection-token"; import buildVersionInjectable from "../../vars/build-version/build-version.injectable"; import initializeBuildVersionInjectable from "../../vars/build-version/init.injectable"; -import lensProxyCertificateInjectable from "../../lens-proxy/lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable"; import fetchInjectable from "../../../common/fetch/fetch.injectable"; import { Agent } from "https"; diff --git a/src/renderer/before-frame-starts/runnables/setup-lens-proxy-certificate.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-lens-proxy-certificate.injectable.ts index 6f4541d4ab..e698eda6dd 100644 --- a/src/renderer/before-frame-starts/runnables/setup-lens-proxy-certificate.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-lens-proxy-certificate.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { beforeFrameStartsFirstInjectionToken } from "../tokens"; -import lensProxyCertificateInjectable from "../../certificate/lens-proxy-certificate.injectable"; +import lensProxyCertificateInjectable from "../../../common/certificate/lens-proxy-certificate.injectable"; import requestLensProxyCertificateInjectable from "../../certificate/request-lens-proxy-certificate.injectable"; const setupLensProxyCertificateInjectable = getInjectable({ diff --git a/src/renderer/certificate/lens-proxy-certificate.global-override-for-injectable.ts b/src/renderer/certificate/lens-proxy-certificate.global-override-for-injectable.ts deleted file mode 100644 index a9872b3caf..0000000000 --- a/src/renderer/certificate/lens-proxy-certificate.global-override-for-injectable.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import { getGlobalOverride } from "../../common/test-utils/get-global-override"; -import lensProxyCertificateInjectable from "./lens-proxy-certificate.injectable"; - -export default getGlobalOverride(lensProxyCertificateInjectable, () => { - return { - get: () => ({ - public: "", - private: "", - cert: "", - }), - set: () => {}, - }; -}); -