Phase 0: Fundament der Feuerwehr-Verwaltungsplattform
Legt den kompletten Unterbau an, auf dem die Fachmodule aufsetzen. Betrieb: - docker-compose.yml mit Traefik, App, Worker, PostgreSQL 17 + PostGIS, Redis, MinIO und Gotenberg; Entwicklungs-Override ohne Traefik, dafuer mit Mailpit und Adminer - Mehrstufiges Dockerfile: eigener Benutzer, tini als PID 1, Healthcheck - .env.example mit einem Kommentar zu jeder Variable Mandantentrennung: - Row Level Security auf allen mandantenpflichtigen Tabellen - Zwei getrennte Datenbankverbindungen: florian_app mit aktiver RLS fuer die Anwendung, Eigentuemer-Zugang nur fuer Migration, Seed und Anmeldung - fuerOrganisation() als einziger Weg zu Fachdaten Nachvollziehbarkeit: - AuditLog append-only per Trigger; UPDATE ist dauerhaft gesperrt, DELETE nur im gekennzeichneten Aufbewahrungslauf - Geheimnisse werden vor dem Schreiben entfernt Anmeldung: - OIDC gegen ein extern betriebenes authentik, Rollen aus Gruppen nur als Vorbelegung beim ersten Login - Lokaler E-Mail/Passwort-Login als Rueckfallweg - Terminal per PIN und RFID mit zwei Schranken (Geraet, dann Person) Weiteres: - lib/authz.ts mit 9 Rollen und 38 Einzelrechten - lib/storage.ts (MinIO), lib/audit.ts, lib/warteschlange.ts (BullMQ) - Integrationen fuer Mail, Telegram und LLM hinter abschaltbaren Interfaces - tRPC v11, Basis-Layout mit Seitenleiste und dunkler Darstellung - Seed mit einer Beispielwehr: 16 Personen, 3 Fahrzeuge, 40 Geraete - 32 Vitest-Tests (davon 8 gegen eine echte Datenbank), 10 Playwright-Tests - README, Anleitung mit Screenshots, Roadmap, Aufwandsschaetzung, Devlog, Versionierungsregeln und Changelog Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
||||
Lies CLAUDE.md. Erstelle Phase 0 des Projekts: das Fundament.
|
||||
|
||||
Liefere:
|
||||
1. Monorepo-Struktur (Next.js App, prisma/, docker/, scripts/)
|
||||
2. docker-compose.yml mit: traefik, app, worker, postgres (postgis/postgis:17),
|
||||
redis, minio, gotenberg. Dazu docker-compose.override.yml für Entwicklung
|
||||
und eine vollständige .env.example mit Kommentaren zu jeder Variable.
|
||||
3. Dockerfile für die App (Multi-Stage, non-root User, Healthcheck).
|
||||
4. Prisma-Schema mit den Basismodellen: Organisation, Person, Rolle,
|
||||
Berechtigung, AusweisToken, AuditLog, Datei. Inklusive RLS-Policies als
|
||||
SQL-Migration.
|
||||
5. Auth: OIDC gegen authentik (Auth.js) plus lokaler E-Mail/Passwort-Fallback
|
||||
für den Erststart, plus Terminal-Login per PIN/RFID-Token für den Kiosk.
|
||||
6. lib/authz.ts mit Rollen: SUPERADMIN, KOMMANDANT, GERAETEWART,
|
||||
ATEMSCHUTZGERAETEWART, KASSIER, SCHRIFTFUEHRER, AUSBILDER, MITGLIED, KIOSK.
|
||||
7. lib/storage.ts (MinIO), lib/audit.ts, lib/db.ts (mit Mandanten-Kontext).
|
||||
8. Basis-Layout mit shadcn/ui, deutschem UI-Text, Dark Mode, Seitenleiste.
|
||||
9. Seed-Skript: eine Beispielwehr, 15 Personen, 3 Fahrzeuge, 40 Geräte.
|
||||
10. Vitest- und Playwright-Setup mit je einem Beispieltest.
|
||||
11. README mit Schnellstart in unter 10 Zeilen.
|
||||
|
||||
Erkläre am Ende kurz, wie ich den Stack hochfahre und mich anmelde.
|
||||
Frage nach, bevor du Annahmen über meine authentik-Konfiguration triffst.
|
||||
Reference in New Issue
Block a user