diff --git a/README.md b/README.md index 6cb6253..dd96518 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ müssen neu registriert werden. ## Datenbank -Reines PostgreSQL (kein Supabase, keine Row-Level-Security-Policies) – +Reines, selbst gehostetes PostgreSQL (keine Row-Level-Security-Policies) – alle Zugriffsrechte werden in den Route-Handlern geprüft (`lib/auth/session.ts`, `requireRole`). diff --git a/db/migrations/0001_init.sql b/db/migrations/0001_init.sql index d300752..94585f8 100644 --- a/db/migrations/0001_init.sql +++ b/db/migrations/0001_init.sql @@ -1,5 +1,5 @@ -- ============================================================= --- Canteen Menu – Initiales Schema (selbst gehostet, ohne Supabase) +-- Canteen Menu – Initiales Schema (vollständig selbst gehostet) -- Rollen: admin (Benutzerverwaltung, Branding) / staff (Kantine) -- Öffentliche Speisekarte: lesbar ohne Login -- ============================================================= @@ -27,8 +27,8 @@ create table sessions ( ); create index sessions_user_id_idx on sessions (user_id); --- WebAuthn-Credentials (ersetzt Supabase's internes, für die App bisher --- unsichtbares Passkey-Schema). +-- WebAuthn-Credentials (Passkeys) – eigenes Schema, wird von +-- @simplewebauthn/server geprüft (lib/auth/). create table passkey_credentials ( id uuid primary key default gen_random_uuid(), user_id uuid not null references users (id) on delete cascade, diff --git a/lib/auth/webauthn-config.ts b/lib/auth/webauthn-config.ts index c8fb7c7..62e68d9 100644 --- a/lib/auth/webauthn-config.ts +++ b/lib/auth/webauthn-config.ts @@ -1,9 +1,7 @@ import "server-only"; -// RP-Konfiguration wird direkt aus APP_URL/SITE_TITLE abgeleitet – kein -// externer Konfigurationsschritt mehr nötig (ersetzt das bisherige -// scripts/configure-passkeys.mjs, das die Supabase-Management-API -// aufrief). +// RP-Konfiguration wird direkt aus APP_URL/SITE_TITLE abgeleitet – +// kein externer Konfigurationsschritt oder Cloud-API-Aufruf mehr nötig. function appUrl(): URL { return new URL(process.env.APP_URL ?? "http://localhost:3000"); } diff --git a/lib/branding.ts b/lib/branding.ts index ed7bfa6..1e77a84 100644 --- a/lib/branding.ts +++ b/lib/branding.ts @@ -2,8 +2,8 @@ import "server-only"; import { mkdir, readFile, unlink, writeFile } from "node:fs/promises"; import path from "node:path"; -// Ersetzt den früheren Supabase-Storage-Bucket "branding" durch ein -// lokales Verzeichnis (Docker-Volume in Produktion, s. docker-compose.yml). +// Logo/Favicon liegen als Dateien in einem lokalen Verzeichnis +// (Docker-Volume in Produktion, s. docker-compose.yml). export function brandingDir(): string { // turbopackIgnore: process.cwd() ist hier dynamisch, aber der Pfad // bleibt statisch unter "data/branding" – ohne den Kommentar versucht