Skip to content

Admin users

The Admins section at the bottom of /admin lists every admin account and lets you create new ones or remove existing ones.

Add an admin

Email + password (min 8 chars). On save, better-auth provisions the user in auth.db. They can sign in at /login immediately.

There’s no role hierarchy in jabol today — every admin is fully privileged. “Admin” is currently synonymous with “any signed-in user”.

Remove an admin

Each admin row has a Remove button. You can’t remove the last admin account (the server enforces this with a 400 cannot remove the only admin response) — otherwise you’d lock yourself out.

First admin

On a fresh install with no admins, /signup is open. The first POST to /api/signup creates an admin and closes the endpoint. Alternatively, set JABOL_ADMIN_EMAIL + JABOL_ADMIN_PASSWORD env vars to seed the first admin automatically on boot — /signup returns 404 in that case even on first boot, because the seeded admin already exists by the time anyone visits.

Sessions

Sessions are cookie-based via better-auth, signed with JABOL_AUTH_SECRET. Default expiry is 30 days with a 1-day refresh window. If you rotate JABOL_AUTH_SECRET, all existing sessions are invalidated and everyone has to sign in again — that’s the disaster-recovery lever if you suspect a session token leaked.