From e0c2720d3146716edd418f79cd775a4f72a94aaf Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Tue, 5 Nov 2024 07:07:53 +0100 Subject: [PATCH] chore: hidden credentials inputs for cloud providers --- .../add-credentials/page.tsx | 10 +++--- .../test-connection/page.tsx | 19 ++++++++-- components/findings/table/column-findings.tsx | 2 +- .../workflow/forms/connect-account-form.tsx | 4 +-- .../workflow/forms/test-connection-form.tsx | 35 +++++++++++++++++-- .../workflow/forms/via-credentials-form.tsx | 4 +-- .../via-credentials/aws-credentials-form.tsx | 6 ++-- .../azure-credentials-form.tsx | 2 +- .../via-credentials/gcp-credentials-form.tsx | 4 +-- 9 files changed, 65 insertions(+), 21 deletions(-) diff --git a/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx b/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx index 83ae37a99a..b5fda55e11 100644 --- a/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx +++ b/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx @@ -4,21 +4,21 @@ import React from "react"; import { ViaCredentialsForm } from "@/components/providers/workflow/forms"; interface Props { - searchParams: { provider: string; id: string; via?: string }; + searchParams: { type: string; id: string; via?: string }; } export default function AddCredentialsPage({ searchParams }: Props) { if ( - !searchParams.provider || + !searchParams.type || !searchParams.id || - (searchParams.provider === "aws" && !searchParams.via) + (searchParams.type === "aws" && !searchParams.via) ) { redirect("/providers/connect-account"); } const useCredentialsForm = - (searchParams.provider === "aws" && searchParams.via === "credentials") || - (searchParams.provider !== "aws" && !searchParams.via); + (searchParams.type === "aws" && searchParams.via === "credentials") || + (searchParams.type !== "aws" && !searchParams.via); return ( <> diff --git a/app/(prowler)/providers/(set-up-provider)/test-connection/page.tsx b/app/(prowler)/providers/(set-up-provider)/test-connection/page.tsx index e3bdb29928..dcf2f2766d 100644 --- a/app/(prowler)/providers/(set-up-provider)/test-connection/page.tsx +++ b/app/(prowler)/providers/(set-up-provider)/test-connection/page.tsx @@ -1,16 +1,29 @@ import { redirect } from "next/navigation"; import React from "react"; +import { getProvider } from "@/actions/providers"; import { TestConnectionForm } from "@/components/providers/workflow/forms"; interface Props { searchParams: { type: string; id: string }; } -export default function TestConnectionPage({ searchParams }: Props) { - if (!searchParams.id) { +export default async function TestConnectionPage({ searchParams }: Props) { + const providerId = searchParams.id; + + if (!providerId) { redirect("/providers/connect-account"); } - return ; + const formData = new FormData(); + formData.append("id", providerId); + + const providerData = await getProvider(formData); + + return ( + + ); } diff --git a/components/findings/table/column-findings.tsx b/components/findings/table/column-findings.tsx index 5ccfee3d23..9483ee9b86 100644 --- a/components/findings/table/column-findings.tsx +++ b/components/findings/table/column-findings.tsx @@ -88,7 +88,7 @@ export const ColumnFindings: ColumnDef[] = [ }, { accessorKey: "status", - header: "Scan Status", + header: "Status", cell: ({ row }) => { const { attributes: { status }, diff --git a/components/providers/workflow/forms/connect-account-form.tsx b/components/providers/workflow/forms/connect-account-form.tsx index 53e4cc24ef..1c0430bf41 100644 --- a/components/providers/workflow/forms/connect-account-form.tsx +++ b/components/providers/workflow/forms/connect-account-form.tsx @@ -93,13 +93,13 @@ export const ConnectAccountForm = () => { } else { const { id, - attributes: { provider }, + attributes: { provider: providerType }, } = data.data; const credentialsParam = values.awsCredentialsType ? `&via=${values.awsCredentialsType}` : ""; router.push( - `/providers/add-credentials?provider=${provider}&id=${id}${credentialsParam}`, + `/providers/add-credentials?type=${providerType}&id=${id}${credentialsParam}`, ); } }; diff --git a/components/providers/workflow/forms/test-connection-form.tsx b/components/providers/workflow/forms/test-connection-form.tsx index d18e926138..499b55ede8 100644 --- a/components/providers/workflow/forms/test-connection-form.tsx +++ b/components/providers/workflow/forms/test-connection-form.tsx @@ -16,12 +16,27 @@ import { CustomButton } from "@/components/ui/custom"; import { Form } from "@/components/ui/form"; import { ApiError, testConnectionFormSchema } from "@/types"; +import { ProviderInfo } from "../.."; + type FormValues = z.infer; export const TestConnectionForm = ({ searchParams, + providerData, }: { searchParams: { type: string; id: string }; + providerData: { + data: { + id: string; + attributes: { + connection: { + connected: boolean; + }; + provider: "aws" | "azure" | "gcp" | "kubernetes"; + alias: string; + }; + }; + }; }) => { const { toast } = useToast(); const router = useRouter(); @@ -68,7 +83,6 @@ export const TestConnectionForm = ({ } }); } else { - console.log({ data: data.data.id }, "success"); const taskId = data.data.id; setApiErrorMessage(null); @@ -128,6 +142,12 @@ export const TestConnectionForm = ({ )} + +
@@ -142,6 +162,17 @@ export const TestConnectionForm = ({ /> Back to providers + ) : connectionStatus?.error ? ( + + + Handle credentials + ) : ( } > - {isLoading ? <>Loading : Connect account} + {isLoading ? <>Loading : Test connection} )}
diff --git a/components/providers/workflow/forms/via-credentials-form.tsx b/components/providers/workflow/forms/via-credentials-form.tsx index fb2507e304..56a9161ea0 100644 --- a/components/providers/workflow/forms/via-credentials-form.tsx +++ b/components/providers/workflow/forms/via-credentials-form.tsx @@ -38,12 +38,12 @@ type FormType = CredentialsFormSchema & export const ViaCredentialsForm = ({ searchParams, }: { - searchParams: { provider: string; id: string }; + searchParams: { type: string; id: string }; }) => { const router = useRouter(); const { toast } = useToast(); - const providerType = searchParams.provider; + const providerType = searchParams.type; const providerId = searchParams.id; const formSchema = addCredentialsFormSchema(providerType); diff --git a/components/providers/workflow/forms/via-credentials/aws-credentials-form.tsx b/components/providers/workflow/forms/via-credentials/aws-credentials-form.tsx index b35b08f93c..a024d138ff 100644 --- a/components/providers/workflow/forms/via-credentials/aws-credentials-form.tsx +++ b/components/providers/workflow/forms/via-credentials/aws-credentials-form.tsx @@ -21,7 +21,7 @@ export const AWScredentialsForm = ({