Fix Serilog email sink config for v4 API breaking changes
Serilog.Sinks.Email v4 renamed all configuration parameters from their v2 names. The old names were silently ignored, so no error alert emails were ever sent. Parameter renames applied across all 6 appsettings.json and docker-compose: fromEmail → from toEmail → to mailServer → host networkCredential → credentials enableSsl: true → connectionSecurity: StartTls emailSubject → subject outputTemplate → body batchPostingLimit / period removed (v4 batching uses a separate overload) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,19 +35,17 @@
|
||||
"Name": "Email",
|
||||
"Args": {
|
||||
"restrictedToMinimumLevel": "Error",
|
||||
"fromEmail": "",
|
||||
"toEmail": "",
|
||||
"mailServer": "",
|
||||
"networkCredential": {
|
||||
"from": "",
|
||||
"to": "",
|
||||
"host": "",
|
||||
"credentials": {
|
||||
"userName": "",
|
||||
"password": ""
|
||||
},
|
||||
"port": 587,
|
||||
"enableSsl": true,
|
||||
"emailSubject": "[mihes.ro API] Error Alert",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
||||
"batchPostingLimit": 10,
|
||||
"period": "0.00:05:00"
|
||||
"connectionSecurity": "StartTls",
|
||||
"subject": "[myAi API] Error Alert",
|
||||
"body": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -35,19 +35,17 @@
|
||||
"Name": "Email",
|
||||
"Args": {
|
||||
"restrictedToMinimumLevel": "Error",
|
||||
"fromEmail": "",
|
||||
"toEmail": "",
|
||||
"mailServer": "",
|
||||
"networkCredential": {
|
||||
"from": "",
|
||||
"to": "",
|
||||
"host": "",
|
||||
"credentials": {
|
||||
"userName": "",
|
||||
"password": ""
|
||||
},
|
||||
"port": 587,
|
||||
"enableSsl": true,
|
||||
"emailSubject": "[mihes.ro API] Error Alert",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
||||
"batchPostingLimit": 10,
|
||||
"period": "0.00:05:00"
|
||||
"connectionSecurity": "StartTls",
|
||||
"subject": "[myAi] CV Matcher API Error Alert",
|
||||
"body": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -35,19 +35,17 @@
|
||||
"Name": "Email",
|
||||
"Args": {
|
||||
"restrictedToMinimumLevel": "Error",
|
||||
"fromEmail": "",
|
||||
"toEmail": "",
|
||||
"mailServer": "",
|
||||
"networkCredential": {
|
||||
"from": "",
|
||||
"to": "",
|
||||
"host": "",
|
||||
"credentials": {
|
||||
"userName": "",
|
||||
"password": ""
|
||||
},
|
||||
"port": 587,
|
||||
"enableSsl": true,
|
||||
"emailSubject": "[myAi] Email API Error Alert",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
||||
"batchPostingLimit": 10,
|
||||
"period": "0.00:05:00"
|
||||
"connectionSecurity": "StartTls",
|
||||
"subject": "[myAi] Email API Error Alert",
|
||||
"body": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -35,19 +35,17 @@
|
||||
"Name": "Email",
|
||||
"Args": {
|
||||
"restrictedToMinimumLevel": "Error",
|
||||
"fromEmail": "",
|
||||
"toEmail": "",
|
||||
"mailServer": "",
|
||||
"networkCredential": {
|
||||
"from": "",
|
||||
"to": "",
|
||||
"host": "",
|
||||
"credentials": {
|
||||
"userName": "",
|
||||
"password": ""
|
||||
},
|
||||
"port": 587,
|
||||
"enableSsl": true,
|
||||
"emailSubject": "[mihes.ro API] Error Alert",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
||||
"batchPostingLimit": 10,
|
||||
"period": "0.00:05:00"
|
||||
"connectionSecurity": "StartTls",
|
||||
"subject": "[myAi] RAG API Error Alert",
|
||||
"body": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -36,19 +36,17 @@
|
||||
"Name": "Email",
|
||||
"Args": {
|
||||
"restrictedToMinimumLevel": "Error",
|
||||
"fromEmail": "",
|
||||
"toEmail": "",
|
||||
"mailServer": "",
|
||||
"networkCredential": {
|
||||
"from": "",
|
||||
"to": "",
|
||||
"host": "",
|
||||
"credentials": {
|
||||
"userName": "",
|
||||
"password": ""
|
||||
},
|
||||
"port": 587,
|
||||
"enableSsl": true,
|
||||
"emailSubject": "[mihes.ro CV cleanup job] Error Alert",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
||||
"batchPostingLimit": 10,
|
||||
"period": "0.00:05:00"
|
||||
"connectionSecurity": "StartTls",
|
||||
"subject": "[myAi] CV Cleanup Job Error Alert",
|
||||
"body": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -47,19 +47,17 @@
|
||||
"Name": "Email",
|
||||
"Args": {
|
||||
"restrictedToMinimumLevel": "Error",
|
||||
"fromEmail": "",
|
||||
"toEmail": "",
|
||||
"mailServer": "",
|
||||
"networkCredential": {
|
||||
"from": "",
|
||||
"to": "",
|
||||
"host": "",
|
||||
"credentials": {
|
||||
"userName": "",
|
||||
"password": ""
|
||||
},
|
||||
"port": 587,
|
||||
"enableSsl": true,
|
||||
"emailSubject": "[mihes.ro CV search job] Error Alert",
|
||||
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
||||
"batchPostingLimit": 10,
|
||||
"period": "0.00:05:00"
|
||||
"connectionSecurity": "StartTls",
|
||||
"subject": "[myAi] CV Search Job Error Alert",
|
||||
"body": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -35,13 +35,13 @@ services:
|
||||
- Ai__Ollama__EmbeddingModel=${Ai__Ollama__EmbeddingModel:-nomic-embed-text}
|
||||
- Ai__Ollama__TimeoutSeconds=${Ai__Ollama__TimeoutSeconds:-180}
|
||||
|
||||
- Serilog__WriteTo__2__Args__fromEmail=${Serilog__WriteTo__2__Args__fromEmail:-}
|
||||
- Serilog__WriteTo__2__Args__toEmail=${Serilog__WriteTo__2__Args__toEmail:-}
|
||||
- Serilog__WriteTo__2__Args__mailServer=${Serilog__WriteTo__2__Args__mailServer:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__userName=${Serilog__WriteTo__2__Args__networkCredential__userName:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__password=${Serilog__WriteTo__2__Args__networkCredential__password:-}
|
||||
- Serilog__WriteTo__2__Args__from=${Serilog__WriteTo__2__Args__from:-}
|
||||
- Serilog__WriteTo__2__Args__to=${Serilog__WriteTo__2__Args__to:-}
|
||||
- Serilog__WriteTo__2__Args__host=${Serilog__WriteTo__2__Args__host:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__userName=${Serilog__WriteTo__2__Args__credentials__userName:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__password=${Serilog__WriteTo__2__Args__credentials__password:-}
|
||||
- Serilog__WriteTo__2__Args__port=${Serilog__WriteTo__2__Args__port:-587}
|
||||
- Serilog__WriteTo__2__Args__enableSsl=${Serilog__WriteTo__2__Args__enableSsl:-true}
|
||||
- Serilog__WriteTo__2__Args__connectionSecurity=${Serilog__WriteTo__2__Args__connectionSecurity:-StartTls}
|
||||
volumes:
|
||||
- ${LOGS_PATH:-/opt/myai/logs}/rag-api:/app/logs
|
||||
networks:
|
||||
@@ -85,13 +85,13 @@ services:
|
||||
- Matcher__DeepScoreTopN=${Matcher__DeepScoreTopN:-5}
|
||||
- Matcher__MaxJobTextChars=${Matcher__MaxJobTextChars:-60000}
|
||||
|
||||
- Serilog__WriteTo__2__Args__fromEmail=${Serilog__WriteTo__2__Args__fromEmail:-}
|
||||
- Serilog__WriteTo__2__Args__toEmail=${Serilog__WriteTo__2__Args__toEmail:-}
|
||||
- Serilog__WriteTo__2__Args__mailServer=${Serilog__WriteTo__2__Args__mailServer:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__userName=${Serilog__WriteTo__2__Args__networkCredential__userName:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__password=${Serilog__WriteTo__2__Args__networkCredential__password:-}
|
||||
- Serilog__WriteTo__2__Args__from=${Serilog__WriteTo__2__Args__from:-}
|
||||
- Serilog__WriteTo__2__Args__to=${Serilog__WriteTo__2__Args__to:-}
|
||||
- Serilog__WriteTo__2__Args__host=${Serilog__WriteTo__2__Args__host:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__userName=${Serilog__WriteTo__2__Args__credentials__userName:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__password=${Serilog__WriteTo__2__Args__credentials__password:-}
|
||||
- Serilog__WriteTo__2__Args__port=${Serilog__WriteTo__2__Args__port:-587}
|
||||
- Serilog__WriteTo__2__Args__enableSsl=${Serilog__WriteTo__2__Args__enableSsl:-true}
|
||||
- Serilog__WriteTo__2__Args__connectionSecurity=${Serilog__WriteTo__2__Args__connectionSecurity:-StartTls}
|
||||
volumes:
|
||||
- ${LOGS_PATH:-/opt/myai/logs}/cv-matcher-api:/app/logs
|
||||
networks:
|
||||
@@ -126,13 +126,13 @@ services:
|
||||
|
||||
- FileStorage__Path=${FileStorage__Path:-Files}
|
||||
|
||||
- Serilog__WriteTo__2__Args__fromEmail=${Serilog__WriteTo__2__Args__fromEmail:-}
|
||||
- Serilog__WriteTo__2__Args__toEmail=${Serilog__WriteTo__2__Args__toEmail:-}
|
||||
- Serilog__WriteTo__2__Args__mailServer=${Serilog__WriteTo__2__Args__mailServer:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__userName=${Serilog__WriteTo__2__Args__networkCredential__userName:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__password=${Serilog__WriteTo__2__Args__networkCredential__password:-}
|
||||
- Serilog__WriteTo__2__Args__from=${Serilog__WriteTo__2__Args__from:-}
|
||||
- Serilog__WriteTo__2__Args__to=${Serilog__WriteTo__2__Args__to:-}
|
||||
- Serilog__WriteTo__2__Args__host=${Serilog__WriteTo__2__Args__host:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__userName=${Serilog__WriteTo__2__Args__credentials__userName:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__password=${Serilog__WriteTo__2__Args__credentials__password:-}
|
||||
- Serilog__WriteTo__2__Args__port=${Serilog__WriteTo__2__Args__port:-587}
|
||||
- Serilog__WriteTo__2__Args__enableSsl=${Serilog__WriteTo__2__Args__enableSsl:-true}
|
||||
- Serilog__WriteTo__2__Args__connectionSecurity=${Serilog__WriteTo__2__Args__connectionSecurity:-StartTls}
|
||||
volumes:
|
||||
- ${LOGS_PATH:-/opt/myai/logs}/email-api:/app/logs
|
||||
- ${FILES_PATH:-/opt/myai/files}:/app/Files
|
||||
@@ -201,13 +201,13 @@ services:
|
||||
- Cors__AllowedOrigins__0=${Cors__AllowedOrigins__0:-}
|
||||
- Cors__AllowedOrigins__1=${Cors__AllowedOrigins__1:-}
|
||||
|
||||
- Serilog__WriteTo__2__Args__fromEmail=${Serilog__WriteTo__2__Args__fromEmail:-}
|
||||
- Serilog__WriteTo__2__Args__toEmail=${Serilog__WriteTo__2__Args__toEmail:-}
|
||||
- Serilog__WriteTo__2__Args__mailServer=${Serilog__WriteTo__2__Args__mailServer:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__userName=${Serilog__WriteTo__2__Args__networkCredential__userName:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__password=${Serilog__WriteTo__2__Args__networkCredential__password:-}
|
||||
- Serilog__WriteTo__2__Args__from=${Serilog__WriteTo__2__Args__from:-}
|
||||
- Serilog__WriteTo__2__Args__to=${Serilog__WriteTo__2__Args__to:-}
|
||||
- Serilog__WriteTo__2__Args__host=${Serilog__WriteTo__2__Args__host:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__userName=${Serilog__WriteTo__2__Args__credentials__userName:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__password=${Serilog__WriteTo__2__Args__credentials__password:-}
|
||||
- Serilog__WriteTo__2__Args__port=${Serilog__WriteTo__2__Args__port:-587}
|
||||
- Serilog__WriteTo__2__Args__enableSsl=${Serilog__WriteTo__2__Args__enableSsl:-true}
|
||||
- Serilog__WriteTo__2__Args__connectionSecurity=${Serilog__WriteTo__2__Args__connectionSecurity:-StartTls}
|
||||
volumes:
|
||||
- ${LOGS_PATH:-/opt/myai/logs}/api:/app/logs
|
||||
- ${FILES_PATH:-/opt/myai/files}:/app/Files
|
||||
@@ -232,13 +232,13 @@ services:
|
||||
- Jobs__Tasks__0__Interval=${Jobs__CvStorageCleanupInterval:-01:00:00}
|
||||
- Jobs__Tasks__0__Parameters__MaxTotalSizeMegabytes=${Jobs__CvStorageMaxTotalSizeMegabytes:-40}
|
||||
|
||||
- Serilog__WriteTo__2__Args__fromEmail=${Serilog__WriteTo__2__Args__fromEmail:-}
|
||||
- Serilog__WriteTo__2__Args__toEmail=${Serilog__WriteTo__2__Args__toEmail:-}
|
||||
- Serilog__WriteTo__2__Args__mailServer=${Serilog__WriteTo__2__Args__mailServer:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__userName=${Serilog__WriteTo__2__Args__networkCredential__userName:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__password=${Serilog__WriteTo__2__Args__networkCredential__password:-}
|
||||
- Serilog__WriteTo__2__Args__from=${Serilog__WriteTo__2__Args__from:-}
|
||||
- Serilog__WriteTo__2__Args__to=${Serilog__WriteTo__2__Args__to:-}
|
||||
- Serilog__WriteTo__2__Args__host=${Serilog__WriteTo__2__Args__host:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__userName=${Serilog__WriteTo__2__Args__credentials__userName:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__password=${Serilog__WriteTo__2__Args__credentials__password:-}
|
||||
- Serilog__WriteTo__2__Args__port=${Serilog__WriteTo__2__Args__port:-587}
|
||||
- Serilog__WriteTo__2__Args__enableSsl=${Serilog__WriteTo__2__Args__enableSsl:-true}
|
||||
- Serilog__WriteTo__2__Args__connectionSecurity=${Serilog__WriteTo__2__Args__connectionSecurity:-StartTls}
|
||||
volumes:
|
||||
- ${LOGS_PATH:-/opt/myai/logs}/cv-cleanup-job:/app/logs
|
||||
- ${FILES_PATH:-/opt/myai/files}:/app/Files
|
||||
@@ -283,13 +283,13 @@ services:
|
||||
- Jobs__Tasks__0__Enabled=${Jobs__CvSearchEnabled:-true}
|
||||
- Jobs__Tasks__0__Interval=${Jobs__CvSearchInterval:-00:00:30}
|
||||
|
||||
- Serilog__WriteTo__2__Args__fromEmail=${Serilog__WriteTo__2__Args__fromEmail:-}
|
||||
- Serilog__WriteTo__2__Args__toEmail=${Serilog__WriteTo__2__Args__toEmail:-}
|
||||
- Serilog__WriteTo__2__Args__mailServer=${Serilog__WriteTo__2__Args__mailServer:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__userName=${Serilog__WriteTo__2__Args__networkCredential__userName:-}
|
||||
- Serilog__WriteTo__2__Args__networkCredential__password=${Serilog__WriteTo__2__Args__networkCredential__password:-}
|
||||
- Serilog__WriteTo__2__Args__from=${Serilog__WriteTo__2__Args__from:-}
|
||||
- Serilog__WriteTo__2__Args__to=${Serilog__WriteTo__2__Args__to:-}
|
||||
- Serilog__WriteTo__2__Args__host=${Serilog__WriteTo__2__Args__host:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__userName=${Serilog__WriteTo__2__Args__credentials__userName:-}
|
||||
- Serilog__WriteTo__2__Args__credentials__password=${Serilog__WriteTo__2__Args__credentials__password:-}
|
||||
- Serilog__WriteTo__2__Args__port=${Serilog__WriteTo__2__Args__port:-587}
|
||||
- Serilog__WriteTo__2__Args__enableSsl=${Serilog__WriteTo__2__Args__enableSsl:-true}
|
||||
- Serilog__WriteTo__2__Args__connectionSecurity=${Serilog__WriteTo__2__Args__connectionSecurity:-StartTls}
|
||||
volumes:
|
||||
- ${LOGS_PATH:-/opt/myai/logs}/cv-search-job:/app/logs
|
||||
- ${FILES_PATH:-/opt/myai/files}:/app/Files
|
||||
|
||||
Reference in New Issue
Block a user