mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 15:27:27 +00:00
misc: addressed comments
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import https from "https";
|
import https from "https";
|
||||||
|
|
||||||
|
import { InternalServerError } from "@app/lib/errors";
|
||||||
import { withGatewayProxy } from "@app/lib/gateway";
|
import { withGatewayProxy } from "@app/lib/gateway";
|
||||||
|
import { blockLocalAndPrivateIpAddresses } from "@app/lib/validator";
|
||||||
import { TKubernetesTokenRequest } from "@app/services/identity-kubernetes-auth/identity-kubernetes-auth-types";
|
import { TKubernetesTokenRequest } from "@app/services/identity-kubernetes-auth/identity-kubernetes-auth-types";
|
||||||
|
|
||||||
import { TGatewayServiceFactory } from "../../gateway/gateway-service";
|
import { TGatewayServiceFactory } from "../../gateway/gateway-service";
|
||||||
import { verifyHostInputValidity } from "../dynamic-secret-fns";
|
|
||||||
import { DynamicSecretKubernetesSchema, TDynamicProviderFns } from "./models";
|
import { DynamicSecretKubernetesSchema, TDynamicProviderFns } from "./models";
|
||||||
|
|
||||||
const EXTERNAL_REQUEST_TIMEOUT = 10 * 1000;
|
const EXTERNAL_REQUEST_TIMEOUT = 10 * 1000;
|
||||||
@@ -17,8 +18,11 @@ type TKubernetesProviderDTO = {
|
|||||||
export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO): TDynamicProviderFns => {
|
export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO): TDynamicProviderFns => {
|
||||||
const validateProviderInputs = async (inputs: unknown) => {
|
const validateProviderInputs = async (inputs: unknown) => {
|
||||||
const providerInputs = await DynamicSecretKubernetesSchema.parseAsync(inputs);
|
const providerInputs = await DynamicSecretKubernetesSchema.parseAsync(inputs);
|
||||||
const [hostIp] = await verifyHostInputValidity(providerInputs.url, Boolean(providerInputs.gatewayId));
|
if (!providerInputs.gatewayId) {
|
||||||
return { ...providerInputs, hostIp };
|
await blockLocalAndPrivateIpAddresses(providerInputs.url);
|
||||||
|
}
|
||||||
|
|
||||||
|
return providerInputs;
|
||||||
};
|
};
|
||||||
|
|
||||||
const $gatewayProxyWrapper = async <T>(
|
const $gatewayProxyWrapper = async <T>(
|
||||||
@@ -106,7 +110,9 @@ export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO):
|
|||||||
errorMessage = (error.response?.data as { message: string }).message;
|
errorMessage = (error.response?.data as { message: string }).message;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error(`Failed to validate connection: ${errorMessage}`);
|
throw new InternalServerError({
|
||||||
|
message: `Failed to validate connection: ${errorMessage}`
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -168,7 +174,9 @@ export const KubernetesProvider = ({ gatewayService }: TKubernetesProviderDTO):
|
|||||||
errorMessage = (error.response?.data as { message: string }).message;
|
errorMessage = (error.response?.data as { message: string }).message;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error(`Failed to validate connection: ${errorMessage}`);
|
throw new InternalServerError({
|
||||||
|
message: `Failed to create dynamic secret: ${errorMessage}`
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -49,7 +49,7 @@ const formSchema = z.object({
|
|||||||
url: z.string().url().trim().min(1),
|
url: z.string().url().trim().min(1),
|
||||||
clusterToken: z.string().trim().min(1),
|
clusterToken: z.string().trim().min(1),
|
||||||
ca: z.string().optional(),
|
ca: z.string().optional(),
|
||||||
sslEnabled: z.boolean().default(true),
|
sslEnabled: z.boolean().default(false),
|
||||||
credentialType: z.literal(CredentialType.Static),
|
credentialType: z.literal(CredentialType.Static),
|
||||||
serviceAccountName: z.string().trim().min(1),
|
serviceAccountName: z.string().trim().min(1),
|
||||||
namespace: z.string().trim().min(1),
|
namespace: z.string().trim().min(1),
|
||||||
@@ -109,7 +109,7 @@ export const KubernetesInputForm = ({
|
|||||||
url: "",
|
url: "",
|
||||||
clusterToken: "",
|
clusterToken: "",
|
||||||
ca: "",
|
ca: "",
|
||||||
sslEnabled: true,
|
sslEnabled: false,
|
||||||
serviceAccountName: "",
|
serviceAccountName: "",
|
||||||
namespace: "",
|
namespace: "",
|
||||||
credentialType: CredentialType.Static,
|
credentialType: CredentialType.Static,
|
||||||
@@ -284,7 +284,7 @@ export const KubernetesInputForm = ({
|
|||||||
name="provider.url"
|
name="provider.url"
|
||||||
render={({ field, fieldState: { error } }) => (
|
render={({ field, fieldState: { error } }) => (
|
||||||
<FormControl
|
<FormControl
|
||||||
label="URL"
|
label="Cluster URL"
|
||||||
isError={Boolean(error?.message)}
|
isError={Boolean(error?.message)}
|
||||||
errorText={error?.message}
|
errorText={error?.message}
|
||||||
>
|
>
|
||||||
|
|||||||
+2
-2
@@ -47,7 +47,7 @@ const formSchema = z.object({
|
|||||||
url: z.string().url().trim().min(1),
|
url: z.string().url().trim().min(1),
|
||||||
clusterToken: z.string().trim().min(1),
|
clusterToken: z.string().trim().min(1),
|
||||||
ca: z.string().optional(),
|
ca: z.string().optional(),
|
||||||
sslEnabled: z.boolean().default(true),
|
sslEnabled: z.boolean().default(false),
|
||||||
credentialType: z.literal(CredentialType.Static),
|
credentialType: z.literal(CredentialType.Static),
|
||||||
serviceAccountName: z.string().trim().min(1),
|
serviceAccountName: z.string().trim().min(1),
|
||||||
namespace: z.string().trim().min(1),
|
namespace: z.string().trim().min(1),
|
||||||
@@ -277,7 +277,7 @@ export const EditDynamicSecretKubernetesForm = ({
|
|||||||
name="inputs.url"
|
name="inputs.url"
|
||||||
render={({ field, fieldState: { error } }) => (
|
render={({ field, fieldState: { error } }) => (
|
||||||
<FormControl
|
<FormControl
|
||||||
label="URL"
|
label="Cluster URL"
|
||||||
isError={Boolean(error?.message)}
|
isError={Boolean(error?.message)}
|
||||||
errorText={error?.message}
|
errorText={error?.message}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user