From bc25210fe41777b6a01c1de622840d89bd3f3ff3 Mon Sep 17 00:00:00 2001 From: mxritzdev Date: Mon, 12 May 2025 19:36:27 +0200 Subject: [PATCH] added config to diagnose, while censoring sensitive data --- .../Diagnose/CoreDiagnoseProvider.cs | 54 +++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/Moonlight.ApiServer/Implementations/Diagnose/CoreDiagnoseProvider.cs b/Moonlight.ApiServer/Implementations/Diagnose/CoreDiagnoseProvider.cs index 92d5d09a..53028d59 100644 --- a/Moonlight.ApiServer/Implementations/Diagnose/CoreDiagnoseProvider.cs +++ b/Moonlight.ApiServer/Implementations/Diagnose/CoreDiagnoseProvider.cs @@ -1,4 +1,7 @@ using System.Text; +using System.Text.Json; +using MoonCore.Helpers; +using Moonlight.ApiServer.Configuration; using Moonlight.ApiServer.Interfaces; using Moonlight.ApiServer.Models.Diagnose; @@ -8,13 +11,58 @@ public class CoreDiagnoseProvider : IDiagnoseProvider { public DiagnoseEntry[] GetFiles() { + // TODO: + // - read logs out from file for the diagnose below + return [ - new DiagnoseFile() + new DiagnoseDirectory() { - Name = "test.txt", - GetContent = () => Encoding.UTF8.GetBytes("hello world") + Name = "core", + Children = [ + + new DiagnoseFile() + { + Name = "logs.txt", + GetContent = () => Encoding.UTF8.GetBytes("placeholder") + }, + + new DiagnoseFile() + { + Name = "logs.txt", + GetContent = () => + { + + var configJson = File.ReadAllText(PathBuilder.File("storage", "app.json")); + + var config = JsonSerializer.Deserialize(configJson); + + if (config == null) + { + return Encoding.UTF8.GetBytes("could not fetch config"); + } + + config.Database.Password = CheckForNullOrEmpty(config.Database.Password); + + config.Authentication.OAuth2.ClientSecret = CheckForNullOrEmpty(config.Authentication.OAuth2.ClientSecret); + + config.Authentication.OAuth2.Secret = CheckForNullOrEmpty(config.Authentication.OAuth2.Secret); + + config.Authentication.Secret = CheckForNullOrEmpty(config.Authentication.Secret); + + return Encoding.UTF8.GetBytes(JsonSerializer.Serialize(config)); + } + } + + ] } ]; } + + private string CheckForNullOrEmpty(string? content) + { + return string.IsNullOrEmpty(content) + ? "ISEMPTY" + : "ISNOTEMPTY"; + } } \ No newline at end of file