feat(backend): add admin plugin and create-admin script (#80)

* feat(backend): add admin plugin and create-admin script

Add Better Auth admin plugin for role-based user management.
Includes a CLI script to create admin accounts.

Co-authored-by: Ona <no-reply@ona.com>

* fix(backend): guard against missing BETTER_AUTH_SECRET

Co-authored-by: Ona <no-reply@ona.com>

---------

Co-authored-by: Ona <no-reply@ona.com>
This commit is contained in:
2026-03-16 22:39:40 +00:00
committed by GitHub
parent 61c1ade631
commit 21750582b1
6 changed files with 162 additions and 81 deletions

View File

@@ -1,10 +1,16 @@
import { betterAuth } from "better-auth"
import { drizzleAdapter } from "better-auth/adapters/drizzle"
import { admin } from "better-auth/plugins"
import type { Database } from "../db/index.ts"
import * as schema from "../db/schema.ts"
export function createAuth(db: Database) {
if (!process.env.BETTER_AUTH_SECRET) {
throw new Error("BETTER_AUTH_SECRET is not set")
}
return betterAuth({
database: drizzleAdapter(db, {
provider: "pg",
@@ -13,6 +19,7 @@ export function createAuth(db: Database) {
emailAndPassword: {
enabled: true,
},
plugins: [admin()],
})
}