Files

42 lines
1.7 KiB
Markdown

# Developer Guide & Local Emulation
## 1. Local Auth Bypass (Zitadel-Dummy)
Für die lokale Entwicklung auf `127.0.0.1` oder benutzerdefinierten Dev-Domains kann die OIDC-Authentifizierung umgangen werden.
In der `.env`:
```env
DEV_MODE=true
DEV_USER_ROLE=admin
DEV_TENANT_ID=tenant_dev_123
```
Ist `DEV_MODE=true` gesetzt, injiziert die Middleware automatisch eine Mock-Session für den angegebenen Dev-User, ohne Redirects zu Zitadel auszuführen.
---
## 2. reCAPTCHA v3 Mocking
Im Dev-Modus wird die Google reCAPTCHA API nicht kontaktiert.
* **Erfolg-Simulation:** Standardmäßig gibt der Mock-Service einen Score von `0.9` zurück.
* **Fehlschlag-Simulation:** Durch Setzen von `MOCK_RECAPTCHA_SCORE=0.1` in der `.env` kann das Abweisen von Spam-Submissions lokal getestet werden.
---
## 3. CLI Commands & Maintenance
### Datenbank-Migration
* **Migration-Repository initialisieren:** `flask db init` (nur einmalig erforderlich)
* **Migration erstellen:** `flask db migrate -m "Beschreibung der Änderungen"` (nach Modell-Änderungen)
* **Migration anwenden:** `flask db upgrade` (wendet ausstehende Migrationen an)
* **Migration zurücksetzen:** `flask db downgrade` (setzt die letzte Migration zurück)
### Daten & Verwaltung
* **Datenbank-Seeding:** `flask seed-db` (Erstellt Test-Mandanten und Beispiel-Formulare)
* **E-Mail Dump Trigger:** `flask run-scheduled-export --tenant-id=<ID> --period=daily` (Führt datenbank-agnostischen Export via SQLAlchemy aus und versendet die Mail)
### Tenant & User Verwaltung
* **Neuen Mandanten erstellen:** `flask create-tenant <Name> <Public-Key> [--allowed-origins=...]`
* **Neuen Benutzer erstellen:** `flask create-user <Email> <Name> [--role=admin|tenant_admin|user|viewer]`