Skip to main content

apps/web/app/api/admin/platform-secrets/[key]/route.ts

Metadata

Indexed Symbols

  • POST (line 5, function) - Implements post for module behavior.

Markdown Headings (if applicable)

No markdown headings detected.

Source Preview

import { NextResponse } from "next/server";
import { idempotencyHeaders, proxyGatewayJson } from "../../../../../lib/admin-api";
import { assertWorkspaceIdFromSearchParams } from "../../../../../lib/workspace-context";

export async function POST(request: Request, context: { params: Promise<{ key: string }> }) {
let workspaceId: string;
try {
workspaceId = assertWorkspaceIdFromSearchParams(new URL(request.url).searchParams);
} catch (error) {
return NextResponse.json(
{ error: error instanceof Error ? error.message : "Workspace context is required" },
{ status: 400 }
);
}

const params = await context.params;
const body = await request.json().catch(() => null);
const result = await proxyGatewayJson(`/api/v1/platform/secrets/${encodeURIComponent(params.key)}`, workspaceId, {
method: "POST",
headers: {
...idempotencyHeaders()
},
body: JSON.stringify(body ?? {})
});
return NextResponse.json(result.data, { status: result.status });