- Supervisor-Modus im Dev-Betrieb: Der Server läuft als Subprozess und
wird nach einem Abbruch neu gestartet. Der Werkzeug-Reloader beendet
sich sonst komplett, wenn der App-Prozess beim Start crasht — als
Hauptprozess des Containers würde damit der gesamte Dev-Container
stoppen. Der Supervisor importiert die App nicht und überlebt so
jeden Anwendungsfehler.
- -D-Parameter ist jetzt funktional: Dev-Start direkt von der
Befehlszeile ohne Devcontainer/Env-Variable. Debug-Entscheidung:
-D ODER APP_DEBUG.
- approot.py: init_app(debug) reicht die Debug-Entscheidung durch,
damit Server-Typ und JS-Bundle-Auswahl (.js/.min.js) konsistent
bleiben. wsgi.py (init_app() ohne Argument) unverändert.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Neues crm-Paket mit Datenmodell, Geschäftslogik und REST-Endpunkten
für die Entität Kunde (/xhr/kunde/{list,get,create,update,delete}).
authorisation_required-Decorator: app-spezifische Rollenprüfung via
has_permission(appid, ...). SysAdmin systemweit, AppAdmin implizit in
seiner Anwendung, User (Mitarbeiter) als Basis-Rolle, Zusatz-Rollen
wie KundenManager additiv.
Flask CLI: init-db (Schema + Musterdaten + App-Rollen) und reset-db
(Bestätigung, behält SysAdmin).
config.ini: Neuer appid-Eintrag (KBPlusCRM), getrennt vom technischen
PROJEKTNAME. checkdb: appid aus config, Migration _db_V01_02 für
bestehende DBs.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>