diff --git a/Host/Web.Secrets.config.template b/Host/Web.Secrets.config.template
index f71a7aaac..6f385fb10 100644
--- a/Host/Web.Secrets.config.template
+++ b/Host/Web.Secrets.config.template
@@ -13,4 +13,5 @@
+
\ No newline at end of file
diff --git a/Service/BeWoServiceEnums.cs b/Service/BeWoServiceEnums.cs
index 7c59f8f81..f39e51168 100644
--- a/Service/BeWoServiceEnums.cs
+++ b/Service/BeWoServiceEnums.cs
@@ -30,6 +30,7 @@ namespace BeWo.Service
OpenrouteServiceApiKey,
GoogleDistanceMatrixApiKey,
GkvSecretKey,
+ AppStatusApiKey
}
[DefaultValue(None)]
diff --git a/Service/ServiceContracts/Enhanced/IStatusService.cs b/Service/ServiceContracts/Enhanced/IStatusService.cs
index 343f981a6..317d6ad1a 100644
--- a/Service/ServiceContracts/Enhanced/IStatusService.cs
+++ b/Service/ServiceContracts/Enhanced/IStatusService.cs
@@ -15,6 +15,7 @@ namespace BeWo.Service.ServiceContracts.Enhanced
{
[OperationContract]
[WebGet(UriTemplate = "/Status", ResponseFormat = WebMessageFormat.Json)]
+ [RequireApiAuthorization(ApiKeyName = WebSecretConfigSetting.AppStatusApiKey)]
ServerStatusDC GetStatus();
}
}
diff --git a/Service/ServiceImplementations/Enhanced/StatusServiceImp.cs b/Service/ServiceImplementations/Enhanced/StatusServiceImp.cs
index 73e4e7081..7fae8d88e 100644
--- a/Service/ServiceImplementations/Enhanced/StatusServiceImp.cs
+++ b/Service/ServiceImplementations/Enhanced/StatusServiceImp.cs
@@ -8,6 +8,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Net;
using System.Reflection;
using System.ServiceModel;
using System.ServiceModel.Web;
@@ -38,6 +39,13 @@ namespace BeWo.Service.ServiceImplementations.Enhanced
result.Services.Add(CheckService("AIModule", CheckAiModule()));
result.Services.Add(CheckService("Web.config", CheckWebConfig()));
+ var allHealthy = result.DatabaseOk && result.Services.All(x => x.IsOk);
+ if (!allHealthy)
+ {
+ WebOperationContext.Current.OutgoingResponse.StatusCode =
+ HttpStatusCode.InternalServerError;
+ }
+
return result;
}
@@ -98,7 +106,7 @@ namespace BeWo.Service.ServiceImplementations.Enhanced
{
// #1
var url = MergedConfig.GetSetting(WebConfigSetting.AiPromptsUrl);
- if (!string.IsNullOrWhiteSpace(url))
+ if (string.IsNullOrWhiteSpace(url))
return "AiPromptsUrl wurde nicht korrekt konfiguriert";
return null;