diff --git a/messages/en-US.json b/messages/en-US.json index 5c885bfc..0193cded 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1152,6 +1152,8 @@ "sidebarClients": "Clients", "sidebarDomains": "Domains", "sidebarBluePrints": "Blueprints", + "blueprints": "Blueprints", + "blueprintsDescription": "Blueprints are declarative YAML configurations that define your resources and their settings", "enableDockerSocket": "Enable Docker Blueprint", "enableDockerSocketDescription": "Enable Docker Socket label scraping for blueprint labels. Socket path must be provided to Newt.", "enableDockerSocketLink": "Learn More", diff --git a/src/app/[orgId]/settings/blueprints/page.tsx b/src/app/[orgId]/settings/blueprints/page.tsx index c37b88c1..d71caf49 100644 --- a/src/app/[orgId]/settings/blueprints/page.tsx +++ b/src/app/[orgId]/settings/blueprints/page.tsx @@ -1,6 +1,13 @@ - - - +import SettingsSectionTitle from "@app/components/SettingsSectionTitle"; +import { internal } from "@app/lib/api"; +import { authCookieHeader } from "@app/lib/api/cookies"; +import OrgProvider from "@app/providers/OrgProvider"; +import { ListBlueprintsResponse } from "@server/routers/blueprints"; +import { GetOrgResponse } from "@server/routers/org"; +import { AxiosResponse } from "axios"; +import { getTranslations } from "next-intl/server"; +import { redirect } from "next/navigation"; +import { cache } from "react"; type BluePrintsPageProps = { @@ -8,7 +15,48 @@ type BluePrintsPageProps = { searchParams: Promise<{ view?: string }>; }; + export default async function BluePrintsPage(props: BluePrintsPageProps) { const params = await props.params; - return <> + + let blueprints: any[] = []; + try { + const res = await internal.get< + AxiosResponse + >(`/org/${params.orgId}/domains`, await authCookieHeader()); + + blueprints = res.data.data.domains as any[]; + } catch (e) { + console.error(e); + } + + let org = null; + try { + const getOrg = cache(async () => + internal.get>( + `/org/${params.orgId}`, + await authCookieHeader() + ) + ); + const res = await getOrg(); + org = res.data.data; + } catch { + redirect(`/${params.orgId}`); + } + + if (!org) { + } + + const t = await getTranslations(); + return ( + <> + + + {/* */} + + + ); } \ No newline at end of file