apps/web/app/api/admin/platform-secrets/[key]/route.ts
Metadata
- Purpose: Web app route or page component for operator/client experience.
- Domain:
applications - Language:
ts - Bytes: 1008
- Lines: 27
- Content hash (short):
4143f0a9 - Source (start): apps/web/app/api/admin/platform-secrets/[key]/route.ts:1
- Source (end): apps/web/app/api/admin/platform-secrets/[key]/route.ts:27
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 });