diff --git a/Directory.Packages.props b/Directory.Packages.props
index ea6e4044..af76f821 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -11,6 +11,7 @@
+
diff --git a/EstateManagementUI.BlazorServer/Common/BoostrapperExtensions.cs b/EstateManagementUI.BlazorServer/Common/BoostrapperExtensions.cs
index d4d283e2..54e8c628 100644
--- a/EstateManagementUI.BlazorServer/Common/BoostrapperExtensions.cs
+++ b/EstateManagementUI.BlazorServer/Common/BoostrapperExtensions.cs
@@ -1,11 +1,13 @@
using ClientProxyBase;
using EstateManagementUI.BlazorServer.Permissions;
+using EstateManagementUI.BlazorServer.Testing;
using EstateManagementUI.BlazorServer.TokenManagement;
using EstateManagementUI.BlazorServer.UIServices;
using EstateManagementUI.BusinessLogic.BackendAPI;
using EstateManagementUI.BusinessLogic.Client;
using EstateManagementUI.BusinessLogic.RequestHandlers;
using EstateManagementUI.BusinessLogic.Services;
+using FileProcessor.Client;
using MediatR;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
@@ -16,10 +18,9 @@
using Shared.Serialisation;
using System.Data.SqlTypes;
using System.Net;
+using System.Reflection;
using System.Security.Cryptography.X509Certificates;
-using FileProcessor.Client;
using TransactionProcessor.Client;
-using EstateManagementUI.BlazorServer.Testing;
namespace EstateManagementUI.BlazorServer.Common;
@@ -119,7 +120,10 @@ public static WebApplicationBuilder LoadConfiguration(this WebApplicationBuilder
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true, reloadOnChange: true)
.AddJsonFile($"/home/txnproc/config/appsettings.local.json", optional: true)
- .AddEnvironmentVariables();
+ .AddEnvironmentVariables().AddInMemoryCollection(new Dictionary
+ {
+ ["HealthMonitoring:Service:Version"] = Assembly.GetEntryAssembly()?.GetName().Version?.ToString() ?? "0.0.0.0"
+ });
ConfigurationReader.Initialise(builder.Configuration);
return builder;
diff --git a/EstateManagementUI.BlazorServer/EstateManagementUI.BlazorServer.csproj b/EstateManagementUI.BlazorServer/EstateManagementUI.BlazorServer.csproj
index 10e4ef21..dbfe14f4 100644
--- a/EstateManagementUI.BlazorServer/EstateManagementUI.BlazorServer.csproj
+++ b/EstateManagementUI.BlazorServer/EstateManagementUI.BlazorServer.csproj
@@ -12,6 +12,7 @@
+
diff --git a/EstateManagementUI.BlazorServer/Program.cs b/EstateManagementUI.BlazorServer/Program.cs
index 2186f7f5..4399e580 100644
--- a/EstateManagementUI.BlazorServer/Program.cs
+++ b/EstateManagementUI.BlazorServer/Program.cs
@@ -1,18 +1,19 @@
using EstateManagementUI.BlazorServer.Common;
using EstateManagementUI.BlazorServer.Components;
+using EstateManagementUI.BlazorServer.Testing;
using HealthChecks.UI.Client;
+using HealthMonitoring.Client;
+using Microsoft.AspNetCore.Components.Server;
+using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
-using EstateManagementUI.BlazorServer.Testing;
using Sentry.Extensibility;
using Shared.Extensions;
using Shared.General;
+using Shared.Monitoring;
using Shared.Serialisation;
using Spectre.Console;
using System.IdentityModel.Tokens.Jwt;
using System.Reflection;
-using Microsoft.AspNetCore.DataProtection;
-using Microsoft.AspNetCore.Components.Server;
-using Shared.Monitoring;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args).LoadConfiguration().ConfigureKestrel();
@@ -96,7 +97,7 @@
builder.RegisterUIServices().RegisterSerialiser();
-builder.Services.AddUptimeKuma();
+builder.Services.AddHealthMonitoringRegistration(builder.Configuration);
// Add Health Checks - read URLs from configuration
var estateReportingApiUrl = builder.Configuration.GetValue("AppSettings:EstateReportingApi") ?? "http://localhost:5011";
@@ -190,13 +191,6 @@ Uri ValidateAndCreateUri(string url, string configKey)
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
-app.Lifetime.ApplicationStarted.Register(() =>
-{
- app.RegisterWithUptimeKumaAsync()
- .GetAwaiter()
- .GetResult();
-});
-
app.Run();
diff --git a/EstateManagementUI.BlazorServer/appsettings.json b/EstateManagementUI.BlazorServer/appsettings.json
index 60c74755..6f611a67 100644
--- a/EstateManagementUI.BlazorServer/appsettings.json
+++ b/EstateManagementUI.BlazorServer/appsettings.json
@@ -39,5 +39,32 @@
"Url": "http://localhost:5004/health",
"IntervalInSeconds": 60
}
+ },
+ "HealthMonitoring": {
+ "Service": {
+ "ServiceId": "estate-management-ui",
+ "Name": "Estate Management UI",
+ "Description": "Estate Management UI",
+ "HealthUrl": "https://localhost:5004/healthui",
+ "IgnoreCertificateErrors": true
+ },
+ "Dependencies": [
+ {
+ "DependencyName": "Security Service",
+ "TargetServiceId": "security-service"
+ },
+ {
+ "DependencyName": "Estate Reporting API",
+ "TargetServiceId": "estate-reporting-api"
+ },
+ {
+ "DependencyName": "Transaction Processor Service",
+ "TargetServiceId": "transaction-processor"
+ },
+ {
+ "DependencyName": "File Processor Service",
+ "TargetServiceId": "file-processor"
+ }
+ ]
}
}