Files
solelog/apps/api/src/auth.ts

20 lines
767 B
TypeScript

import { betterAuth } from 'better-auth';
import { drizzleAdapter } from 'better-auth/adapters/drizzle';
import { admin, bearer } from 'better-auth/plugins';
import { db } from './db/client';
import * as schema from './db/schema';
import { env } from './env';
export const auth = betterAuth({
secret: env.BETTER_AUTH_SECRET,
baseURL: env.BETTER_AUTH_URL,
trustedOrigins: [env.BETTER_AUTH_URL, 'http://localhost:3000', ...env.WEB_ORIGINS],
database: drizzleAdapter(db, { provider: 'sqlite', schema }),
emailAndPassword: {
enabled: true,
requireEmailVerification: false,
disableSignUp: true, // admin creates users; see docs/plans/phase-2-accounts-roles.md
},
plugins: [bearer(), admin({ defaultRole: 'worker', adminRoles: ['admin'] })],
});