diff --git a/app/api/internal/provision/route.ts b/app/api/internal/provision/route.ts new file mode 100644 index 0000000..3d26a12 --- /dev/null +++ b/app/api/internal/provision/route.ts @@ -0,0 +1,17 @@ +import { NextResponse } from "next/server"; + +/** + * Internal provision endpoint — called by rSpace Registry when activating + * this app for a space. No auth required (only reachable from Docker network). + * + * rtube stores videos in R2 buckets keyed by space slug. + * Acknowledges provisioning; bucket is created on first upload. + */ +export async function POST(request: Request) { + const body = await request.json(); + const space: string = body.space?.trim(); + if (!space) { + return NextResponse.json({ error: "Missing space name" }, { status: 400 }); + } + return NextResponse.json({ status: "ok", space, message: "rtube space acknowledged, bucket created on first upload" }); +}