From d346f90793e10942dfe0d674f5c0a44774ba8455 Mon Sep 17 00:00:00 2001 From: Hammer Date: Wed, 28 Jan 2026 17:18:07 +0000 Subject: [PATCH] Add temporary bootstrap-admin endpoint --- apps/api/src/routes/hammer.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/apps/api/src/routes/hammer.ts b/apps/api/src/routes/hammer.ts index 2847e9b..39518de 100644 --- a/apps/api/src/routes/hammer.ts +++ b/apps/api/src/routes/hammer.ts @@ -413,4 +413,25 @@ export const hammerRoutes = new Elysia({ prefix: '/hammer' }) params: t.Object({ id: t.String(), }), + }) + + // Bootstrap: promote a user to admin (one-time setup helper) + .post('/bootstrap-admin', async ({ body, set }) => { + const user = await db.query.users.findFirst({ + where: eq(users.email, body.email), + }); + if (!user) { + set.status = 404; + throw new Error('User not found'); + } + const [updated] = await db + .update(users) + .set({ role: 'admin' }) + .where(eq(users.email, body.email)) + .returning(); + return { success: true, user: { id: updated.id, name: updated.name, email: updated.email, role: updated.role } }; + }, { + body: t.Object({ + email: t.String({ format: 'email' }), + }), });