Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added apps/app/public/onboarding/cloud-tests.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { auth } from "@/auth";
import { getI18n } from "@/locales/server";
import { SecondaryMenu } from "@bubba/ui/secondary-menu";

import { AppOnboarding } from "@/components/app-onboarding";
import { db } from "@bubba/db";
import { cache, Suspense } from "react";
export default async function Layout({
children,
}: {
Expand All @@ -11,6 +13,42 @@ export default async function Layout({
const session = await auth();
const organizationId = session?.user?.organizationId;

const tests = await getTestsOverview();
console.log(tests);

if (!tests.length) {
return (
<div className="max-w-[1200px] m-auto">
<Suspense fallback={<div>Loading...</div>}>
<div className="mt-8">
<AppOnboarding
title={t("app_onboarding.cloud_tests.title")}
description={t("app_onboarding.cloud_tests.description")}
imageSrc="/onboarding/cloud-tests.png"
imageAlt="Cloud Security Testing"
cta=""
sheetName=""
faqs={[
{
questionKey: t("app_onboarding.cloud_tests.faqs.question_1"),
answerKey: t("app_onboarding.cloud_tests.faqs.answer_1"),
},
{
questionKey: t("app_onboarding.cloud_tests.faqs.question_2"),
answerKey: t("app_onboarding.cloud_tests.faqs.answer_2"),
},
{
questionKey: t("app_onboarding.cloud_tests.faqs.question_3"),
answerKey: t("app_onboarding.cloud_tests.faqs.answer_3"),
},
]}
/>
</div>
</Suspense>
</div>
);
}

return (
<div className="max-w-[1200px] mx-auto">
<SecondaryMenu
Expand All @@ -29,3 +67,16 @@ export default async function Layout({
</div>
);
}

const getTestsOverview = cache(async () => {
const session = await auth();
const orgId = session?.user.organizationId;

const tests = await db.organizationIntegrationResults.findMany({
where: {
organizationId: orgId,
},
});

return tests;
});
12 changes: 7 additions & 5 deletions apps/app/src/components/app-onboarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,13 @@ export function AppOnboarding({ title, description, cta, imageSrc, imageAlt, faq
</div>
</div>
<CardFooter className="flex justify-end flex-none">
<Button variant="action" className="flex items-center" onClick={() => setOpen("true")}
>
<PlusIcon className="w-4 h-4" />
{cta}
</Button>
{cta && (
<Button variant="action" className="flex items-center" onClick={() => setOpen("true")}
>
<PlusIcon className="w-4 h-4" />
{cta}
</Button>
)}
</CardFooter>
</div>
</Card>
Expand Down
14 changes: 14 additions & 0 deletions apps/app/src/locales/onboarding/app-onboarding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,18 @@ export const app_onboarding = {
"For SOC 2, you need to document employee onboarding/offboarding processes, track access to systems and data, maintain records of security training, and demonstrate that employees understand their security responsibilities. This helps auditors verify your security controls and personnel management practices.",
},
},
cloud_tests: {
title: "Cloud Security Testing",
description: "Test and validate your cloud infrastructure security.",
cta: "Create your first cloud test",
learn_more: "Learn more",
faqs: {
question_1: "What are cloud security tests?",
answer_1: "Cloud security tests are automated assessments that evaluate your cloud infrastructure for security vulnerabilities, misconfigurations, and compliance with security best practices.",
question_2: "Why are cloud security tests important?",
answer_2: "Cloud security tests help identify potential security risks in your cloud environment, ensure compliance with security standards, and provide evidence of your security controls for auditors. They're essential for maintaining a strong security posture in cloud environments.",
question_3: "What types of cloud tests are available?",
answer_3: "Cloud security tests can include infrastructure scanning, configuration analysis, vulnerability assessments, and compliance checks. These tests help ensure your cloud resources are properly secured and configured according to best practices.",
},
},
} as const;