import { requireAdminAccess } from "@/lib/session"; import { installationForDownload } from "@/lib/provisioning"; import { buildInstallScript } from "@/lib/install-script"; import { ProvisionError } from "@/lib/certificates"; export async function GET( _request: Request, context: { params: Promise<{ id: string }> }, ) { await requireAdminAccess(); try { const job = await installationForDownload((await context.params).id); return new Response(buildInstallScript(job), { headers: { "Content-Type": "text/x-shellscript; charset=utf-8", "Content-Disposition": `attachment; filename="install-${job.slug}.sh"`, "Cache-Control": "no-store", "X-Content-Type-Options": "nosniff", }, }); } catch (error) { if (!(error instanceof ProvisionError)) throw error; return new Response(error.message, { status: 410, headers: { "Cache-Control": "no-store" }, }); } }