Add configuration files, database migrations, and authentication implementation scaffolding

This commit is contained in:
Sebastian Unterschütz
2026-04-30 19:08:07 +02:00
commit 331d60581e
83 changed files with 222264 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
-- Migration: 000003_password_auth.up.sql
-- Add password authentication as optional fallback
-- Add password hash column to admin_users (nullable for Passkey-only accounts)
ALTER TABLE admin_users ADD COLUMN password_hash TEXT;
-- Sessions table for JWT token management
CREATE TABLE IF NOT EXISTS sessions (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
admin_user_id UUID NOT NULL REFERENCES admin_users(id) ON DELETE CASCADE,
token_hash TEXT NOT NULL UNIQUE, -- SHA256 hash of JWT
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
expires_at TIMESTAMP WITH TIME ZONE NOT NULL,
last_activity TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
ip_address TEXT,
user_agent TEXT
);
CREATE INDEX IF NOT EXISTS idx_sessions_user ON sessions(admin_user_id);
CREATE INDEX IF NOT EXISTS idx_sessions_token ON sessions(token_hash);
CREATE INDEX IF NOT EXISTS idx_sessions_expires ON sessions(expires_at);
-- Add auth_method to track how user logged in
ALTER TABLE admin_users ADD COLUMN preferred_auth_method TEXT DEFAULT 'password';
-- Options: 'password', 'passkey', 'both'