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>
43 lines
489 B
Plaintext
43 lines
489 B
Plaintext
# Abhängigkeiten
|
|
node_modules/
|
|
.pnp
|
|
.pnp.js
|
|
|
|
# Build-Artefakte
|
|
.next/
|
|
out/
|
|
build/
|
|
dist/
|
|
*.tsbuildinfo
|
|
next-env.d.ts
|
|
|
|
# Tests
|
|
coverage/
|
|
test-results/
|
|
playwright-report/
|
|
blob-report/
|
|
.playwright/
|
|
|
|
# Umgebung — niemals einchecken
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
!.env.example
|
|
|
|
# Laufzeitdaten (Docker-Volumes bei Bind-Mounts)
|
|
data/
|
|
docker/traefik/acme.json
|
|
|
|
# Editor / OS
|
|
.vscode/*
|
|
!.vscode/extensions.json
|
|
.idea/
|
|
.DS_Store
|
|
Thumbs.db
|
|
debug.log
|
|
*.log
|
|
|
|
# Prisma
|
|
prisma/*.db
|
|
prisma/*.db-journal
|