@@ -44,8 +47,9 @@ export default async function Scans({
}
const SSRDataTableProviders = async () => {
- const filters = { "filter[connected]": "true" };
- const providersData = await getProviders({ page: 1, filters });
+ const providersData = await getProviders({
+ filters: { "filter[connected]": "true" },
+ });
return (
<>
diff --git a/components/filters/data-filters.ts b/components/filters/data-filters.ts
index 2b2d319783..673e4f0fff 100644
--- a/components/filters/data-filters.ts
+++ b/components/filters/data-filters.ts
@@ -8,6 +8,11 @@ export const filterProviders = [
];
export const filterScans = [
+ {
+ key: "provider_type__in",
+ labelCheckboxGroup: "Provider",
+ values: ["aws", "azure", "gcp", "kubernetes"],
+ },
{
key: "state",
labelCheckboxGroup: "State",
diff --git a/components/scans/launch-workflow/index.ts b/components/scans/launch-workflow/index.ts
new file mode 100644
index 0000000000..4ccdef368b
--- /dev/null
+++ b/components/scans/launch-workflow/index.ts
@@ -0,0 +1,2 @@
+export * from "./launch-scan-workflow";
+export * from "./select-scan-provider";
diff --git a/components/scans/launch-workflow/launch-scan-workflow.tsx b/components/scans/launch-workflow/launch-scan-workflow.tsx
new file mode 100644
index 0000000000..4fb3f4f16b
--- /dev/null
+++ b/components/scans/launch-workflow/launch-scan-workflow.tsx
@@ -0,0 +1,31 @@
+import { getProviders } from "@/actions/providers/providers";
+import { ProviderProps } from "@/types";
+
+import { SelectScanProvider } from "./select-scan-provider";
+
+export const LaunchScanWorkflow = async () => {
+ // const providersData = await getProviders({
+ // filters: { "filter[connected]": "true" },
+ // });
+ const providersData = await getProviders({});
+
+ const providerInfo = providersData?.data?.length
+ ? providersData.data.map((provider: ProviderProps) => ({
+ alias: provider.attributes.alias,
+ providerType: provider.attributes.provider,
+ uid: provider.attributes.uid,
+ connected: provider.attributes.connection.connected,
+ }))
+ : [];
+
+ return (
+
+ );
+};
diff --git a/components/scans/launch-workflow/select-scan-provider.tsx b/components/scans/launch-workflow/select-scan-provider.tsx
new file mode 100644
index 0000000000..9fcc2e70da
--- /dev/null
+++ b/components/scans/launch-workflow/select-scan-provider.tsx
@@ -0,0 +1,70 @@
+"use client";
+
+import { Select, SelectItem } from "@nextui-org/react";
+import { useState } from "react";
+
+import { AWSProviderBadge } from "@/components/icons/providers-badge/AWSProviderBadge";
+import { AzureProviderBadge } from "@/components/icons/providers-badge/AzureProviderBadge";
+import { GCPProviderBadge } from "@/components/icons/providers-badge/GCPProviderBadge";
+import { KS8ProviderBadge } from "@/components/icons/providers-badge/KS8ProviderBadge";
+
+interface SelectScanProviderProps {
+ providers: {
+ alias: string;
+ providerType: string;
+ uid: string;
+ connected: boolean;
+ }[];
+}
+
+export const SelectScanProvider = ({ providers }: SelectScanProviderProps) => {
+ const [selectedKeys, setSelectedKeys] = useState
>(new Set());
+
+ const renderBadge = (providerType: string) => {
+ switch (providerType) {
+ case "aws":
+ return ;
+ case "azure":
+ return ;
+ case "gcp":
+ return ;
+ case "kubernetes":
+ return ;
+ default:
+ return null;
+ }
+ };
+
+ return (
+
+ );
+};