# Effigenix ERP – Development Commands # Default: alle Recipes auflisten default: @just --list # ─── Dev Modi ───────────────────────────────────────────── # Backend starten (Spring Boot) dev-backend: cd backend && SENTRY_DSN=$(grep '^SENTRY_DSN=' ../.env 2>/dev/null | cut -d= -f2-) mvn spring-boot:run # CLI/TUI starten dev-cli: cd frontend/apps/cli && node --env-file=../../../.env --import tsx src/index.tsx # Web-UI starten (Vite :3000) dev-web: cd frontend && pnpm run --filter @effigenix/web dev # Scanner-App starten (Tauri + Vite :1420) dev-scanner: cd frontend/apps/scanner && pnpm tauri dev # UI-Library im Watch-Modus bauen dev-ui: cd frontend && pnpm run --filter @effigenix/ui dev # ─── Build ──────────────────────────────────────────────── # Frontend komplett bauen build-frontend: cd frontend && pnpm build # Backend bauen build-backend: cd backend && mvn package -DskipTests # ─── Checks ────────────────────────────────────────────── # Frontend Typecheck typecheck: cd frontend && pnpm typecheck # Frontend Tests test-frontend: cd frontend && pnpm test # Backend Tests test-backend: cd backend && mvn test # ─── Code Generation ───────────────────────────────────── # OpenAPI Spec + TypeScript Types generieren generate-openapi: ./scripts/generate-openapi.sh # ─── Datenbank ──────────────────────────────────────────── # Testdaten einspielen seed-testdata: PGPASSWORD=effigenix nix shell nixpkgs#postgresql --command psql -f backend/src/main/resources/db/changelog/changes/099-seed-testdata.sql -h localhost -p 5432 -U effigenix -d effigenix # ─── Fuzz Testing ───────────────────────────────────────── # Alle Fuzz-Tests fuzz: cd backend && mvn test -Pfuzz # Fuzz-Regressionstests fuzz-regression: cd backend && mvn test -Pfuzz-regression # Einzelnen Fuzz-Test ausführen (z.B. just fuzz-single BatchFuzzTest) fuzz-single TEST: cd backend && mvn test -Pfuzz -Dtest={{ TEST }} # ─── Load Testing ──────────────────────────────────────── # Gatling Load Test ausführen (startet Backend + DB via Testcontainers) loadtest: #!/usr/bin/env bash set -euo pipefail # Podman-Socket für Testcontainers bereitstellen (falls kein Docker) if [ -z "${DOCKER_HOST:-}" ] && [ ! -S /var/run/docker.sock ]; then PODMAN_SOCK="/run/user/$(id -u)/podman/podman.sock" if [ -S "$PODMAN_SOCK" ]; then export DOCKER_HOST="unix://$PODMAN_SOCK" export TESTCONTAINERS_RYUK_DISABLED=true fi fi cd loadtest && mvn gatling:test # ─── Services ───────────────────────────────────────────── # Bugsink starten (Error Tracking) bugsink: @. ./.env 2>/dev/null || true; \ docker start bugsink 2>/dev/null || \ docker run \ --name bugsink \ -p 8000:8000 \ -e SECRET_KEY=${BUGSINK_SECRET_KEY:?BUGSINK_SECRET_KEY muss gesetzt sein} \ -e CREATE_SUPERUSER=admin:admin \ bugsink/bugsink:latest @echo "Bugsink: http://localhost:8000 (admin/admin)"