Files
flat-pilot/docs/development.md
2026-07-19 13:09:04 +02:00

2.6 KiB

Entwicklung

Diese Datei beschreibt die normalen Entwicklungsablaeufe im Monorepo.

Installation

npm ci

Abhaengigkeiten werden nur im Root installiert. Workspace-spezifische Befehle werden ueber Root-Scripts oder npm --workspace ... ausgefuehrt.

Lokaler Start

npm run dev

Alternativ getrennt:

npm run dev:frontend
npm run dev:backend

Das Frontend nutzt den Proxy in apps/frontend/proxy.conf.json, damit /api lokal an das Backend weitergereicht wird.

Feature-Workflow

  1. Backend-DTOs und Entities modellieren.
  2. Repository fuer Datenzugriff erstellen oder erweitern.
  3. Service mit Fachlogik implementieren.
  4. Controller nur als HTTP-Rand und Permission-Deklaration verwenden.
  5. Permission in roles/permissions.ts ergaenzen, falls noetig.
  6. Migration erzeugen und kontrollieren.
  7. API-Client-Generator aktualisieren.
  8. Frontend-Route, Navigation und Page bauen.
  9. Tests fuer Verhalten schreiben.
  10. Qualitaetsbefehle ausfuehren.

Migrationen

Status anzeigen:

npm run migration:status

Migration erzeugen:

npm run migration:generate

Migration ausfuehren:

npm run migration:run

Generierte Migrationen muessen reviewed werden. Sie duerfen keine versehentlichen Datenverluste, falsche Defaults oder umgebungsspezifische Namen enthalten.

API-Client

Nach API-Aenderungen:

npm run api:generate

Der Client unter packages/api-client/src ist generiert. Aendere stattdessen den Generator oder ersetze ihn spaeter bewusst durch einen OpenAPI-basierten Generator.

Tests

npm test
npm run test:backend
npm run test:frontend

Tests sollen Verhalten pruefen, nicht nur Existenz. Backend-Tests fuer Services sollen fachliche Regeln, Fehlerfaelle, Permissions und Datenbankinteraktionen abdecken. Frontend-Tests sollen sichtbares Verhalten, Guards, Interaktionen und API-Fehlerpfade abdecken.

Integrationstests gegen MySQL muessen eine separate Testdatenbank verwenden, deren Name eindeutig test enthaelt. Tests duerfen niemals gegen Produktionsdatenbanken laufen.

Qualitaet vor Abschluss

npm run lint
npm run format:check
npm run typecheck
npm test
npm run build
docker build .

Diese Befehle sind die Mindestpruefung fuer Merge und Release.

Fehlerformat

Backend-Fehler werden ueber ApiExceptionFilter in ein konsistentes Format gebracht. Neue fachliche Fehler sollten ApiError und ErrorCode verwenden, damit Frontend und Logs stabil bleiben.

Logging

pino-http redigiert sensible Header und Token-Felder. Neue Logs duerfen keine Secrets, Session-IDs, Cookies, Access Tokens, Refresh Tokens oder ID Tokens enthalten.