rmaps-online/src/app/api/internal/provision/route.ts

31 lines
1.1 KiB
TypeScript

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).
*
* rmaps uses client-side rooms keyed by space slug.
* Acknowledges provisioning; room is created when users join.
*
* Payload from registry:
* { space, description, admin_email, public, owner_did }
*
* The owner_did identifies who registered the space and is the only person
* (besides admin API key holders) who can modify it via the registry.
* Apps can query GET registry.rspace.online/spaces/{name}/owner to verify.
*/
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 });
}
const ownerDid: string = body.owner_did || "";
return NextResponse.json({
status: "ok",
space,
owner_did: ownerDid,
message: "rmaps space acknowledged, room created on first join",
});
}