feat: add credentials for GCP

This commit is contained in:
Pablo Lara
2024-10-31 18:38:12 +01:00
parent 593bce5155
commit 33ae08be65
4 changed files with 76 additions and 2 deletions
+6
View File
@@ -172,6 +172,12 @@ export const addCredentialsProvider = async (formData: FormData) => {
client_secret: formData.get("client_secret"),
tenant_id: formData.get("tenant_id"),
};
} else if (providerType === "gcp") {
secret = {
client_id: formData.get("client_id"),
client_secret: formData.get("client_secret"),
refresh_token: formData.get("refresh_token"),
};
}
const bodyData = {
@@ -10,11 +10,17 @@ import { addCredentialsProvider } from "@/actions/providers/providers";
import { useToast } from "@/components/ui";
import { CustomButton, CustomInput } from "@/components/ui/custom";
import { Form } from "@/components/ui/form";
import { addCredentialsFormSchema, ApiError, AzureCredentials } from "@/types";
import { AWSCredentials } from "@/types";
import {
addCredentialsFormSchema,
ApiError,
AWSCredentials,
AzureCredentials,
GCPCredentials,
} from "@/types";
import { AWScredentialsForm } from "./via-credentials/aws-credentials-form";
import { AzureCredentialsForm } from "./via-credentials/azure-credentials-form";
import { GCPcredentialsForm } from "./via-credentials/gcp-credentials-form";
type CredentialsFormSchema = z.infer<
ReturnType<typeof addCredentialsFormSchema>
@@ -153,6 +159,11 @@ export const ViaCredentialsForm = ({
control={form.control as unknown as Control<AzureCredentials>}
/>
)}
{providerType === "gcp" && (
<GCPcredentialsForm
control={form.control as unknown as Control<GCPCredentials>}
/>
)}
<span className="text-sm text-default-500">Name (Optional)</span>
<CustomInput
@@ -0,0 +1,56 @@
import { Control } from "react-hook-form";
import { CustomInput } from "@/components/ui/custom";
import { GCPCredentials } from "@/types";
export const GCPcredentialsForm = ({
control,
}: {
control: Control<GCPCredentials>;
}) => {
return (
<>
<div className="text-left">
<div className="text-2xl font-bold leading-9 text-default-foreground">
Connect via Credentials
</div>
<div className="py-2 text-default-500">
Please provide the information for your GCP credentials.
</div>
</div>
<CustomInput
control={control}
name="client_id"
type="text"
label="Client ID"
labelPlacement="inside"
placeholder="Enter the Client ID"
variant="bordered"
isRequired
isInvalid={!!control._formState.errors.client_id}
/>
<CustomInput
control={control}
name="client_secret"
type="text"
label="Client Secret"
labelPlacement="inside"
placeholder="Enter the Client Secret"
variant="bordered"
isRequired
isInvalid={!!control._formState.errors.client_secret}
/>
<CustomInput
control={control}
name="refresh_token"
type="text"
label="Refresh Token"
labelPlacement="inside"
placeholder="Enter the Refresh Token"
variant="bordered"
isRequired
isInvalid={!!control._formState.errors.refresh_token}
/>
</>
);
};
@@ -1,2 +1,3 @@
export * from "./aws-credentials-form";
export * from "./azure-credentials-form";
export * from "./gcp-credentials-form";