Files
Holzleitner---Backend--aktu…/config.example.toml
Dennis Nemec fb5f43ed7a feat(erp): Gutschrift-Rückschreibung per Config togglen
Neues Flag [erp] gutschrift_writeback_enabled (Default true): steuert, ob
die Geld-Gutschrift (GUTSCHRIFT10-Belegzeile) beim Abschluss ins ERP
zurückgeschrieben wird. Gutschriften sind bestandsneutral (keine
Bestandsführung) → unkritisch, daher standardmäßig an, aber abschaltbar.

Die Belegzeilen-Menge wird weiterhin generell NICHT zurückgeschrieben
(Bestands-Inkonsistenz); geänderte Belege gehen in die Vier-Augen-Prüfung.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 10:26:05 +02:00

107 lines
3.9 KiB
TOML

# Vorlage für die lokale Backend-Konfiguration.
# Kopieren nach `config.toml` und Werte anpassen:
#
# cp config.example.toml config.toml
#
# Die `config.toml` selbst enthält Secrets und gehört NICHT in Git.
# Pfad überschreibbar via Env `HOLZLEITNER_CONFIG=/pfad/zu/config.toml`.
#
# Pflicht-Sections: [server], [database], [keycloak], [gsd].
# Alle anderen Sections/Felder sind optional und fallen auf Defaults zurück.
# --- HTTP-Server ----------------------------------------------------------
[server]
host = "127.0.0.1"
port = 3000
# --- Postgres -------------------------------------------------------------
# Passt zur docker-compose.yml (Service `postgres`).
[database]
url = "postgres://holzleitner:holzleitner_dev@localhost:5432/holzleitner"
max_connections = 10
# --- Keycloak (OIDC) ------------------------------------------------------
# issuer_url muss EXAKT dem `iss`-Claim entsprechen, das Keycloak ausstellt.
[keycloak]
issuer_url = "http://localhost:8080/realms/holzleitner"
audience = "holzleitner-api"
jwks_cache_ttl_seconds = 3600
admin_url = "http://localhost:8080"
realm = "holzleitner"
provisioner_client_id = "holzleitner-provisioner"
provisioner_client_secret = "provisioner-dev-secret"
driver_default_password = "Holzleitner-Start1!"
driver_role = "driver"
# Default false → Sync legt keine Fahrer-Konten an.
provisioning_enabled = false
# --- GSD / DOCUframe (Datei-Upload) ---------------------------------------
# password_md5 ist der MD5-Hash des Service-Account-Passworts (kein Klartext).
[gsd]
rest_url = "http://192.168.1.9:8334"
app_key = "GSD-RestApi"
user = "GSDWebServiceTmp"
password_md5 = "<md5-des-passworts>"
app_names = ["GSD-RestApi"]
# --- ERPframe MSSQL (täglicher Touren-Pull) -------------------------------
[erp]
host = "192.168.1.7"
port = 61279
database = "HOLZ_SQL"
user = "sa"
password = "<erp-passwort>"
trust_cert = true
writeback_enabled = false
# Gutschrift-Rückschreibung (GUTSCHRIFT10-Belegzeile) — bestandsneutral,
# daher unkritisch. true = Gutschriften werden ins ERP geschrieben.
# (Mengen-Reduktion wird generell NICHT mehr zurückgeschrieben.)
gutschrift_writeback_enabled = true
# --- ERP-Import-Scheduler -------------------------------------------------
[import]
enabled = false
cron = "0 0 3 * * *"
date_offset_days = 1
# --- PDF-Lieferreport → DOCUframe ----------------------------------------
[report]
storage_dir = "./data/reports"
upload_enabled = false
retry_cron = "0 */5 * * * *"
# --- Lokale Speicher (Signaturen / Bild-Notizen) --------------------------
[signature]
storage_dir = "./data/signatures"
# Aufbewahrungsfrist der Unterschrifts-Dateien in Tagen. Ein Cron löscht
# ältere Dateien (Unterschriften werden NICHT mehr beim Report-Upload gelöscht).
# 0 = nie automatisch löschen.
retention_days = 90
# Cron (6-stellig, inkl. Sekunden) für den Signatur-Cleanup (täglich 04:00).
cleanup_cron = "0 0 4 * * *"
[attachment]
storage_dir = "./data/attachments"
# --- DEV-ONLY-Schalter ----------------------------------------------------
[dev]
# today_override weglassen = echte Uhr. Zum Testen mit importierten Touren
# den quotierten String setzen, z. B.:
# today_override = "2026-06-01"
sync_enabled = false
# --- Admin-API-Key (Maschinen-Zugang zu /admin) ---------------------------
# Leer ⇒ alle /admin-Endpunkte gesperrt (fail-closed). In Produktion einen
# hochentropischen Zufallswert setzen (`openssl rand -hex 32`).
[admin]
api_key = ""
# --- Logging --------------------------------------------------------------
# RUST_LOG-Env hat Vorrang. Binary-Crate heißt `holzleitner_server`.
# `dir`: nur im Windows-Dienst-Modus relevant — dort wird statt auf stderr in
# rollende Tages-Logdateien <dir>/holzleitner-backend.log.<DATUM> geschrieben
# (relativ zum EXE-Verzeichnis). Im Konsolenmodus geht alles auf stderr.
[logging]
filter = "holzleitner_server=info,holzleitner_api=info,holzleitner_application=info,holzleitner_infrastructure=info,tower_http=info"
dir = "logs"