### fix: 32 erweitere Debug-Logging und Proxy-Strategie
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m52s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 4m13s

- **NennungRemoteRepository:** API-Logs erweitert (Antwortstatus und Body).
- **Caddyfile:** Strategie-Version auf `v32` aktualisiert.
- **WebMainScreen:** Versionsmarker auf `v2026-04-23.32 - PROXY DEBUG` angepasst.
This commit is contained in:
Stefan Mogeritsch 2026-04-23 16:39:05 +02:00
parent 1201755077
commit 23c3e40390
4 changed files with 13 additions and 4 deletions

View File

@ -20,7 +20,6 @@
# Same-Origin Strategy: Alle /api/* Anfragen werden intern an den Mail-Service weitergeleitet # Same-Origin Strategy: Alle /api/* Anfragen werden intern an den Mail-Service weitergeleitet
# Dadurch sieht der Browser nur noch app.mo-code.at und CORS wird hinfällig. # Dadurch sieht der Browser nur noch app.mo-code.at und CORS wird hinfällig.
handle /api/* { handle /api/* {
# Wir leiten direkt weiter, der mail-service erwartet /api/mail/...
reverse_proxy mail-service:8085 { reverse_proxy mail-service:8085 {
header_up Host {upstream_hostport} header_up Host {upstream_hostport}
header_up X-Real-IP {remote_host} header_up X-Real-IP {remote_host}
@ -32,7 +31,7 @@
Access-Control-Allow-Origin "*" Access-Control-Allow-Origin "*"
Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Access-Control-Allow-Headers "*" Access-Control-Allow-Headers "*"
X-Caddy-Strategy "same-origin-v31" X-Caddy-Strategy "same-origin-v32"
} }
} }

View File

@ -117,3 +117,8 @@ Die "Hallo Du!" Test-UI wurde durch produktive, fachlich korrekte Formulare erse
- **Backend-Logging**: Detaillierte Log-Ausgaben im `MailController` hinzugefügt, um den SMTP-Versandprozess auf dem Host genau verfolgen zu können (Status: "Versuche zu senden..."). - **Backend-Logging**: Detaillierte Log-Ausgaben im `MailController` hinzugefügt, um den SMTP-Versandprozess auf dem Host genau verfolgen zu können (Status: "Versuche zu senden...").
- **UI-Erfolgssteuerung**: Korrektur im Frontend-Flow. Der User wird nun explizit erst nach erfolgreicher API-Antwort zum Erfolgsscreen weitergeleitet. - **UI-Erfolgssteuerung**: Korrektur im Frontend-Flow. Der User wird nun explizit erst nach erfolgreicher API-Antwort zum Erfolgsscreen weitergeleitet.
- **Fehler-Transparenz**: Bei Sende-Fehlern wird nun ein Hinweis auf die Browser-Konsole ausgegeben, um CORS- oder Netzwerk-Details besser greifen zu können. - **Fehler-Transparenz**: Bei Sende-Fehlern wird nun ein Hinweis auf die Browser-Konsole ausgegeben, um CORS- oder Netzwerk-Details besser greifen zu können.
### v2026-04-23.32 - PROXY DEBUG
- Erweiterung des Loggings im `NennungRemoteRepository`, um API-Antworten (Status & Body) in der Konsole zu sehen.
- Erhöhung der Diagnose-Transparenz im Caddy-Proxy (v32).
- Ziel: Identifikation, warum Requests im Same-Origin Modus scheinbar still scheitern.

View File

@ -100,14 +100,19 @@ class NennungRemoteRepository(private val client: HttpClient) {
setBody(request) setBody(request)
} }
println("Antwort erhalten: ${response.status.value}")
val responseText = try { response.body<String>() } catch (e: Exception) { "Kein Body" }
println("Antwort Body: $responseText")
if (response.status.isSuccess()) { if (response.status.isSuccess()) {
Result.success(Unit) Result.success(Unit)
} else { } else {
val errorText = "Server meldet Fehler: ${response.status.value} ${response.status.description}" val errorText = "Server meldet Fehler: ${response.status.value} ${response.status.description} - $responseText"
println(errorText) println(errorText)
Result.failure(Exception(errorText)) Result.failure(Exception(errorText))
} }
} catch (e: Exception) { } catch (e: Exception) {
println("Ausnahme beim Senden: ${e.message}")
Result.failure(e) Result.failure(e)
} }
} }

View File

@ -126,7 +126,7 @@ fun MainAppContent() {
// Dezentraler Versions-Marker in der unteren rechten Ecke // Dezentraler Versions-Marker in der unteren rechten Ecke
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) { Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
Text( Text(
text = "v2026-04-23.31 - SAME-ORIGIN v3", text = "v2026-04-23.32 - PROXY DEBUG",
style = MaterialTheme.typography.labelSmall, style = MaterialTheme.typography.labelSmall,
color = Color.LightGray.copy(alpha = 0.5f) color = Color.LightGray.copy(alpha = 0.5f)
) )