Replace token-based admin auth with JWT session authentication
CI / test (push) Failing after 12m45s

- Add AdminUser model (bcrypt hashed passwords) and admin_users table
- Add AdminJWTService for HS256 JWT sessions (24h TTL)
- Add AdminSessionAuth middleware for /api/v1/admin/* routes
- Add admin handlers: login, logout, me, change-password, users CRUD
- Keys and model management routes now require admin JWT session
- Remove ADMIN_TOKEN, add ADMIN_USERNAME, ADMIN_PASSWORD env vars
- Update frontend: username/password login, admin_session storage, AdminUsers CRUD view
This commit is contained in:
2026-07-31 17:15:29 -04:00
parent b18d4bd146
commit 4d34c6d31a
21 changed files with 828 additions and 57 deletions
+3 -3
View File
@@ -52,9 +52,9 @@ func main() {
}
logger.Info("database migrations complete")
// Seed admin key if needed
if err := db.SeedAdminKey(database, cfg.AdminToken); err != nil {
logger.Error("failed to seed admin key", "error", err)
// Seed admin user if needed
if err := db.SeedAdminUser(database, cfg.AdminUsername, cfg.AdminPassword); err != nil {
logger.Error("failed to seed admin user", "error", err)
os.Exit(1)
}